본문 바로가기
JAVA

[JAVA] static

by kwh_coding 2024. 3. 25.

자바에서 static은 클래스 멤버를 정의할 때 사용되는 키워드이다. static 키워드가 사용된 변수나 메서드는 해당 클래스의 인스턴스와 관계없이 클래스 자체에 속한다. 즉, 클래스의 모든 인스턴스가 동일한 static 멤버를 공유한다.

1. 정적 변수 (Static Variables):

정적 변수는 클래스에 속하며, 클래스의 모든 인스턴스가 공유한다. 따라서, 객체를 생성하지 않고도 클래스 이름을 통해 접근할 수 있다.

public class Example {
    static int count = 0; // 정적 변수
    
    public static void main(String[] args) {
        Example.count++; // 정적 변수 접근
        System.out.println("Count: " + Example.count); // 출력: Count: 1
        
        Example obj1 = new Example();
        Example obj2 = new Example();
        
        obj1.count++;
        System.out.println("Count from obj1: " + obj1.count); // 출력: Count from obj1: 2
        System.out.println("Count from obj2: " + obj2.count); // 출력: Count from obj2: 2
    }
}

 

 

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

정적 메서드는 클래스 레벨에서 호출되며, 인스턴스를 생성하지 않고도 호출할 수 있다. 정적 메서드 내에서는 인스턴스 멤버에 직접 접근할 수 없다.

public class Example {
    static void display() { // 정적 메서드
        System.out.println("This is a static method.");
    }
    
    public static void main(String[] args) {
        Example.display(); // 정적 메서드 호출
    }
}

 

  • 정적 멤버는 클래스의 모든 인스턴스에 대해 동일한 값을 유지하며, 객체를 생성하지 않고도 접근할 수 있다.
  • 정적 메서드는 인스턴스 멤버에 직접 접근할 수 없다.
  • 주로 유틸리티 메서드나 상수를 정의할 때 사용된다.
  • 정적 멤버는 프로그램이 시작될 때 메모리에 할당되며, 프로그램이 종료될 때까지 유지된다.

'JAVA' 카테고리의 다른 글

[JAVA] Abstract 예제  (0) 2024.03.26
[JAVA] Abstract  (0) 2024.03.26
[JAVA] Call By Value / Call By Reference  (0) 2024.03.25
[JAVA] 오버로딩(Overloading)과 오버라이드(Override)  (0) 2024.03.25
[JAVA] Class  (0) 2024.03.25