티스토리 뷰

자바쪽에 넣어야할지 고민이 됐는데 물론 설명에 대한 기반 베이스는 자바이지만 객체지향의 특성에 대한것이니 기타프로그래밍쪽에 넣게됐음.


캡슐화

-객체의 속성에 함부로 직접접근을 하지못하게 한다.

-자바에선 주로 private 접근제어자를 이용해 외부에서 접근하지못하게 선언하고 setter, getter를 이용해 수정, 조회를 한다. 그냥 형식적인 setter, getter를 사실 직접 접근해서 값을 바꾸고 가져오는것과 큰 차이가 없지만 setter, getter에는 값 제한이나 타입 변경같은 로직이 추가될수도있기때문에 그걸 염두해서 생각해야한다.

-보통 private public 을 많이 사용하지만 default나 proteced도 잘 숙지하고 필요할땐 사용할 수 있어야한다.


상속

-상속이라고 말하지만 아빠 -> 아들 같은 관계를 생각하면 안된다. 상속은 영어로 inherit 이지만 자바에서 상속을 구현할때는 extends를 사용한다. 이 단어에서 볼수있듯이 상속보다는 확장이라는 단어가 좀 더 정확한 표현이며 아빠 -> 아들같은 계층도보다는 남자 -> 남자친구같은 추상적인 분류에서 좀더 구체적인 분류로 확장한다고 보는것이 맞다.

-때문에 부모클래스, 자식클래스보단 상위클래스, 하위클래스라고 표현하는것이 맞다고 생각한다.


추상화

-개발자에게 필요한 객체의 특성을 뽑아내는것.

-객체를 추상화시킨것이 클래스, 클래스를 추상화 시킨것이 추상클래스, 극한까지 추상화시킨게 인터페이스.


다형성

-하위클래스들을 상위클래스에서 참조할 수 있는 것. 좀 더 정확히 말하자면 하위 클래스의 '객체'를 상위 클래스 타입의 변수로 참조할 수 있는 것.

-나머지 3개는 어느정도 이해가 되는데 다형성이 말로 표현하기 가장 난해한것같다. 이게 참 좋은데 말로 표현하기가 힘드네. 아직 공부가 부족한것같다.

'기타 프로그래밍' 카테고리의 다른 글

객체지향설계 5대 원칙 SOLID  (1) 2015.09.20
자바스크립트 변수에 php값 넣기  (0) 2015.09.15
객체지향 4대 특성  (0) 2015.09.06
log4j log level  (0) 2014.10.13
런타임에러/컴파일에러  (0) 2014.08.11
코딩스타일  (0) 2014.08.06
공유하기 링크
TAG
댓글
댓글쓰기 폼