반응형

필드란 클래스에 포함된 변수를 의미하고 선언된 위치에 따라

1) 클래스 변수

2) 인스턴스 변수

3) 지역 변수

로 구분한다.

 

변수 생성 시기 소멸 시기 저장 메모리 사용 방법
클래스 변수 클래스가 메모리에 올라갈 때 프로그램이 종료될 때 메소드 영역 클래스이름.변수이름
인스턴스 변수 인스턴스가 생성될 때 인스턴스가 소멸할 때 힙 영역 인스턴스이름.변수이름
지역 변수 블록 내에서 변수의 선언문이 실행될 때 블록을 벗어날 때 스택 영역 변수이름

 

온라인 자바 컴파일러 : https://www.browxy.com/

 

 - 소스 코드

package domain;

public class HelloWorld {

    public static void main(String[] args) {
        String var = "var"; //지역 변수
        
        System.out.println("지역 변수 : " + var);
        System.out.println("클래스 변수 : " + Test.classVar + "\n"); 
        //System.out.println(Test.instanceVar); //인스턴스 생성하지 않아서 사용 불가
 
        //인스턴스 생성
        System.out.println("-- test 인스턴스 생성 --");
        Test test = new Test();
        
        System.out.println("test 클래스 변수 : " + test.classVar);
        System.out.println("test 인스턴스 변수 : " + test.instanceVar + "\n");
        
        System.out.println("-- test 클래스 변수, 인스턴스 변수 수정 --");
        test.classVar = "classVar 수정";
        test.instanceVar = "instanceVar 수정";
        
        System.out.println("test 클래스 변수 : " + test.classVar);
        System.out.println("test 인스턴스 변수 : " + test.instanceVar);
    }

}

class Test{
    static String classVar = "classVar"; //클래스 변수 > 인스턴스 생성하지 않아도 사용 가능
    String instanceVar = "instanceVar"; //인스턴스 변수 > 인스턴스 생성해야 사용 가능
}

 - 결과

지역 변수 : var
클래스 변수 : classVar

-- test 인스턴스 생성 --
test 클래스 변수 : classVar
test 인스턴스 변수 : instanceVar

-- test 클래스 변수, 인스턴스 변수 수정 --
test 클래스 변수 : classVar 수정
test 인스턴스 변수 : instanceVar 수정

 

참조 : http://tcpschool.com/java/java_member_field

반응형

+ Recent posts