상속,오버로딩,패키지

HakJun·2022년 11월 17일
1
  1. 상속
  • 자손은 조상의 모든 멤버를 상속받는다.(생성자, 초기화 블럭 제외)
  • 자손의 멤버 개수는 조상보다 적을 수 없다.(같거나 많다.)
  • 자손의 변경은 조상에 영향을 미치지 않는다. -> 클래스가 확장(extend)된다.
  1. 포함관계
  • 클래스의 멤버로 참조변수를 선언하는것;
  • 상속관계 : is-a관계
  • 포함관계 : has-a관계, 90%이상의 대부분의 경우가 포함관계
  1. 단일상속
  • Java는 단일상속만 허용한다.
class TvDVD extends Tv,DVD -> 에러발생
  • 비중 높은 클래스 하나만 상속, 나머지를 포함관계로 설정하여 해결한다.
  1. Object 클래스
  • 모든 클래스의 조상
  • 부모가 없는 클래스는 자동적으로 Object 클래스를 상속받게 된다.
  • toString(), equals(Object obj),, 등의 메소드 포함
  1. 오버라이딩
  • 상속받은 조상의 메서드를 자신에 맞게 변경하는 것
  1. 오버라이딩의 조건
  • 선언부가 조상 클래스의 메서드와 일치해야 한다.
  • 접근 제어자를 조상 클래스의 메서드보다 좁은 범위로 변경할 수 없다.
  • 예외는 조상 클래스의 메서드보다 많이 선언할 수 없다.
  1. 오버로딩 vs 오버라이딩
  • 오버로딩 : 기존에 없는 새로운 메서드를 정의하는것(이름이 같음)
  • 오버라이딩 : 상속받은 메서드의 내용을 변경하는것
  1. 참조변수 super
  • 객체 자신을 가리키는 참조변수, 인스턴스 메서드(생성자) 내에서만 존재
  • 조상의 멤버를 자신의 멤버와 구별할 때 사용
  1. super() -> 조상의 생성자
  • 조상의 생성자를 호출할 때 사용
  • 조상의 멤버는 조상의 생성자를 호출해서 초기화
  • 조상의 멤버는 조상의 생성자를 통해 초기화하는게 바람직하다. 자손에서는 바람직하지 않음
  • 생성자의 첫 줄에 반드시 생성자를 호출해야 한다.
  • 그렇지 않으면 컴파일러가 생성자의 첫 줄에 super();를 삽입한다.
  1. 패키지
  • 서로 관련된 클래스 묶음
  • 클래스는 클래스파일(*.class) 패키지는 폴더, 하위 패키지는 하위 폴더
  • 클래스의 실제 이름은 패키지를 포함
    rt.jar는 클래스들을 압축한 파일 (JDK설치경로\jre\lib에 위치)

11.패키지의 선언

  • 패키지는 소스파일의 첫 번째 문장으로 단 한번 선언
  • 같은 소스파일의 클래스들은 모두 같은 패키지에 속하게 된다.
  • 패키지 선언이 없으면 이름없는(unnamed)패키지에 속하게 된다.
  • 패키지를 선언하지 않으면 default package에 포함된다.
  1. 클래스 패스
  • 클래스파일의 위치를 알려주는 경로
  • 환경변수 classpath로 관리한다.(os과 관리)
  • 등록함으로써 해당 디렉토리로 이동하지않고 자바 파일을 실행할 수 있다.
profile
백엔드 & 전공 공부

0개의 댓글