자바에서의 static
: 개념과 활용 방법
자바(Java)에서 static
키워드는 클래스 멤버(변수, 메서드, 블록)에 적용되어 객체가 아닌 클래스 자체에 속하게 만듭니다. 이를 통해 메모리 효율성과 코드 재사용성을 높일 수 있습니다. 이 글에서는 static
키워드의 개념, 자바에서 다루는 방법, 그리고 다양한 활용 예시를 살펴보겠습니다.
static
키워드란?
static
키워드는 클래스 수준의 멤버를 정의할 때 사용됩니다. 일반적으로 클래스 멤버는 객체마다 개별적으로 생성되지만, static
멤버는 클래스에 하나만 존재하며 모든 객체가 공유합니다.
특징:
- 클래스에 속함: 객체가 아닌 클래스 자체에 속합니다.
- 공유: 모든 객체가 같은
static
멤버를 공유합니다. - 객체 생성 없이 접근 가능: 클래스 이름을 통해 직접 접근할 수 있습니다.
static
변수
static
변수는 클래스 수준에서 하나만 생성되며, 모든 인스턴스가 공유합니다.
예제:
public class Counter {
static int count = 0; // static 변수
public Counter() {
count++;
}
public static void displayCount() {
System.out.println("현재 객체 수: " + count);
}
}
public class Main {
public static void main(String[] args) {
new Counter();
new Counter();
Counter.displayCount(); // 클래스 이름을 통해 접근
}
}
출력 결과:
static
메서드
static
메서드는 객체 없이 클래스 이름으로 호출할 수 있습니다. static
변수만 직접 접근할 수 있으며, 인스턴스 변수는 사용할 수 없습니다.
예제:
public class MathUtils {
public static int add(int a, int b) {
return a + b;
}
public static int multiply(int a, int b) {
return a * b;
}
}
public class Main {
public static void main(String[] args) {
int sum = MathUtils.add(5, 10); // static 메서드 호출
int product = MathUtils.multiply(3, 4);
System.out.println("합계: " + sum);
System.out.println("곱셈: " + product);
}
}
출력 결과:
static
블록
static
블록은 클래스가 로드될 때 한 번만 실행됩니다. 주로 static
변수의 초기화에 사용됩니다.
예제:
public class Config {
static String appName;
static int version;
static {
appName = "MyApplication";
version = 1;
System.out.println("Config 클래스가 로드되었습니다.");
}
}
public class Main {
public static void main(String[] args) {
System.out.println("앱 이름: " + Config.appName);
System.out.println("버전: " + Config.version);
}
}
출력 결과:
static
의 활용 예시
1. 싱글톤 패턴
싱글톤 패턴에서 static
키워드는 클래스의 인스턴스가 하나만 존재하도록 보장합니다.
public class Singleton {
private static Singleton instance;
private Singleton() {
// private 생성자
}
public static Singleton getInstance() {
if (instance == null) {
instance = new Singleton();
}
return instance;
}
}
2. 유틸리티 클래스
static
메서드로 구성된 클래스는 반복적으로 사용되는 기능을 제공할 수 있습니다.
public class StringUtils {
public static boolean isEmpty(String str) {
return str == null || str.isEmpty();
}
}
3. 상수 정의
static
과 final
을 함께 사용하여 상수를 정의할 수 있습니다.
public class Constants {
public static final double PI = 3.14159;
public static final String APP_NAME = "StaticApp";
}
public class Main {
public static void main(String[] args) {
System.out.println("PI: " + Constants.PI);
System.out.println("앱 이름: " + Constants.APP_NAME);
}
}
출력 결과:
마치며
static
키워드는 클래스 수준에서 멤버를 정의하고 공유하는 데 유용합니다. 유틸리티 메서드, 상수 정의, 싱글톤 패턴 등 다양한 상황에서 활용될 수 있으며, 객체 지향 프로그래밍에서 메모리 사용과 코드 재사용성을 개선하는 데 중요한 역할을 합니다. static
키워드를 이해하고 적절히 활용하여 더 효율적인 자바 코드를 작성해보세요!
'개발 부트캠프 > 백엔드' 카테고리의 다른 글
[Java] 디자인 패턴 (0) | 2025.01.04 |
---|---|
[Java] 상속, 오버로딩, 오버라이딩 (1) | 2025.01.03 |
[Java] 패키지 & 접근 제어자 (0) | 2025.01.03 |
[Java] 생성자 (0) | 2025.01.03 |
[Java] Class & Object (클래스 & 객체) (0) | 2025.01.03 |