Study/java

Modifiers

minzihun 2022. 12. 6. 03:43

<Access Modifiers> 하나만 사용 가능

Class

- public 다른 클래스에 의해 접근 가능한 클래스, 즉 접근 제한이 없다.

- default 같은 패키지 내에서만 접근 가능하다.

 

Attributes, methods and constructors

- public 다른 클래스에서 접근 가능한 코드, 즉 접근 제한이 없다.

- private 같은 클래스 내에서만 접근이 가능하다.

- default 같은 패키지 내에서만 접근 가능하다.

- protected 같은 패키지 내에 자식 클래스에서 접근이 가능하다.

 

<Non-Access Modifiers>

Class (둘 다 사용 가능)

- final 상속될 수 없는 클래스가 된다.

- abstract 클래스 내에 추상메서드가 선언되어 있음을 나타낸다.

                이 클래스로 객체 생성이 불가하다.

 

Attributes, methods and constructors (하나만 사용 가능)

- final 오버라이딩과 수정이 불가능한 속성과 메서드가 된다.

- static 속성과 메서드가 객체가 아닌 클래스에 속하게 된다. (객체 생성하지 않고 사용 가능)

- abstract 추상클래스 내에서만 사용될 수 있고, 메서드에만 사용된다. (속성에 사용 불가)

                 메서드는 바디가 없으며, 바디는 자식 클래스에 의해 생성된다.

- transient 객체를 serializing할 때 특정 속성이나 메서드를 건너 뛰기위해 사용한다.

- synchronized 메서드는 한 번에 하나의 스레드에서만 접근할 수 있다.

- volatile 속성 값은 스레드 로컬에 캐시되지 않으며 항상 메인 메모리에서 읽는다.

 

출처 Java Modifiers (w3schools.com)