Java에서 클래스(Class)/정적(Static) 메서드는 특정 객체 인스턴스가 아닌 클래스 자체에 호출되는 메서드를 의미합니다. static 키워드를 사용하면 해당 구현이 모든 클래스 인스턴스에서 동일하게 유지됩니다.
클래스/정적 메서드는 객체 생성(instantiation) 없이 호출할 수 있다는 것이 가장 큰 특징입니다. 따라서 정적 메서드 내부에서는 같은 클래스의 다른 정적 멤버(static members)만 직접 접근할 수 있습니다.
Java에는 이미 많은 내장 정적 메서드가 존재하는데, 대표적으로 Math.random(), Math.sqrt(), System.gc() 등이 있습니다.
정적 메서드 선언 문법
public class className {
modifier static dataType methodName(inputParameters) {
// 실행할 코드 블록
}
}예제 코드
public class ClassMethodTest {
public static int findMinimum(int num1, int num2) {
int minimum = num2;
if (num1 < num2)
minimum = num1;
return minimum;
}
public static void main(String args[]) {
int min = ClassMethodTest.findMinimum(3, 5); // 인스턴스 생성 없이 클래스 이름으로 직접 호출
System.out.println("ClassMethodTest.findMinimum(3, 5) is: " + min);
}
}실행 결과
ClassMethodTest.findMinimum(3, 5) is : 3
핵심 정리
- 정적 메서드는 클래스 이름으로 직접 호출하므로 객체 생성이 필요 없습니다.
static으로 선언된 멤버는 모든 인스턴스가 공유하며 프로그램 실행 시 메모리에 로드됩니다.- 정적 메서드 안에서는 비정적(non-static) 필드나 메서드에 직접 접근할 수 없습니다.
- 유틸리티 성격의 기능(수학 계산, 문자열 처리 등)을 만들 때 정적 메서드를 활용하면 효율적입니다.