728x90
반응형
SMALL
필드(field)란?
객체의 고유 데이터, 객체가 가져 할 부품, 객체의 현재 상태 데이터를 저장하는 곳
ex : 자동차 객체
고유 데이터 : 제작회사, 모델, 색깔, 최고 속도
상태 데이터 : 현재 속도, 엔진 회전 수
부품 : 차체, 엔진, 타이어
→ 이 정보들은 필드로 선언되어야 함
<필드 선언>
- 중괄호{} 블록 어디서든 존재 가능(생성자 선언과 메소드 선언의 앞과 뒤 어떤 곳이든 가능)
- 생성자와 메소드 중괄호{}
- 블록 내부에는 선언 불가능
필드 선언 방법
type 필드이름 [ = 초기값 ];
//예시
String company = "기아자동차";
String model = "쏘렌토";
int maxSpeed = 300;
int productionYear;
int currentSpeed;
boolean engineStart;
초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정
<필드 사용>
필드를 사용한다는 것 = 필드값을 읽고 변경하는 작업을 한다는 것
- 클래스 내부의 생성자나 메소드에서 사용할 경우 : 필드 이름을 읽고 변경
- 클래스 외부에서 사용할 경우 : 클래스로부터 객체를 생성한 뒤 필드 사용
[실습 1]
//Car 클래스 필드 선언
public class Car {
//필드
String company = "현대자동차";
String model = "그랜저";
String color = "검정";
int maxSpeed = 350;
int speed;
}
//외부 클래스에서 Car 필드값 읽기와 변경
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);
}
}
결과 :
*필드 선언 시 초기값을 주지 않았음에도 0이 저장되어 있는 것을 확인
[실습 2]여러 가지 타입의 필드 초기값 확인
//FieldInitValue클래스 필드 선언
public class FieldInitValue {
//필드
byte byteField;
short shortField;
int intField;
long longField;
boolean booleanField;
char charField;
float floatField;
double doubleField;
int[] arrField;
String referenceField;
}
//각 필드의 초기값 확인
public class FieldInitValueExample {
public static void main(String[] args) {
FieldInitValue fiv = new FieldInitValue();
System.out.println("byteField: " + fiv.byteField);
System.out.println("shortField: " + fiv.shortField);
System.out.println("intField: " + fiv.intField);
System.out.println("longField: " + fiv.longField);
System.out.println("booleanField: " + fiv.booleanField);
System.out.println("charField: " + fiv.charField);
System.out.println("floatField: " + fiv.floatField);
System.out.println("doubleField: " + fiv.doubleField);
System.out.println("arrField: " + fiv.arrField);
System.out.println("referenceField: " + fiv.referenceField);
}
}
결과 :
728x90
반응형
LIST
'프로그래밍언어 > Java' 카테고리의 다른 글
06-4 메소드 (0) | 2021.02.15 |
---|---|
06-3. 생성자 (0) | 2021.02.08 |
06-1. 객체 지향 프로그래밍 (1) | 2021.01.25 |
05-3. 열거 타입 (0) | 2021.01.24 |
05-2. 배열 (0) | 2021.01.19 |