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