그 외 ... (정리해야함)/질문과 답변

메서드와 변수에 사용되는 static 키워드의 역할은 무엇인가?

깡냉쓰 2019. 5. 2. 17:36
728x90
반응형

정적(static)메서드와 변수는 클래스 내부에 정의하지만 인스턴스에는 속하지 않는다. 대개 클래스 이름을 통해 정적 메서드와 정적 변수에 접근한다.

※ 정적 메서드와 변수에 접근할 때는 클래스 이름을 이용하는 것을 추천
=> 인스턴스를 이용해서 접근하면 혼란을 야기할 수 있기 때문이다.

인스턴스나 클래스 자신을 참조해서 클래스 멤버 변수를 관리할 수 있음을 보여주는 예

public class ExampleClass {
    public static int EXAMPLE_VALUE = 6;
}


@Test
public void staticVariableAccess(){
    assertEquals(ExampleClass.EXAMPLE_VALUE, 6);

    ExampleClass c1 = new ExampleClass();
    ExampleClass c2 = new ExampleClass();
    c2.EXAMPLE_VALUE = 22; // 가능하지만 추천x
    assertEquals(ExampleClass.EXAMPLE_VALUE, 22);
    assertEquals(c2.EXAMPLE_VALUE, 22);
}
728x90
반응형