[Java] static 키워드

Woozard·2023년 5월 4일
5

Java

목록 보기
2/13
post-thumbnail

static 의미

static은 정적 즉 고정된 이라는 의미를 지닌다. 이러한 키워드를 통해서 static 변수와 static 메소드를 만들 수 있는데 다른 말로 클래스 변수와 클래스 메소드라고 하고 이 둘을 합쳐서 클래스 멤버라고 한다.

static 예제 및 설명


class normalTest {
    int num = 10;
}

class test {
    public static void main(String[] args) {
        normalTest n1 = new normalTest();
        System.out.println(n1.num);
    }
}

위에 코드는 normalTest 클래스를 생성하고 그에 대한 객체 n1을 생성한 다음 필드에 있는 num(10)을 출력하는 코드이다. 하지만 만약에 객체를 생성하지 않고 클래스에 있는 변수를 직접적으로 출력하려고 하면 어떻게 되는지 살펴보자.

class normalTest {
    int num = 10;
}

class test1 {
    public static void main(String[] args) {
        System.out.println(normalTest.num);
    }
}

Cannot make a static reference to the non-static field
static으로 선언되지 않은 필드나 메소드를 참조할수 없다는 에러 메세지가 나온다. 이를 해결하기 위해서 필드 앞에 static을 붙혀주면 아래와 같은 코드가 된다.

class normalTest {
    static int num = 10;
}

class test1 {
    public static void main(String[] args) {
        System.out.println(normalTest.num);
    }
}

이렇게 하면 정상적으로 10이 출력하는 것을 볼 수 있다.

profile
Hello, World!

0개의 댓글