▶오늘의 주제
필드는 객체의 고유 데이터, 부품 객체, 상태 정보를 저장하는 곳입니다. 필드를 선언하고 생성한 뒤 이를 읽고 변경하는 방법을 알아보겠습니다.
▶필드 선언
필드 선언은 클래스 중괄호 {} 블록 어디서든 존재할 수 있습니다. 생선자 선언과 메소드 선언의 앞과 뒤 어떤 곳에서도 필드 선언이 가능합니다. 하지만 생선자와 메소드 중괄호 {}블록 내부에는 선언 될 수 없습니다. 생성자와 메소드 중괄호 블록 내부에 선언된 것은 모두 로컬 변수가 됩니다.
타입 필드 [ = 초기값];
타입은 필드에 저장할 데이터의 종류를 결정합니다. 타입에는 기본타입 (byte, short, int, long, float, double, boolean)과 참조타입 (배열, 열거, 터페이스)이 모두 올 수 있습니다. 초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정됩니다.
▶필드 사용
필드를 사용한다는 것은 필드값을 읽고 변경하는 작업을 말합니다. 클래스 내부의 생성자나 메소드에서 사용할 경우 단순히 필드 이름으로 읽고 변경하면 되지만, 클래스 외부에서 사용할 경우 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용해야 합니다.
Car myCar = new Car(); // Car 객체 생성
myCar.speed = 60; //도트 연산자를 사용해서 speed 필드에 접근할 수 있습니다. Car 객체의 speed 필드값을 60으로 변경하고 있습니다.
package six_two;
public class Car {
//필드
String company = "현대자동차";
String model = "그랜저";
String color = "검정";
int maxSpeed = 350;
int speed;
}
package six_two;
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);
}
}
package six_two;
public class FieldInitValue {
//필드
byte byteField;
short shortField;
int intField;
long longField;
boolean booleanField;
char charField;
float floatField;
double doubleField;
int[] arrField;
String referenceField;
}
package six_two;
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);
}
}
'Java' 카테고리의 다른 글
Java - 전역변수와 지역변수 (0) | 2022.11.24 |
---|---|
Java - 생성자 (0) | 2022.11.24 |
Java - 객체 지향 프로그래밍 (0) | 2022.11.23 |
Java - 문제풀이 (0) | 2022.11.18 |
Java - 열거 타입 (0) | 2022.11.12 |