자바 static이란

THINKTO·2023년 7월 12일

오늘은 자바 static에 대해 알아보겠습니다.

자바에서 static은 여러 컨텍스트에서 사용되는 키워드로, 주로 클래스 멤버 또는 메서드에 적용됩니다. static 키워드는 특정한 의미와 동작을 나타냅니다.

주요 사용 사례와 설명은 다음과 같습니다.

1. Static 변수 (정적 변수):

  • static 변수는 클래스 레벨의 변수로, 클래스의 모든 인스턴스에서 공유됩니다. 인스턴스 변수가 객체마다 별도로 유지되는 반면, static 변수는 클래스에 대한 단 하나의 변수가 존재하며 모든 인스턴스에서 공유합니다.
public class MyClass {
    static int count = 0; // 정적 변수
}

2. Static 메서드 (정적 메서드):

  • static 메서드는 클래스 수준에서 정의되며, 객체의 생성 없이 클래스 이름으로 호출할 수 있습니다. 주로 유틸리티 메서드 또는 공통 기능을 제공하는 데 사용됩니다.
public class MathUtil {
    public static int add(int a, int b) {
        return a + b;
    }
}

3. Static 블록:

  • static 블록은 클래스가 로딩될 때 실행되는 블록입니다. 클래스의 초기화 작업에 사용됩니다.
public class MyClass {
    static {
        // 클래스 초기화 작업
    }
}

4. Static 클래스:

  • 중첩 클래스를 static으로 선언하면, 해당 중첩 클래스는 외부 클래스의 인스턴스 없이 생성할 수 있습니다. 일반적으로 중첩 클래스를 static으로 선언할 때 사용됩니다.
public class OuterClass {
    static class NestedStaticClass {
        // 중첩 클래스의 정적 멤버
    }
}

5. Static 임포트:

  • static 멤버를 직접 참조하기 위해 static 임포트를 사용할 수 있습니다. 이를 통해 클래스 이름을 생략하고 static 멤버에 직접 접근할 수 있습니다.
import static java.lang.Math.PI;

public class Circle {
    double calculateArea(double radius) {
        return PI * radius * radius;
    }
}

static 멤버는 클래스와 관련이 있으며, 인스턴스에 종속하지 않습니다. 따라서 객체 생성 없이 접근할 수 있으며, 여러 인스턴스가 공유할 수 있습니다. 이를 통해 유틸리티 메서드, 상수, 공통 데이터 등을 구현할 수 있습니다.

0개의 댓글