- 정적 맴버는 클래스에 고정된 맴버로 객체를 생성하지 않고 사용할 수 있는 필드와 메소드
- 정적 맴버는 인스턴스에 소속된 맴버가 아니라 클래스에 소속된 맴버이기 때문에 클래스 맴버라고도 함
정적 맴버 선언
- 필드와 메소드 선언 시 static 키워드 붙여서 사용
- 필드를 선언할 떄 객체들이 공유할 목적의 데이터라면 정적 필드로 사용
- 메소드를 선언할 때 메소드 내부에서 정적 맴버를 사용하거나 필드를 사용하지 않는다면 정적 메소드로 선언
public final class Math {
public static int max(int a, int b) {
return (a >= b) ? a : b;
}
public static int min(int a, int b) {
return (a <= b) ? a : b;
}
...
}
정적 맴버 사용
- 정적 맴버는 객체를 생성하지 않고 클래스 이름과 도트(.)연산자로 접근
- 정적 메소드에서 객체의 필드나 메소드에 접근할 수 없고 this 키워드를 사용할 수 없음
- 정적 필드와 정적 메소드는 객체 참조 변수로도 접근이 가능하지만 정적 요소는 클래스 이름으로 접근하는 것이 Good
int max = 0;
int min = 0;
max = Math.max(10, 20);
min = Math.min(10, 20);