자바 메서드에서 static 제어자는 해당 메서드가 객체의 인스턴스에 속하지 않고 클래스 자체에 속함을 나타내며, 클래스 수준 메서드로 동작하도록 지정합니다. static 메서드는 객체 생성 없이 호출할 수 있으며 클래스의 모든 인스턴스에서 동일한 메서드를 공유합니다.
1. static 메서드 정의
static 메서드는 메서드 선언 시 static 키워드를 사용하여 정의됩니다. 메서드 이름 앞에 static 키워드가 붙습니다.
public class MyClass {
public static void staticMethod() {
// 메서드 구현
}
}
2. 객체 인스턴스와 관련성 없음
static 메서드는 클래스 자체에 속하며, 객체의 인스턴스와 관련이 없습니다. 따라서 static 메서드는 객체를 생성하지 않고 호출할 수 있습니다.
MyClass.staticMethod(); // 객체를 생성하지 않고 호출 가능
3. 클래스 수준 메서드
static 메서드는 클래스 수준 메서드로 간주됩니다. 클래스 내부의 인스턴스 변수나 메서드에 직접 접근할 수 없으며, 메서드 내에서 this 키워드를 사용하여 현재 객체를 참조할 수 없습니다.
public class MyClass {
private int value;
public static void staticMethod() {
// this.value = 10; // 오류: "this"를 사용하여 인스턴스 변수에 접근할 수 없음
}
}
4. 모든 객체에서 공유
static 메서드는 클래스의 모든 인스턴스에서 동일한 메서드를 공유합니다. 한 클래스의 모든 객체가 동일한 static 메서드를 호출할 때, 이 메서드는 동일한 동작을 수행합니다.
5. 유틸리티 메서드와 팩토리 메서드
주로 유틸리티 함수 또는 팩토리 메서드를 구현하는 데 사용됩니다. 예를 들어, Math 클래스의 메서드들은 모두 static 메서드입니다.
double result = Math.sqrt(25); // Math 클래스의 "sqrt" 메서드 호출
static 메서드는 객체 지향 프로그래밍에서 클래스 수준의 기능을 제공하며, 객체 인스턴스와 관련된 작업이 필요하지 않은 경우에 유용합니다. 이러한 메서드는 클래스 자체와 관련된 작업을 수행하는 데 사용됩니다.
With ChatGPT
'JAVA > 포스팅' 카테고리의 다른 글
자바 메서드 synchronized 제어자 (0) | 2023.11.07 |
---|---|
자바 메서드 final 제어자 (0) | 2023.11.07 |
자바 메서드 접근 제어자 (Access Modifier) (0) | 2023.11.07 |
자바 메서드 return문 (0) | 2023.11.07 |
자바 메서드의 호출 (0) | 2023.11.06 |