자바의정석

[자바의정석 - 기초편 ] ch7-17~20 제어자, static, final, abstract

유호야 2022. 3. 19. 23:59
반응형

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) ; 

미완성 설계도로 제품 생성이 불가능한것과 같은 이치

 

이 클래스를 사용하기 위해서는 상속을 통해서 몸통을 만들어서 사용해야 한다는 것을 알 수 있다.

객체를 만들 수 있는 경우는 추상클래스를 상속받아서 완전한 클래스를 만든 후에 객체를 생성할 수 있다.

미완성이기 때문에 설계도를 미완성에서 완성된 설계도로 변화시켜야 한다. 
즉 구상클래스 <-> 추상클래스 

 

 

 

반응형