필드는 객체의 데이터를 저장하는 역할을 한다. 객체의 데이터에는 고유 데이터, 현재 상태 데이터, 부품 데이터가 있다. 자동차 객체를 예로 들면 모델, 색깔, 최고 속도는 고유 데이터에 해당하고, 현재 속도, 엔진회전 수는 상태 데이터에 해당한다. 그리고 차체, 엔진, 타이어는 부품에 해당한다.
필드 선언
필드를 선언하는 방법은 변수 선언과 동일하다. 단, 반드시 클래스 블록에서 선언되어야만 필드 선언이 된다.
타입 필드명 [ = 초기값];
필드와 (로컬) 변수의 차이점
| 구분 | 필드 | (로컬)변수 |
| 선언 위치 | 클래스 선언 블록 | 생성자, 메서드 선언 블록 |
| 존재 위치 | 객체 내부에 존재 | 생성자, 메서드 호출 시에만 존재 |
| 사용 위치 | 객체 내외부 어디든 사용 | 새성자, 메서드 블록 내부에서만 사용 |
타입은 필드에 저장할 데이터의 종류를 결정한다. 기본 타입과 참조 타입 모두 가능하다. 필드명은 첫 문자를 소문자로 하되, 캐멀 스타일로 작성하는 것이 관례이다.
public class Car {
String model = "그랜저";
int speed = 300;
boolean start = true;
Tire tire = new Tire();
}
초기값을 제공하지 않을 경우 필드는 객체 생성 시 자동으로 기본값으로 초기화된다.
필드 사용
필드를 사용한다는 것은 필드값을 읽고 변경하는 것을 말한다. 클래스에서 필드를 선언했다고 해서 바로 사용할 수 있는 것은 아니다. 필드는 객체의 데이터이므로 객체가 존재하지 않으면 필드도 존재하지 않는다. 클래스로부터 객체가 생성된 후에 필드를 사용할 수 있다. 필드는 객체 내부의 생성자와 메서드 내부에서 사용할 수 있고, 객체 외부에서도 접근해서 사용할 수 있다. 객체 내부에서는 단순히 필드명을 읽고 변경할 수 있지만 외부 객체에서는 참조 변수와 도트(.)연산자를 이용해서 필드를 읽고 변경해야 한다.
public class Car {
String model = "그랜저";
}
public class CarExample {
public static void main(String[] args) {
Car myCar = new Car();
System.out.println("모델명: " + myCar.model);
}
}
'Language > JAVA' 카테고리의 다른 글
| [JAVA] 메서드 (0) | 2024.09.04 |
|---|---|
| [JAVA] 생성자 (2) | 2024.09.04 |
| [JAVA] 클래스 (0) | 2024.09.04 |
| [JAVA] 객체지향 프로그래밍 (3) | 2024.09.04 |
| [JAVA] 다차원 배열 (0) | 2024.09.03 |