[Java] 클래스 - 필드

chael_lo·2021년 5월 12일
0

Java

목록 보기
11/52

클래스의 필드(field)란 클래스에 포함된 변수(variable)를 의미힌다.

필드 비교

클래스 변수(static variable)

클래스 영역에 위치한 변수 중에서 static 키워드를 가지는 변수.
클래스가 메모리에 올라갈 때 생성되며, 프로그램이 종료될 때 소멸된다.
즉 new를 통해 메모리 할당을 받지 않아도 사용 가능하다.
로딩되는 순간 메모리 할당이 이루어지며[클래스이름.객체]를 통해 접근한다.
모든 인스턴스가 같은 값을 공유하며 값이 수정되면 클래스 변수에 반영이 된다.

인스턴스 변수(instance variable)

클래스 영역에 위치한 변수 중 static 키워드를 가지지 않는 변수.
각 인스턴스마다 고유한 값을 가지고 있다.
인스턴스가 생성될 때 생성되며 힙 영역에 저장된다. 인스턴스가 소멸될 때 소멸된다.
인스턴스 메소드는 new를 통해서만 접근이 가능하고 클래스 메소드에서는 접근이 불가능하다.

지역 변수(local variable)

메소드나 생성자, 초기화 블록 내에 위치한 변수.
블록 내에서 변수의 선언문이 실행될 때 생성되며 스택 영역에 저장된다. 블록을 벗어날 때 소멸된다.

class FieldTest {
	 static int classVariable = 10; // 클래스 변수 선언
	 int instanceVariable = 20;     // 인스턴스 변수 선언
}
public class Test {
	
	public static void main(String[] args) {
		//인스턴스 생성 전에 클래스 변수 호출 가능
		System.out.println(FieldTest.classVariable);
		
		FieldTest ft = new FieldTest();; // 인스턴스 생성
		//인스턴스 변수 호출
		System.out.println(ft.instanceVariable);
	}

}

profile
천천히 꾸준히

0개의 댓글