반응형

필드란 클래스에 포함된 변수를 의미하고 선언된 위치에 따라
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 수정
반응형
'개발 > Java' 카테고리의 다른 글
| [Java] 자바 맵 HashMap 사용법 (0) | 2022.02.10 |
|---|---|
| [Java] 자바 배열 Array / ArrayList 차이점 및 사용법 (0) | 2022.02.09 |
| [Java] 자바 다형성 - 오버로딩(Overloading) / 오버라이딩(Overriding) (0) | 2022.02.04 |
| JAVA(JDK, JRE) 모든 버전 다운로드 (0) | 2021.10.12 |