JAVA__07

AMJ·2023년 2월 23일
0

언어_log

목록 보기
7/57

변수의 scope : 변수들에 따른 사용 가능한 범위

public class VariableScopeExam{
    int globalScope = 10;
    static int staticVal = 7;
    //---------------------------------------------------------
    public void scopeTest(int value){
        int localScope = 20;
        System.out.println(globalScope);
        System.out.println(localScope);
        System.out.println(value);
    }
    public static void main(String[] args) {
//        System.out.println(globalScope);  //오류 static 선언 > 오류발생
//        System.out.println(localScope);   //오류 static 선언 > 오류발생
//        System.out.println(value);        //오류 static 선언 > 오류발생
//        System.out.println(staticVal);      //사용가능
        //---------------------------------------------------------
        VariableScopeExam v1 = new VariableScopeExam();
        VariableScopeExam v2 = new VariableScopeExam();
        v1.globalScope = 20;
        v2.globalScope = 30;

        System.out.println(v1.globalScope);  //20 이 출력된다.
        System.out.println(v2.globalScope);  //30이 출력된다.

        v1.staticVal = 30;
        System.out.println(v1.staticVal);  //30 이 출력된다.
        v2.staticVal = 50;
        System.out.println(v2.staticVal);  //50 이 출력된다.
        System.out.println(v1.staticVal);  //50 이 출력된다.
        System.out.println(VariableScopeExam.staticVal);//클래스변수로 사용
        
        

        //---------------------------------------------------------

    }
}

static변수는 값을 저장하는 공간이 1나 밖에 없다. 마지막 사용된 것이 저장되고 공유된다.

static변수 = 클래스 변수

golbalScope같은 변수(필드)는 인스턴스가 생성될때 생성되기때문에 인스턴스 변수라고 한다.
staticVal같은 static한 필드를 클래스 변수라고 한다.
클래스 변수는 레퍼런스.변수명 하고 사용하기 보다는 클래스명.변수명 으로 사용하는것이 더 바람직하다고 하다.

VariableScopeExam.staticVal
profile
재미있는 것들

0개의 댓글