Skip to content

Latest commit

 

History

History
41 lines (34 loc) · 1.75 KB

6. 확장한 객체 지향.md

File metadata and controls

41 lines (34 loc) · 1.75 KB

자바가 확장한 객체 지향

Abstract Class

  • 추상 클래스는 인스턴스, 즉 객체를 만들 수 없습니다. 다시 말해, new를 사용할 수 없습니다.
  • 추상 메소드는 하위 클래스에게 메소드 구현을 강제합니다. (Overriding 강제)
  • 추상 메소드를 포함하는 클래스는 반드시 추상 클래스여야 합니다.

생성자

  • 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어줍니다.

    인자가 있는 생성자를 하나라도 만들면 자바는 기본 생성자를 만들어 주지 않습니다.

final 키워드

  • 객체 지향 언어의 구성 요소인 클래스, 변수, 메소드에 붙을 수 있습니다.
  • 클래스에 final이 붙는다면 상속을 허락하지 않겠다는 의미입니다.
  • 변수에 final이 붙는다면 변경 불가능한 상수가 됩니다.
  • 메소드에 final이 붙는다면 Overriding을 금지하게 됩니다.

this 키워드

Class 펭귄 {
    int var = 10;
    
    void test() {
        int var = 20;
        System.out.println(var);        // 20
        System.out.println(this.var);   // 10
    }
}

public class Driver {
    public static void main(String[] args) {
        펭귄 뽀로로 = new 펭귄();
        뽀로로.test();
    }
}
  • 지역 변수와 속성(멤버 변수, 정적 변수)의 이름이 같은 경우 지역 변수가 우선합니다.
  • 멤버 변수와 이름이 같은 지역 변수가 있는 경우 멤버 변수를 사용하려면 this를 접두사로 사용해야 합니다.
  • 정적 변수(클래스 변수)와 이름이 같은 지역 변수가 있는 경우 정적 변수를 사용하려면
    클래스명을 접두사로 사용해야 합니다.