최범균님의 인프런 강의를 학습한 내용을 기록했습니다.
객체는 제공하는 기능으로 정의(내부적으로 가진 필드로 정의하지 않음)
객체의 햄식 -> 기능제공
ex) 회원객체
- 암호 변경하기 기능
- 차단여부 확인하기 기능
ex) 소리제어기
- 소리 크기 증가하기 기능
- 소리 크기 감소하기 기능
기능 명세
객체와 객체는 기능을 사용해 연결
기능 사용 = 메서드 호출
VolumnController volCont = new VolumnController();
volCont.increase(4);
volCont.decrease(3);
int currentVol = volCont.volume();
객체와 객체 상호작용을 메시지를 주고받는다고 표현한다. 메서드를 호출하는 메시지, 리턴하는 메시지 익셉션 메시지
데이터를 캡슐화 하고 캡슐화한 데이터를 다루는 코드를 한 곳에서 관리하는 것이다.
절치지향
- 데이터를 여러 프로시저가 공유하는 방식(프로시저와 데이터간의 접근이 자유롭다)
- 데이터가 변경되면 데이터를 사용하는 코드도 변경해야 함
- 개발 초기단계에서는 편의성이 있지만 시간이 지날수록 프로시저가 어느 데이터에든 접근할 수있어 캡슐화가 저하되기 때문에 개발이 어려움
객체지향
- 데이터와 프로시저를 객체라는 단위로 묶고 데이터에 직접 접근을 할 수 없고 프로시저를 이용해 데이터에 접근하는 방식