추상화
- 복잡한 현실 세계의 개체를 단순화시켜 컴퓨터 프로그래밍에서 표현할 수 있는 형태로 바꾸는 과정임
클래스
라는 개념도 추상화의 결과물임
차
라는 현실 개체가 있는 경우, 프로그램으로 표현하기 위해 필요한 핵심 속성과 기능만을 뽑아서Car
클래스로 정의하는 것이추상화
모델링
- 현실세계의 개체나 시스템을 단순화시켜 모형으로 만드는 과정임
- OOP 측면에서
- 추상화를 통해 얻어진 클래스나 객체나 현실 세계의 모델로 불릴 수 있음.
객체와 모델링
객체 : 세상에 존재하는 유일무이한 사물
객체의 구성은 다음 2가지로 구성됩니다.
- 데이터(속성)
- 해당 데이터를 처리하는 메서드(기능)
- 이렇게 객체를 정의하는 과정 자체가 현실 세계의 개체를 모델링하는 것임.
사람
이라는 개체의- 속성
- 이름
- 나이
- 성별 등
- 기능
- 걷다
- 먹다
- 말하다
을
Person
이라는 클래스로 정의할 수 있음.- 속성
- 위와 같은 과정을
사람
이라는 개체를모델링
하는 것임이는 객체 지향의 추상와와 동일한 과정
객체와 클래스
객체
- 정의
- 세상에 존재하는 유일무이한 사물
- 특성(속성) 과 행위(기능) 을 가짐
김연아
는사람
이라는 객체의 예시이며,- 그 특성은 이름, 나이, 성별
- 행위에는 스케이팅, 노래 부르기 등이 있을 수 있음
뽀로로
는펭귄
이라는 객체의 구체적인 예
- 특징
- 객체는 실제로 메모리 상에 할당되어 동작하거나 값을 가질 수 있음
클래스
- 정의
- 같은 특성과 기능을 가진 객체들을 총칭하는 집합적 개념
- 객체를 생성하는
설계도
혹은틀
사람
이라는 클래스는김연아
나
홍길동
등과 같은 여러 사람 객체를 포함함.
- 특징
- 클래스는 동작하거나 값을 가지지 않습니다
그저 객체를 생성하기 위한 설계도 입니다.
사람
이라는 클래스를 이용하여김연아
나홍길동
같은 구체적인 객체를 생성함.
- 클래스는 동작하거나 값을 가지지 않습니다
객체와 클래스 관계
- 객체는 클래스에 기반하여 생성됨.
- 클래스는 객체의 설계도이자, 객체는 그 설계도를 바탕으로 실체화된 개별 사물이나 대상
클래스: 객체
=펭귄:뽀로로
의 관계
클래스의 인스턴스
- 객체를 특정 클래스를 이용해 만들었다고 표현할 때
해당 객체는 그 클래스의
인스턴스
라고 부름
추상화와 애플리케이션의 경계
- 애플리케이션의 목적에 따라 클래스 설계가 달라짐
- 이를 애플리케이션 경계라고 부르며,
컨텍스트
라고 합니다.
- 이를 애플리케이션 경계라고 부르며,
- 예를 들어
- 병원 APP
사람
환자
- 일반적인 사람의 특성 중 병원에서 필요한 특성만을 선택해 클래스 설계
- 은행 APP
사람
고객
- 고객과 관련된 특성만을 선택해 클래스 설계함
- 병원 APP
추상화와 모델링
- 추상화
- 구체적인 것을 분해하여 관심 영역에 대한 특성만을 가지고 재조합하는 과정
- 모델링
애플리케이션 경계
에 있는 특성만 가지고 재조합하는 것
- 실제 사물을 100% 반영하는 것이 아니라, 관심있는 특성만 추출하여 표현하는 것!
추상화의 개념의 확장
- 상속을 통한 추상화, 구체화
- 인터페이스를 통한 추상화
- 다형성을 통한 추상화
이렇게 3가지가 존재하는데, 추후 상속과 다형성, 인터페이스 설명할때 추가설명함
Uploaded by N2T
'자바 > 스프링입문객체지향' 카테고리의 다른 글
[3단원]상속: 재사용 + 확장 (0) | 2023.08.22 |
---|---|
[3단원]추상화와 T 메모리 (0) | 2023.08.20 |
추상화: 모델링 (0) | 2023.08.20 |
객체지향의 4대 특성 -캡상추다 (0) | 2023.08.19 |
상속에 대한 오해 - 클래스 vs 객체 =?= 붕어빵틀 vs 붕어빵 (0) | 2023.08.19 |