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사용 참조]
|
반응형
'Study > Java' 카테고리의 다른 글
Java16_컬렉션프레임워크 (0) | 2022.05.14 |
---|---|
Java15_내장클래스 (0) | 2022.05.14 |
Java13_인터페이스&구현 (0) | 2022.05.14 |
Java12_클래스의 상속 (0) | 2022.05.14 |
Java11_커스텀클래스&객체 (0) | 2022.05.14 |