2025/01 3

상속과 인터페이스

1. 기본 개념인터페이스 (Interface)객체가 어떤 동작을 할 수 있는지를 정의하는 계약(Contract)메서드의 시그니처(이름, 매개변수, 반환 타입)만 선언하며 구현은 제공하지 않음(Kotlin에서는 디폴트 메서드 구현도 가능함.)클래스는 여러 개의 인터페이스를 구현(implement) 가능interface Flyable { fun fly()}class Bird : Flyable { override fun fly() { println("Bird is flying") }} 상속 (Inheritance)객체 간의 is-a 관계를 정의상속받은 클래스는 부모 클래스의 속성과 메서드를 사용할 수 있으며, 필요하면 재정의(override) 가능단일 상속만 허용 (Kotlin은 ..

객체지향 2025.01.05

객체지향

왜 객체지향을 써야하는가? - 좋은 코드를 짜기 위한 방법 좋은 코드란 ? - 이해하기 쉬운가?- 변경 하기 쉬운가? 변경하기 쉬우려면? - 구조화를 잘하자.  - 일정한 기준으로 나누고 묶어서 정리 객체 지향이란 코드를 구조화하고 정리하는 방법중에서 가장 널리 쓰이는 효과적인 방법이다. 객체 지향의 프로그래밍의 본질 객체 지향의 본질은 캡슐화, 메시징, 동적바인딩 이다.  앨런케이가 객체지향 개념을 만들었다. 앨런케이가 말하는 객체지향이란 객체나 클래스가 핵심이 아니라, 핵심은 메시지다. 소프트웨어를 어떻게 정리할까?프로시저 추상화 - 작업의 절차로 추상화 하는 방법 소프트웨어를 생명체의 세포로 생각하면은 어떨까? 세포들은 작고 독립적인 객체 서로 간의 메시지를 통해서 소통함 (ex 유미의 세포)데이터..

객체지향 2025.01.05