반응형
아래 글은 공부를 위해 객체지향의 원리 및 이해를 정리한 것 입니다.
📃 참고도서
# 추상화란?
- 추상 / 추상화는 일반인이 생각하는 의미와 전산용어로서의 의미가 다르지 않다.
- 전산 분야에서 추상화는 영어로 Abstraction
- 피카소로 인해 널리 알려진 추상화는 영어로 Abstract Paintiing과 같은 Abstract 이다.
- 피카소는 극사실주의와 같이 눈에 보이는 그대로의 사물(객체)을 그린 것이 아니라,
마음 속에 느껴지는 그 사람의 특징을 그렸다. - 이집트 벽화(위 사진)을 보면 사람마다 키가 제각각인 것을 알 수 있다.
바로 그 시대의 권력 크기에 비례해 키를 그렸다고 한다. - 이집트 화가는 실제 모습이 아닌 추상적인 모습을 그려서 오히려 그 인물의 특징을 더욱 정확하게 묘사했다.
# 추상화는 모델링이다.
- 객체 지향의 4대 특성은 클래스를 통해 구현된다.(또는 객체)
- 객체 : 세상에 존재하는 유일무이한 사물
- 클래스 : 분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념
클래스 : 객체 = 펭귄 : 뽀로로 =사람 : 김연아 = 쥐 : 미키마우스
- 세상에 존재하는 유일무이한 객체를 특성(속성 + 기능)에 따라 분류해 보니,
객체를 통칭할 수 있는 집합적 개념, 즉 클래스(분류)가 나오게 된다.
- 객체는 유일무이한(unique)한 사물이다.
- 클래스는 같은 특성을 지닌 여러 객체를 총칭하는 집합의 개념이다.
- 클래스를 이용해 object를 만들었다는 것을 강조할 때는 object라는 표현보다는,
클래스의 인스턴스(instance)라는 표현을 쓴다.
추상화란 구체적인 것을 분해해서 관심 영역(어플리케이션 경계, Application Boundary)에
있는 특성만 가지고 재조합 하는 것 => 모델링
- OOP의 추상화는 모델링이다.
- 클래스 : 객체 = 펭귄 : 뽀로로
- 클래스 설계에서 추상화가 사용된다.
- 클래스 설계를 위해서는 애플리케이션 경계부터 정해야 한다.
- 객체 지향에서 추상화의 결과는 클래스다.
클래스 | 객체_참조_변수 | = | new | 클래스 | () |
객체_참조_변수의 자료형(Type) |
생성된 객체를 참조할 수 있는 변수 | 할당문 | 새로운 | 만들고자 하는 객체의 분류 | 메서드 |
클래스의 인스턴스, 즉 객체를 생성하기 위해 객체 생성자를 호출 | |||||
새로운 객체를 하나 생성해 그 객체의 주소값(포인터)을 객체 참조 변수에 할당 |
반응형