데이터 과학

static 변수 본문

AP/AP Computer Science A

static 변수

티에스윤 2024. 5. 29. 10:53

static은 dynamic과는 다른 의미로 정의가 됩니다. 

 

객체를 생성할때 사용하는 메소드들은 기본적으로 dynamic으로 정의가 되는데, static은 고정된다는 의미가 있습니다. 

static 메소드는 객체를 생성하지 않기에 static으로 정의된 main 메소드의 경우 객체가 만들어지지 않습니다.

 

아래 예제는 static으로 정의된 변수입니다. 

 

프로그램을 실행하면 결과는 1과 2가 나옵니다. 

c1과 c2라는 객체를 만들었고 출력을 하면 모두 다함께 1이 출력되어야 하는데 결과는 누적된 값이 나옵니다. 

 

그 이유는 count가 static으로 정의되어서 그렇습니다. 

static은 초기화가 안되기에 누적된 결과가 나타냅니다. 

 

 

class Counter  {
    static int count = 0;
    Counter() {
        count++;  // count는 더이상 객체변수가 아니므로 this를 제거하는 것이 좋다.
        System.out.println(count);  // this 제거
    }
}

public class Sample {
    public static void main(String[] args) {
        Counter c1 = new Counter();
        Counter c2 = new Counter();
    }
}

 

 

참고로 아래는 static 메소드에 대한 설명입니다. 

 

https://tsyoon.tistory.com/138

 

static 메소드

Java에서 static 메소드는 클래스 레벨에서 정의되는 메소드입니다. 즉, 해당 클래스의 인스턴스에 의존하지 않고 호출이 가능합니다. static 메소드는 클래스의 정적 멤버(static member)로 간주되며,

tsyoon.tistory.com

 

'AP > AP Computer Science A' 카테고리의 다른 글

상속 예제  (0) 2024.05.31
this와 toString() 메소드  (0) 2024.05.29
ArrayList 예제  (0) 2024.01.12
생성자 선언 관련 문제  (1) 2024.01.11
Blue J 설치  (0) 2024.01.07