다시 java 시작 하면서
객체지향이란 무엇인지 부터 시작 했다.
검색과 유투브를 통해 지식을 모아봤는데 내게 와닿는 내용을 찾지 못했고 (그 지식들이 틀리다는 얘기가 아니다. 내가 흡수하지 못했단 뜻이다)
그 중 "추상화"란 단어는 반복적으로 나왔다.
추상화를 생각하니 현대미술을 보는 느낌이 떠올라 객체지향은 정의 할 수 없는 것이란 생각에 반감이 들었고
정확히 무슨 뜻일까 궁금해서 "추상"이란 단어를 검색하고 위키백과와 대산님의글, 한자어를 보고 정확한 의미를 알았다.
한자 : 抽象 (뽑아내다 추, 코끼리 상)
위키백과 : 사물을 정확하게 이해하기 위해서는 사물이 지니고 있는 여러 가지 측면 가운데서 특정한 측면만을 가려내어 포착하는 것이다. 어떤 일면만을 추상하는 것은 다른 측면을 버린다는 것과 같다.
모양을 뽑아내다.
객체지향은 추상화가 근본이고 객체지향의 특성은 추상화를 위한 도구라는 생각이 들었다.
다른 객체지향 언어는 모르겠지만,
JAVA에서 객체지향을 표현하기 위해 대상을 추상화하여 변수(특성)와 메소드(행위)의 집합체인 Class 로 구상화(모양을 갖추다) 한다라는 결론에 이르렀다.
그리고 나서야 검색해서 모았던 지식들이 이해가 됐다.
아쉬운 점은 왜 학교에선 추상이란 의미를 명확하게 알려주지 않는가? 이다.
어떤 것이든 나만의 시야로 추상하고 싶다.
'java' 카테고리의 다른 글
shallow & deep copy (0) | 2019.08.23 |
---|---|
Serializable (0) | 2019.08.02 |
Java 실행 구조 (0) | 2019.07.25 |
Thread Dump (0) | 2019.07.22 |
객체 지향과 SOLID (0) | 2019.04.26 |