ch7-17 제어자(modifier)
- 클래스와 클래스의 멤버(멤버 변수, 메서드)에 부가적인 의미 부여
접근제어자 / 그 외
접근제어자 : public, protected, (default), private - 1개만 사용 가능
그 외 : static, final, abstract
- 하나의 대상에 여러 제어자를 같이 사용 가능 (접근 제언자는 하나만)
일반적으로 접근제어자를 제일 왼쪽에 작성한다.
ch7-18 static - 클래스의, 공통적인
클래스 초기화 블럭 :
static 메서드에서는 인스턴스 멤버(iv, instance method) 사용 불가
: iv들은 객체를 만들고 나서 사용할 수 있기 때문에
static은 객체 생성 없이 사용가능하다.
ch7-19 final - 마지막의, 변경될 수 없는
final이 지정된 클래스는 다른 클래스의 조상이 될 수 없다.
= 상속계층도의 가장 마지막에 존재할 수 있다.
변수 앞에 final이 붙으면 상수가 된다.
method는 변경불가 . 즉 오버라이딩이 불가능하다.
ch7-20 abstract - 추상의, 미완의
클래스와 메서드 앞에만 붙을 수 있다.
메서드 중에 몸통이 없는 메서드가 있다. 이런 메서드를 추상메서드라고 한다.
몸통이 없는 추상메서드에 abstract 를 붙인다.
추상메서드를 갖고 있는 클래스를 추상 클래스라고 한다.
추상 메서드 즉 선언부만 있는 경우 (구현부가 없는 경우) - 미완성 메서드이다.
클래스 역시 미완성 클래스....
미완성 클래스 : 추상메서드를 포함한 클래스
미완성 클래스는 즉 미완성 설계도이다.
제품 생성이 불가능
객체 생성이 불가능하다.
AbstractTest a = new .... (X) ;
미완성 설계도로 제품 생성이 불가능한것과 같은 이치
이 클래스를 사용하기 위해서는 상속을 통해서 몸통을 만들어서 사용해야 한다는 것을 알 수 있다.
객체를 만들 수 있는 경우는 추상클래스를 상속받아서 완전한 클래스를 만든 후에 객체를 생성할 수 있다.
미완성이기 때문에 설계도를 미완성에서 완성된 설계도로 변화시켜야 한다.
즉 구상클래스 <-> 추상클래스
'자바의정석' 카테고리의 다른 글
[자바의 정석 - 기초편] ch7-22 캡슐화 (0) | 2022.03.20 |
---|---|
[자바의 정석 - 기초편] ch7-21 접근제어자 (0) | 2022.03.20 |
[자바의 정석 - 기초편] ch7-15, 16 import문, static import문 (0) | 2022.03.19 |
[자바의 정석 - 기초편] ch7-12~14 패키지, 클래스 패스 (0) | 2022.03.19 |
[자바의 정석 - 기초편] ch7-10,11 참조변수 super, 생성자 super() (0) | 2022.03.19 |