부트캠프 기록/Section1

[Java] 객체지향 프로그래밍 심화/ 12일차 기록

bbangduck 2022. 9. 6. 20:24

상속(extends)

  • 상위클래스-하위클래스 개념과 장점
    • 자식 클래스는 부모클래스의 멤버를 상속받아서 사용 => 코드의 재사용
    • 단, 메서드는 반드시 재정의 해야함
    • 단일 상속만 허용 

 

  • 포함관계와 상속관계의 차이
    • 포함관계 : implements, has-a 
    • 상속관계: extends, is-a

 

  • 메서드 오버라이딩
    • 하위클래스가 상위클래스의 메서드를 재정의하는 것
    • 가상 메서드 테이블
    • 메서드이름, 매개변수와 리턴타입이 같아야 함
    • 오버로딩과 오버라이딩의 차이
    • 하위 클래스는 상위 클래스한테 상속받은 메서드를 반드시 제공해야함

 

  • super 와 super() 의 차이
    • super: 상위클래스를 나타냄
    • super(): 상위클래스의 생성자 호출
    • this, this() 와 유사점

 

  • 자바 클래스의 상속계층도 최상단에 있는 Object 클래스
    • 자동으로 상속
    • 대표적 메서드: toString(), equals(), hashCode(), wait(), notify() 등

 

  • final - 상속할 수 없는 클래스

 

 

캡슐화

  • 캡슐화의 핵심 개념과 목적
    • 데이터 보호와 은닉
    • 특정 객체 안에 관련된 속성과 기능을 하나의 캡슐로 만들어 데이터를 외부로부터 보호하는 것

 

  • 패키지의 개념, import문
    • 동일한 목적을 가진 클래스와 인터페이스를 모아둔 폴더
    • import를 하면 다른 패키지를 클래스를 사용할 수 있음

 

  • 캡슐화를 위한 접근제어자
    • private: 동일 클래스 내
    • default: 동일 패키지 내
    • protected: 동일 패키지, 다른 패키지의 하위 클래스
    • public: 제한없음 

 

  • 데이터를 보호하기 위한 getter/setter 메서드
    •  Lombok을 사용하면 어노테이션으로 제공가능