final
- final은 유저에게 제한을 두기 위해 class, method, variable(member variable, local variable)에 사용할 수 있는 키워드이며 , 대상에 따라 의미가 다르다.
대상 | 의미 |
Class | 확장될 수 없는 클래스. 다른 클래스가 final 클래스를 상속할 수 없다. |
Method | 재정의 할 수 없는 메소드. final 메소드는 오버라이딩 할 수 없다. |
Variable | 값을 변경할 수 없는 변수. 일반적으로 상수의 목적으로 사용할 때 final 키워드를 사용한다. |
static
- 클래스 로더가 .class파일을 탐색 중 static 키워드를 보는 순간 객체가 생성되지 않아도 항상 메모리를 할당해야 하는 멤버로 보고 Static Area에 메모리를 할당한다. 그래서 static 키워드가 붙은 멤버들은 객체(인스턴스)에 소속된 변수가 아니라 클래스에 소속된 변수이기 때문에 클래스 변수 혹은 클래스 메서드라고도 부른다. new를 통해 객체를 생성하면 각 인스턴스는 서로 독립적이지만 이러한 특징으로 인해 static 키워드가 붙은 멤버들은 모든 객체가 메모리 영역을 공유한다.
- 객체를 생성하지 않고 사용 가능하다.
abstract
abstract는 class와 method에 사용되는 키워드이다.
대상 | 의미 |
Class | 추상 클래스는 직접 객체로 사용하지 못하고, 상속받아 사용할 수 있다. 추상 메소드를 포함하거나 하지 않을 수 있다. |
Method | 추상 메소드의 바디가 없이 구현된 메소드. ex) abtract void moveTo(double deltaX, double deltaY); 주로 하위 클래스에서 메소드 바디를 구현하여 사용한다. |
참고
'Java' 카테고리의 다른 글
[Java] Socket Communication (0) | 2023.11.29 |
---|---|
[Java] 추상클래스 vs 인터페이스 (2) | 2023.11.29 |
[Java] 인터페이스 (Interface) (2) | 2023.11.29 |
[Java] Inheritance(상속) (0) | 2023.11.28 |
[Java] 오버라이딩 (0) | 2023.11.28 |