abstract 키워드 - 추상 메서드와 추상 클래스
추상 클래스는 인스턴스, 즉 객체를 만들 수 없다. 즉 new를 사용할 수 없다.
추상 메서드는 하위 클래스에게 메서드의 구현을 강제한다. 오버라이딩 강제
추상 메서드를 포함하는 클래스는 반드시 추상 클래스여야 한다.
생성자
개발자가 아무런 생성자도 만들지 않으면 자바는 인자가 없는 기본 생성자를 자동으로 만들어준다.
인자가 있는 생성자를 하나라도 만든다면 자바는 기본 생성자를 만들어 주지 않는다.
클래스 생성 시의 실행 블록, static 블록
클래스 생성자는 존재하지 않는다.
클래스 정보는 해당 클래스가 코드에서 맨 처음 사용될 때 T 메모리의 스태틱 영역에 로딩되며, 이때 단 한번 해당 클래스의 static 블록이 실행된다.
왜 프로그램이 실행될 때 바로 클래스들의 정보를 T 메모리의 static 영역에 로딩하지 않고 해당 클래스가 처음 사용될 때 로딩할까?
스태틱 영역도 메모리이기 때문이다.
final과 클래스
클래스에 final이 붙었다면 어떤 의미가 될까?
-> 상속을 허락하지 않겠다는 의미다.
final과 변수
변수에 final이 붙었다면 그 의미는 뭘까?바로 변경 불가능한 상수메서드가 final 이라면 오버라이딩 불가
instanceof 연산자
인스턴스는 클래스를 통해 만들어진 객체 instanceof 연산자가 강력하기는 하지만 LSP를 어기는 코드에서 주로 나타나는 연산자이다(?)instanceof 연산자는 클래스들의 상속 관계뿐만 아니라 인터페이스의 구현 관계에서도 동일하게 적용된다.
interface 키워드와 implements 키워드
interface는 public 추상 메서드와 public 정적 상수만 가질 수 있다.정적 속성 -> 클래스명으로 접근 할 수 있는 속성
this 키워드
this는 객체가 자기 자신을 지칭할 때 쓰는 키워드다.
'📗 BOOK > 스프링 입문을 위한 자바 객체 지향의 원리와 이해' 카테고리의 다른 글
06 스프링이 사랑한 디자인 패턴 (0) | 2022.04.08 |
---|---|
05 객체 지향 설계 원칙 - SOLID (0) | 2022.04.08 |
03 자바와 객체 지향 (0) | 2022.03.25 |
02. 자바와 절차적/구조적 프로그래밍 (0) | 2022.03.18 |
01. 사람을 사랑한 기술 (0) | 2022.03.18 |