Skip to content

Latest commit

 

History

History
86 lines (61 loc) · 3.49 KB

File metadata and controls

86 lines (61 loc) · 3.49 KB

3. 자바와 객체 지향

객체 지향은 인간 지향이다

  • 객체란(Object)?
    • 눈으로 보여지는 것, 손으로 만져지는 것, 머릿속으로 상상되는 모든 것
    • 현실세계는 객체들의 합으로 구성
  • 클래스 vs 객체
    • 클래스는 사물을 분류해서 공통적인것을 뽑아낸 것
      • 사람 클래스 (직립 보행 + 말을 한다 -> 사람)
      • 펭귄 클래스 (연미복, 짧은 다리, 날지 못하는 새)
      • 별 클래스 (밤하늘에 반짝이는 것)
      • 클래스는 속성들 + 행위들
    • 객체
      • 클래스들의 구체적인 값과 행위들
      • 서동성, 서동진, 서하나 라는 각각의 객체
      • 객체들은 속성 + 행위
        • 속성 : 나이, 몸무게, 키 등의 필드 값
        • 행위 : 자다, 먹다 등의 메소드
      • 각각의 객체는 고유하다

img

  • 클래스와 객체 구분

    • 개념 -> 클래스
    • 실체 -> 객체
    • 클래스와 객체를 구분하는 간단한 방법은 나이를 물어보는 것 (대답이 가능 -> 객체, 불가능-> 클래스)
      • 사람의 나이는 몇살인가? - 클래스
      • 서동성의 나이는 ? - 객체
      • 펭귄의 나이는? - 클래스
      • 뽀로로의 나이는? - 객체
  • 객체 지향의 4대 특성 (캡상추다)

    • 객체 지향의 4대 특성은 클래스를 통해 구현
    • 캡슐화 : 정보은닉
    • 상속 : 재사용
    • 추상화 : 모델링
    • 다형성 : 사용편의
  • 객체 지향의 특징 : 추상화 (모델링)

    • 추상화는 여러 가지 사물이나 개념에서 공통되는 특성이나 속성 따위를 추출하여 파악하는 작용

      • 클래스 : 분류, 집합 같은 속성과 기능을 가진 객체를 총칭하는 개념 (추상화)
      • 객체 : 세상에 존재하는 유일무이한 사물 (클래스의 인스턴스)
    • 유일무이한 객체들 특성(속성 + 기능)에 따라 분류하면 클래스가 나오게 됨

      • 따라서 실제 존재하는 객체들을 먼저 나열해보고 클래스 별로 분류해본다!
      • 클래스가 정해졌으면 클래스부터 설게한다.
    • 클래스 만드는 방법

      • 사람이라는 클래스가 있다고 가정

        • 필드 : 시력, 몸무게, 혈액형, 키, 나이, 직업, 연봉 ...
        • 메소드 : 먹다(), 자다(), 일하다(), 운전하다(), 입금/출금하다(), 이체하다(), 운동하다()...

        -> 무한정 많음

        • 따라서 애플리케이션 경계 (Context)를 긋는다
        • 방법 : 내가 만들고자 하는 애플리케이션은 어디에서 사용될 것인가?
      • 병원 애플리케이션을 만든다면?

        • 여기에서 사람이란? 환자 (클래스)
        • 필요한 필드 : 시력, 몸무게, 혈액형, 키, 나이 만 필요하면 됨
        • 필요한 메소드 : 먹다(), 자다(), 운동하다()만 필요
      • 은행 애플리케이션을 만든다면?

        • 여기에서 사람이란? 고객 (클래스)
        • 필요한 필드 : 나이, 직업, 연봉
        • 필요한 메소드 : 이체하다(), 입금/출금하다()
      • 따라서 추상화(클래스)를 만드는 방법은 모델링이다

        • 모델링이란 관심있는 특성만을 추출해서 표현하는 것
        • 실제 사물을 단순하게 묘사하는 것
        • 필요한 것만 뽑아내는 것
        • 클래스를 설계할때 or DB 테이블을 설계할때 필요한 기법