[ Java ] 7장. 객체, 인스턴스화 ( + 자바 특징 )

ma.caron_g·2021년 10월 4일
0

Java

목록 보기
7/9
post-thumbnail

[ 객체(인스턴스)화 ]

객체화(인스턴스화)는 코드를 실제 세계의 사물들로 표현하는 것

  • 객체마다 고유한 특성행동을 지님
  • 다른 객체와 정보를 주고 받고 상호작용을 함
  • 컴퓨터에서 객체는 테트리스의 블록이나 한글 프로그램의 메뉴나 버튼들을 의미

[ 캡슐화 ]

자바의 가장 근본적인 특징
외부의 접근으로부터 객체를 보호

  • 클래스 : 객체 모양을 선언하는 틀
  • 객체 : 생성된 실체(인스턴스) - 클래스내에 메소드와 필드 구현

[ 상속 ]

  • 상위 개체(상위 클래스)가 하위 개체(하위 클래스)에 물려짐.
  • 하위 개체(하위 클래스)가 상위 개체(상위 클래스)의 속성을 모두 가짐.

< Animal (슈퍼) 클래스 >

Class Animal {
    String name;
    int age;
    void eat() { }
    void cry() { }
    void love() { }
}

< Human (서브) 클래스 >

Class Human extends Animal { // Animal 클래스를 상속
/*  선언을 하지 않아도 상속으로 이미 Animal 특징을 가짐.
    String name;
    int age;
    void eat() { };
    void cry() { };
    void love() { };
*/
    String hobby;
    String job;
    void work() { };
}

[ 다형성 ]

같은 이름의 메소드가 클래스 혹은 객체에 따라 다르게 구현되는 것

  • 메소드 오버로딩 : 한 클래스 내에서 이름은 같지만 다르게 작동하는 여러 메소드
  • 메소드 오버라이딩 : 슈퍼 클래스의 메소드를 동일한 이름으로 서브 클래스마다 다르게 구현

[ 객체지향 언어의 목적 ]

  • 생상성 향상
    - 산업 발전에 따른 소프트웨어 생명 주기 단축
    - 상속, 다형성, 객체, 캡슐화 등 재활용을 위한 여러 장치 내장
    - 재사용과 부분 수정이 빠름
    - 생산성 향상

  • 실세계에 대한 쉬운 모델링

[ 클래스와 객체 ]

클래스 (붕어빵 틀)



객체 (붕어빵)

붕어빵 기계라는 틀이 있고, 그 틀로 팥 붕어빵(객체1), 생크림 붕어빵(객체2)을 찍어낼 수 있다.
클래스와 객체를 붕어빵 기계와 붕어빵으로 연결하면 어떤 느낌인지 이해하기 쉽다.


< 클래스의 구성 >

  1. Class 키워드로 선언.
  2. 멤버 ( 필드(멤버 변수)와 메소드(멤버 함수) )
  3. 클래스에 대한 접근 지정
  4. 멤버에 대한 접근 지정
profile
다른 사람이 만든 것을 소비하는 활동보다, 내가 생산적인 활동을 하는 시간이 더 많도록 생활화 하자.

0개의 댓글