필드 (Field)

Zino·2022년 12월 17일

Java

목록 보기
14/26
post-thumbnail

🔍 필드 (Field)

  • 객체의 속성을 작성하는 클래스 내부의 영역

🪴 멤버 변수 (== 필드)
🌱 1. 인스턴스 변수

  • 필드에 작성된 일반 변수
  • new 연산자에 의해서 객체(인스턴스)가 생성될 때
    메모리가 할당 된다고 하여 인스턴스 변수라 함.
  • heap 영역에 메모리가 할당. (heap -> 동적 매모리 영역)
  • 객체가 생성될 때 마다 생성
  • 객체가 참조하는 변수가 없을 경우 사라짐.

🌱2. 클래스 변수 (== static 변수)

  • 필드에 static 예약어와 함께 작성된 변수
  • static 영역에 메모리가 할당되어 프로그램 종료 시 까지 유지됨
  • 프로그램 실행 시 1회만 생성되는 변수
    ⇒ static으로 선언된 멤버변수로, 프로그램 실행 시 정적메모리 영역에 자동할당 되며,
    프로그램 종료시 자동 소멸

🪴 그 외 지역변수

  • 메소드 또는 제어문 안에서 선언된 변수
  • stack 메모리 영역에 할당 되었다가.
    메소드 종료 시 소멸됨.

💬 필드 표현식

 [접근제한자] [예약어] class 클래스명 {

	    [접근제한자] [예약어] 자료형 변수명 [= 초기값];
    }

📖 필드 예시

public class Academy { 
	public int temp1;
	protected int temp2;
	int temp3; 		//접근제한자 생략 시 (default)
	private int temp4; 	//캡슐화 원칙으로 private 사용
}

✔️ 필드 접근제한자

💬 필드 예약어

⚡️ 1) static

  • 같은 타입의 여러 객체가 공유할 목적의 필드에 사용하며,
    프로그램 start시에 정적 메모리(static) 영역에 자동 할당되는 멤버에 적용

💬 static 표현식

public class Academy { 
	private static int temp1; 	
}

⚡️ 2) final

  • 하나의 값만 계속 저장해야 하는 변수에 사용하는 예약어 == 상수

💬 final 표현식

public class Academy { 
	private final int TEMP1 = 100; // final 키워드가 붙은 필드명은 
					  // 모두 대문자로 표기
	private int temp4;
}

✔️ 필드 (Field) – 초기화 순서

profile
Willingness to be a fool!

0개의 댓글