출처: https://bumcrush.tistory.com/182 [맑음때때로 여름]

 

 

(default는 아무것도 안적힌 기본 상태일때를 말함)

제어자 같은 클래스 같은 패키지 자손 클래스 전체
public [공용멤버] O O O O
protected O O O  
default [패키지멤버] O O    
private [전용멤버] O      

 

 

 

// 제어자 + [class/변수/메서드/생성자] 

Class 인스턴스 생성 제어 / 클래스를 다른클래스가 사용하게 하거나 못하게 하거나를 제어
변수 변경, 참조, 읽기 제어
메서드 호출 제어
생성자 인스턴스 생성 제어

 

// 제어자의 조합

대상 사용가능한 제어자
클래스 public, (default), final, abstract
메서드 모든 접근 제어자, final, abstract, static
멤버변수 모든 접근 제어자, final, static
지역변수 final

 

1. 메서드에 static과 abstract를 함께 사용할 수 없다.

-  static메서드는 몸통(구현부)이 있는 메서드에만 사용할 수 있기 때문이다. 

 

2. 클래스에 abstract와 final을 동시에 사용할 수 없다.

- 클래스에 사용되는 final은 클래스를 확장할 수 없다는 의미이고, abstract는 상속을 통해서 완성되어야 한다는 의미이므로 서로 모순되기 때문이다. 

 

3. abstract메서드의 접근제어자가 private일 수 없다.

 abstract메서드는 자손클래스에서 구현해주어야 하는데 접근 제어자가 private이면, 자손클래스에서 접근할 수 없기 때문이다.

 

4. 메서드에 private과 final을 같이 사용할 필요는 없다.

- 접근 제어자가 private인 메서드는 오버라이딩될 수 없기 때문이다. 이 둘 중 하나만 사용해도 의미가 충분하다.

 

 

~예제~

'JAVA > basic' 카테고리의 다른 글

상속 / extends  (0) 2020.10.15
[Singleton] 싱글톤 / 싱글턴 패턴  (0) 2020.10.15
getter / setter  (0) 2020.10.15
import  (0) 2020.10.15
배열과 메소드  (0) 2020.10.13
2차원 배열 / 다차원 배열  (0) 2020.10.13
변수의 초기화 / 초기화 블럭  (0) 2020.10.08

+ Recent posts