OOP_추상화

Brogod97·2022년 12월 15일
0

KH TIL

목록 보기
16/37
post-thumbnail

추상화

추상화(abstraction)

유연성을 확보하기 위해 구체적인 것은 제거한다는 의미

작성하려는 클래스의 속성과 기능 중 프로그램에서 필요한 공통점을 추출하고, 불필요한 부분을 제거하는 과정

⇒ 일반적인 특성, 추상적인 특성은 추출 / 구체적인, 불필요한 특성은 제거


추상화(abstraction) 예시

피카소의 우는 여자 예시

  • 알 수 있는 것(공통적) : 사람, 여부, 실내, 감정, 재력

  • 알 수 없는 것(구체적) : 나이, 이름, 사는 곳, 키


국가에서 국민 정보 관리용 프로그램을 만들 때 예시

프로그램에서 요구되는 “국민 한 사람"의 정보(속성)를 추상화 한다면?

  • 5천만명 데이터를 저장하기 위해 5천만개의 변수를 저장할 순 없음
    → 국민이라면 가지고 있는 공통적인 속성을 생성하고, 그 곳에 개개인의 정보를 넣어 사용함

위 예시의 추상화한 결과물을 변수명(데이터 이름)자료형(데이터 타입) 정리

항목변수명자료형(type)
주민등록번호pNoString
이름nameString
성별genderchar
주소addressString
전화번호phoneString
나이ageint

→ 성별 같은 경우엔 M/F 로 받는 경우에 보통 char로 받음


다시한번 클래스 다이어그램으로 표현 시 아래와 같음

클래스 명: Person

앞에 - + 표시는 접근제한자를 의미함

  • + : public
  • - : private

파란 영역에 Person() 부분은 생성자를 뜻함


추상화의 장점

  1. 코드의 유연성 증가
  2. 중복 감소
  3. 재사용성 증가 (유지보수 용이)

0개의 댓글