JAVA/포스팅

자바 메서드 static 제어자

짜집퍼박사(짜박) 2023. 11. 7. 00:11

자바 메서드에서 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