추상화(abstraction)
유연성을 확보하기 위해 구체적인 것은 제거한다는 의미
작성하려는 클래스의 속성과 기능 중 프로그램에서 필요한 공통점을 추출하고, 불필요한 부분을 제거하는 과정
⇒ 일반적인 특성, 추상적인 특성은 추출 / 구체적인, 불필요한 특성은 제거
알 수 있는 것(공통적) : 사람, 여부, 실내, 감정, 재력
알 수 없는 것(구체적) : 나이, 이름, 사는 곳, 키
프로그램에서 요구되는 “국민 한 사람"의 정보(속성)를 추상화 한다면?
위 예시의 추상화한 결과물을 변수명(데이터 이름)과 자료형(데이터 타입) 정리
항목 | 변수명 | 자료형(type) |
---|---|---|
주민등록번호 | pNo | String |
이름 | name | String |
성별 | gender | char |
주소 | address | String |
전화번호 | phone | String |
나이 | age | int |
→ 성별 같은 경우엔 M/F 로 받는 경우에 보통 char
로 받음
다시한번 클래스 다이어그램으로 표현 시 아래와 같음
클래스 명: Person
앞에 -
+
표시는 접근제한자를 의미함
+
: public
-
: private
파란 영역에 Person()
부분은 생성자를 뜻함