Java에서는 클래스의 메서드를 객체화 없이 직접 호출할 수 없습니다. 메서드를 호출하려면 해당 메서드가 속한 클래스의 인스턴스를 먼저 생성해야 합니다. 객체화 없이 메서드를 호출하는 것은 기본적으로 Java의 객체 지향 프로그래밍 원칙에 어긋납니다.
그러나 static 키워드를 사용하여 정적(static) 메서드(static method)를 만들면 객체화 없이 메서드를 호출할 수 있습니다. 아래는 정적 메서드를 사용하여 클래스의 메서드를 객체화 없이 호출하는 예제입니다:
public class MyClass {
public static void myStaticMethod() {
System.out.println("정적 메서드가 실행됨");
}
public void myInstanceMethod() {
System.out.println("인스턴스 메서드가 실행됨");
}
}
public class Main {
public static void main(String[] args) {
// 정적 메서드 호출 (객체화 없이)
MyClass.myStaticMethod();
// 인스턴스 메서드 호출을 위해서는 클래스의 인스턴스를 생성해야 함
MyClass myObject = new MyClass();
myObject.myInstanceMethod();
}
}
위 코드에서 myStaticMethod는 정적 메서드로, 객체화 없이 MyClass.myStaticMethod()와 같이 호출할 수 있습니다. 반면에 myInstanceMethod는 인스턴스 메서드로, 호출을 위해 MyClass 클래스의 인스턴스를 먼저 생성해야 합니다.
정적 메서드는 클래스 레벨에서 공유되며, 객체와 무관하게 실행됩니다. 인스턴스 메서드는 객체와 관련이 있으므로 객체를 생성한 후에만 호출할 수 있습니다.