Study/Java
Java14_수식어
슬기로운 개발자
2022. 5. 14. 04:32
728x90
[수식어1 – 기능제어]
구분 | final | static | abstract |
class | • 상속 안됨 (슈퍼클래스 불가) |
• 사용 불가 | • 객체생성 불가 |
field | • 재초기화 불가 • 선언과 동시에 대입하거나 생성자로 초기화만 가능 |
• 정적 필드(표1. 정적필드사용 참조) ① 클래스의 객체가 생성되더라도 클래스 자체에만 생성됨 ② 객체생성 없이 [클래스명.필드 명]으로 사용가능 |
• 사용 불가 |
local variable |
• 재초기화 불가 • 선언과 동시에 대입하지 않아도 됨 |
• 사용 불가 | • 사용 불가 |
method | • 오버라이딩 불가 | • 정적 메서드 ① 클래스의 객체가 생성되더라도 클래스 자체에만 생성됨 ② 객체생성 없이 [클래스명.메서드 명]으로 사용가능 • 동일 클래스내부에서는 정적필드와 정적메서드만 사용가능함. 단, 클래스의 객체를 생성할 경우 정적필드, 정적메서드가 아니라도 사용 가능함 • 오버라이딩 할 경우 static 사용 |
• 추상 메서드 ① 메서드 본체가 없음. ② 상속한 클래스에서 추상메서드를 구현해야 함. ③ 인클로징 타입(=인클로징 클래스)도 추상클래스가 되어야 함. 단, 그 반대는 무관함. |
[표1. 정적필드사용]
![]() |
![]() |
참고.
정적 필드는 클래스 자체에 속하기 때문에 객체명 대신 클래스명을 붙여서 사용할 수 있습니다.
System.out.println("총계 = " + Accumulator.grandTotal);
[수식어2 – 접근제어] (자원의 사용가능여부)
구분 | public | protected | default | private |
클래스 내부 | 모두 사용가능 |
사용 가능 |
사용 가능 | 사용 가능 |
동일 패키지 | ||||
서브 클래스 | ||||
다른 패키지 |
[표2. private사용 참조]
![]() |
![]() |
반응형