Preface
이번 장에선 abstract와, final 키워드, 인터페이스에 대해 다뤘다.
대부분 '이것이 자바다' 책에서 다뤘던 내용이라 어려운 내용은 없었다.
더욱 자세한 정보는 이자바 카테고리에서 확인할 수 있다.
- 추상 메서드: 선언부는 있지만 구현부가 없는 메서드
→ 추상 메서드는 하위 클래스에게 오버라이딩을 강제한다.
- 추상 클래스: 인스턴스(객체)를 생성할 수 없는 클래스
→ 추상 클래스를 상속한 하위 클래스에선 추상 메서드를 오버라이딩해야 한다.
- '클래스명( )'도 메서드이다.
→ 객체 생성자 메서드라 하고, 줄여서 생성자라고 부른다.
- 자바는 인자가 없는 기본 생성자를 자동으로 생성해준다.
→ 인자가 있는 생성자를 하나라도 생성하면 자바는 기본 생성자를 만들어 주지 않는다.
- 프로그램이 시작될 때 모든 패키지와 클래스가 T 메모리의 스태틱 영역에 로딩되는 것이 아닌, 해당 패키지 또는 클래스가 처음으로 사용될 때 로딩된다.
- 클래스 정보는 해당 클래스가 코드에서 처음 사용될 때 T 메모리의 스태틱 영역에 로딩되며, 단 한번 해당 클래스의 static 블록이 실행된다.
- 인스턴스 블록({ }): 인스턴스가 생성될 때마다 { } 블록이 실행되며, 객체 생성자가 실행되기 전에 먼저 실행된다.
- final 키워드
1) final 클래스: 상속을 허락하지 않는다.
2) final 변수: 상수가 된다.
3) final 메서드: 오바리딩을 금지한다.
- instanceof 연산자: 객체가 특정 클래스의 인스턴스인지 아닌지 boolean 타입으로 반환한다.
→ 객체 참조 변수의 타입이 아닌 실제 객체의 타입에 의해 처리한다.
- package 키워드: 네임스페이스를 만들어준다.
- 인터페이스는 public 추상 메서드와 public 정적 상수만 가질 수 있다.
→ 메서드에 public, abstract, 속성에 public, static, final을 붙이지 않아도 자바가 자동으로 붙여준다.
- 디폴트(default) 메서드: 인터페이스에 선언되지만 사실은 구현 객체가 지니고 있는 인스턴스 메소드
1) 인스턴스 메소드이므로 인터페이스에서 바로 사용할 수 없고 구현 객체가 있어야 사용 가능하다.
2) 인터페이스를 변경하면서도 기존의 클래스들이 호환성을 유지할 수 있다.
→ 오버라이딩이 선택적이다.
- 변수의 우선순위
1) 지역 변수와 객체(정적) 변수의 이름이 같은 경우 지역 변수가 우선한다.
2) 객체 변수와 이름이 같은 지역 변수가 있는 경우, this를 접두사로 사용하여 객체 변수를 사용할 수 있다.
3) 정적 변수와 이름이 같은 지역 변수가 있는 경우, 클래스명을 접두사로 사용하여 정적 변수를 사용할 수 있다.
- super 키워드로 바로 위의 상위 클래스 인스턴스에는 접근할 수 있지만, 상위 클래스의 상위 클래스 인스턴스에는 접근할 수 없다.
'Java > 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
자바와 객체 지향 (0) | 2023.08.31 |
---|---|
자바와 절차적/구조적 프로그래밍 (0) | 2023.08.30 |
자바 객체 지향의 원리와 이해 출처 (0) | 2023.08.30 |
댓글