티스토리 뷰
자바쪽에 넣어야할지 고민이 됐는데 물론 설명에 대한 기반 베이스는 자바이지만 객체지향의 특성에 대한것이니 기타프로그래밍쪽에 넣게됐음.
캡슐화
-객체의 속성에 함부로 직접접근을 하지못하게 한다.
-자바에선 주로 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 |
log4j log level (0) | 2014.10.13 |
런타임에러/컴파일에러 (0) | 2014.08.11 |
코딩스타일 (0) | 2014.08.06 |
- Total
- Today
- Yesterday
- db
- TEST
- MySQL
- Kotlin
- frontend개발환경
- servlet
- backend개발환경
- OOP
- code
- Git
- java
- mariadb
- http
- frontcode
- Spring
- generics
- JPA
- programming
- DesignPattern
- javascript
- go-core
- JavaScript Core
- spring cloud
- Jackson
- toby
- java8
- 정규표현식
- clean code
- EffectiveJava
- Design Pattern
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |