필드 (Field)

김민석·2023년 8월 13일
0

객체의 속성 (멤버 변수)

작성법

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

ex)

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

접근제한자

  • public : 어디서든 접근 가능
  • protect : 같은 패키지 + 다른 패키지 중 상속 관계 클래스에서만 접근 가능
  • (default) : 같은 패키지 내부에서만 접근 가능
  • private : 현재 클래스(정확히는 현재 객체) 내부에서만 접근 가능

필드 예약어

  • static
    같은 타입의 여러 객체가 공유할 목적의 필드에 사용하며,
    프로그램 start시에 정적 메모리(static) 영역에 자동 할당되는 멤버에 적용
public class Academy { 
	private static int temp1; 
}
  • final
    하나의 값만 계속 저장해야 하는 변수에 사용하는 예약어
    final 키워드가 붙은 필드명은 모두 대문자로 표기
public class Academy { 
	private final int TEMP1 = 100;
	private int temp4;
}

클래스 초기화 블록

  • 인스턴스 블록 : { }
    인스턴스 변수를 초기화 시키는 블럭으로 객체 생성시 마다 초기화
  • static(클래스) 블럭 : static{ }
    static 필드를 초기화 시키는 블럭으로 프로그램 시작 시
    한 번만 초기화
    인스턴스 변수는 여기서 초기화 불가능
[접근제한자] [예약어] class 클래스명 {
	[접근제한자] static 자료형 필드1 = 10;
	[접근제한자] 자료형 필드2 = 20;
	static{ 필드1 = 30; }
	{ 필드2 = 40; }
}

0개의 댓글