- 객체의 고유 데이터, 객체가 가져야 할 부품,
객체의 현재 상태 데이터를 저장하는 곳
- 클래스의 멤버 변수라고 부르기도 함
[표현법] 타입 필드 [ = 초기값];
- 클래스 중괄호 {} 블록 어디서든 존재가능
- 생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언이 가능
하지만 생성자와 메소드 중괄호 {} 블록 내부에는 선언 될 수 없음 → 여기서 선언 된 것은 모두 로컬 변수가 됨
// Person 클래스
void method() {
// Car 클래스의 spedd 필드 값을 사용하려면 Car 객체를 우선 생성해야함
//Car 객체 생성
Car myCar = new Car();
//필드 사용
myCar.speed = 60; //myCar.speed 60으로 변경
}
// Car 클래스
// 필드
int speed;
// 생성자
Car() {
speed = 0;
}
// 메소드
void method(···) {
speed = 10;
}
- 필드를 사용한다는 것은 필드값을 읽고 변경하는 작업을 말함
- 클래스 내부의 생성자나 메소드에서 사용할 경우
단순히 필드 이름으로 읽고 변경하면 되지만,
클래스 외부에서 사용할 경우
우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야함
→ 필드가 객체에 소속된 데이터이므로 객체가 존재하지 않으면
필드도 존재하지 않기 때문
👩💻Car 클래스 필드 선언 및 Car 필드값 읽기와 변경
class Car{
//필드
String company = "현대자동차";
String model = "그랜져";
String color = "검정";
int maxSpeed = 350;
int speed;
}
public class CarExample {
public static void main(String[] args) {
//객체 생성
Car myCar = new Car();
//필드값 읽기
System.out.println("제작회사: " + myCar.company);
System.out.println("모델명: " + myCar.model);
System.out.println("색깔: " + myCar.color);
System.out.println("최고속도: " + myCar.maxSpeed);
System.out.println("현재속도: " + myCar.speed);
//필드값 변경
myCar.speed = 60;
System.out.println("수정된 속도: " + myCar.speed);
}
}
💻결과
제작회사: 현대자동차
모델명: 그랜져
색깔: 검정
최고속도: 350
현재속도: 0
수정된 속도: 60