August 04, 2021
‘어떻게 큰 프로그램을 만들 것인가? 어떻게 만드는 것이 효율적이고 관리하기 좋은 것인가?’ -> 작게 나눠서 만들고 합친다.
개념적인 용어 : 객체 / 기술적인 용어 : class, instance
class : 어떤 문제를 해결하기 위한 데이터를 만들기 위해 추상화를 거쳐 집단에 속하는 속성과 행위를 변수와 메서드로 정의한 것instance : 클래스에서 정의한 것을 토대로 실제 메모리상에 할당된 것객체의 정보가 밖에서 접근하거나, 밖에서 객체 내의 정보에 접근하지 못하게 한다.
| 접근지정자 | 접근 범위 |
|---|---|
| private | 해당 클래스 내 |
| protected | 동일 패키지 내, 상속 받은 클래스 |
| (friendly) | 동일 패키지 내 (패키지 가시성) |
| public | 접근 제한 없음 |
상위, 부모, super, [추상] | 하위, 자식, (this), [구체]
공통된 기능을 여러 객체에게 전달하고 싶을 때가 아닌, 추상과 구체 관계에서 상속이 이루어진다.
효과
추상체 / 구체화된 객체 구상체객체지향 설계를 하는 5가지 원칙(SOLID)
수정이 일어나더라도 기존의 구성요소에서는 수정이 일어나지 않아야 하며, 쉽게 확장이 가능하여 재사용을 할 수 있도록 해야한다.
부모 클래스가 들어갈 자리에 자식 클래스를 넣어도 잘 구동되어야 한다는 원칙이다.
상위 모듈과 하위 모듈 모두 추상화된 내용에 의존해야 한다.
디자인패턴
효율적인 코드를 만들기 위한 방법론