Skip to content

DAY240809

Simkm-98 edited this page Aug 9, 2024 · 7 revisions
  • 6장 복습 // 클래스 구성 요소
    • 필드 : 객체의 데이터를 저장하는 역할은 한다.
    • 생성자 : 기본 생성자(선언 생략 가능), 인자 생성자(매개변수, 초기화를 위해)
      • 인자 생성자를 만들면 기본생성자 호출을 안함(인자 생성자를 만들거면 기본생성자 자동생성x 직접 만듬) *
    • 메소드 : 객체의 동작으로 호출 시 실행하는 블록

*6.13 접근 제한자

image

*6.14 Getter, Setter

  • Setter : 데이터를 검증해서 유효한 값만 필드에 저장하는 메소드
  • Getter : 필드값이 객체 외부에서 사용하기에 부적절한 경우, 적절한 값으로 변환해서 리턴할 수 있는 메소드
  • Setter 는 메소드이름에 set, Getter 는 get, boolean 타입일 경우 is 로 시작하는것이 관례

*7장 상속

*7.1 상속 개념

  • 상속은 부모가 자식에게 물려주는 행위, 객체지향 프로그램에서 부모클래스의 필드와 메소드를 자식 클래스에게 물려줄 수 있다.
  • 중복 코드를 줄이고, 클래스 수정을 최소화 할 수 있다.

*7.2 클래스 상속

image

  • 자바는 다중 상속을 허용하지 않음.
  • 즉, 여러 개의 부모 클래스를 상속할 수 없다. extends 뒤에는 단 하나의 부모 클래스만 와야한다.

*7.3 부모 클래스 호출

  • 자식 객체를 생성하면 부모 객체가 먼저 생성된 다음 자식 객체가 생성
  • 부모 생성자는 자식 생성자 맨 첫 줄에 숨겨져 있는 super(); 에 의해 호출
  • 인자 생성자 생성 시 super(매개변수) 무조건 입력해줘야 오류가 안남.

*7.4 메소드 재정의

  • 메소드 오버라이딩은 상속된 메소드를 자식 클래스에서 재정의
  • 메소드가 오버라이딩 되면 해당 부모 메소드는 숨겨지고, 자식 메소드가 우선적으로 사용

image

  • 부모 메소드의 선언부(리턴 타입, 메소드 이름, 매개변수)와 동일해야함.
  • 접근 제한을 더 강하게 오버라이딩 할 수 없음 ( public -> private 변경 불가)
  • 새로운 예외를 throws 할 수 없음

*7.5 final 클래스와 final 메소드

  • 클래스 선언할 때 final 키워드를 class 앞에 붙이면 최종적인 클래스이므로 더 이상 상속할 수 없음.
  • 즉, final 클래스는 부모 클래스가 될 수 없어 자식 클래스를 만들 수 없다.

*7.6 protected 접근 제한자

image

*7.7 타입변환

  • 자동 타입 변환

image

  • 강제 타입 변환

image

image

*7.8 다형성 -> 상속부터 해야함

  • 사용방법은 동일하지만 실행 결과가 다양하게 나오는 성질
  • 다형성을 구현하기 위해서는 자동 타입 변환과 메소드재정의(오버라이딩)이 필요
  • 필드 다형성
  • 필드 타입은 동일하지만, 대입되는 객체가 달라져서 실행결과가 다양하게 나올 수 있는 것
Clone this wiki locally