본문 바로가기
Java/자바 객체 지향의 원리와 이해

자바가 확장한 객체 지향

by k-mozzi 2023. 9. 4.
반응형
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 키워드로 바로 위의 상위 클래스 인스턴스에는 접근할 수 있지만, 상위 클래스의 상위 클래스 인스턴스에는 접근할 수 없다.

 

728x90
반응형

댓글