Java

[Java] 필드

콩스프 2022. 11. 23. 09:08
필드 (Field) : 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳

 

EX) 자동차 객체

       - 고유 데이터 : 제작회사, 모델, 색깔, 최고 속도
       - 상태 데이터 : 현재 속도, 엔진 회전수
       - 부품 : 차체, 엔진, 타이어

 

 

필드 선언

  • 클래스 중괄호 { } 블록 어디서든 존재할 수 있음
  • 생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언이 가능
  • 생성자와 메소드 중괄호 블록 내부에는 선언될 수 없음
    • 생성자와 메소드 중괄호 블록 내부에 선언된 것 ➡ 로컬변수
  • 필드선언 : 변수의 선언과 비슷 (클래스 멤버 변수라고 부르기도 함)
타입 필드 [ = 초기값];

 

  • 타입 : 필드에 저장할 데이터의 종류
  • 기본 타입 : byte, short, int, long, float, double, boolean
  • 참조 타입 : 배열, 클래스, 인터페이스
  • 기본타입과 참조타입 모두 올 수 있음
  • 필드의 초기값 : 필드 선언시 주어질 수도 있고, 생략될 수도 있음
String company = "H자동차";
String model = "그랜저";
int maxSpeed = 300;
int productionYear;
int currentSpeed;
boolean engineStart;

 

 

필드 초기값

  • 초기값이 지정되지 않은 필드들은 객체 생성시 자동으로 기본 초기값으로 설정
  • 필드의 타입에 따라 초기값이 다름
분류 데이터 타입 초기값
기본 타입 정수 타입 byte
char
short
int
long
0
\u0000 (빈공백)
0
0
0L
실수 타입 float
double
0.0F
0.0
논리 타입 boolean false
참조 타입 배열
클래스 (String 포함)
인터페이스
null
null
null

 

 

필드 사용

  • 필드를 사용한다는 것 : 필드 값을 읽고, 변경하는 작업
  • 클래스 내부의 생성자나 메소드에서 사용할 경우 : 단순히 필드 이름으로 읽고 변경하면 됨
  • 클래스 외부에서 사용할 경우 : 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야 함
    💡 필드는 객체에 소속된 데이터이기 때문에 객체가 존재하지 않으면 필드도 존재하지 않음
  • 도트 ( . ) 연산자 : 객체 접근 연산자 - 객체가 가지고 있는 필드나, 메소드를 사용하고자 할 때 사용됨

 

필드 사용 EX)

  • Car 클래스의 speed 필드생성자와 메소드에서 변경이 가능
  • 사용법은 변수와 동일
    • 변수 : 자신이 선언된 생성자 또는 메소드 블록 내부에서만 사용할 수 있음
    • 필드 : 생성자와 모든 메소드에서 사용이 가능
  • 외부 Person 클래스에서 Car 클래스의 speed 필드값을 사용하려면 Car 객체를 우선 생성해야 함
Car myCar = new Car();
  • myCar 변수가 Car 객체를 참조하게 되면 도트( . ) 연산자를 사용해서 speed 필드에 접근할 수 있음
myCar.speed = 60;