카테고리 없음

[ch06 클래스] 필드

김차루 2022. 7. 20. 00:21

 

 

📆 2022년 07월 10일

⏰ 23시 00분 ~ 22시 00분

✍ 혼자 공부하는 자바(신용권) 

 

 


 

1. 필드

- 객체의 고유 데이터, 객체가 가져야 할 부품, 객체의 현재 상태 데이터를 저장하는 곳

 

ex) ' 자동차 '

[고유 데이터]  
제작회사
모델
색깔
최고 속도
String company;
String model;
String color;
int maxSpeed;
[상태 데이터]  
현재 속도
엔진 회전 수
int speed;
int rpm;
[부품]  
차체
엔진
타이어
Body body;
Engine engine;
Tire tire;

 

2. 필드 선언

- 변수의 선언 형태와 비슷.

- 클래스 중괄호{} 블록 어디서든 존재할 수 있다.

 

❗ 하지만, 생성자와 메소드 중괄호 블록 내부에서는 선언될 수 없다. 

-> 중괄호 블록 내부에 선언된 것은 모두 로컬 변수.

타입 필드 [ = 초기값] ;

 

- 타입은 필드에 저장할 데이터의 종류를 결정. 

- 기본 타입과 참조 타입 모두 가능.

- 초기값이 지정되지 않은 필드는 객체 생성 시 자동으로 기본 초기값으로 설정.

분류 타입 초기값
기본 타입 정수 타입 byte
char
short
int
long
0
\u0000 (빈 공백)
0
0
0L
실수 타입 float
double
0.0F
0.0
논리 타입 boolean false
참조 타입 배역
클래스(String 포함)
인터페이스
null
null
null

 

3. 필드 사용

필드를 사용한다는 것 = 필드값을 읽고 변경하는 작업

 

# 클래스 내부의 생성자나 메소드에서 사용 #

- 단순히 필드 이름으로 읽고 변경

 

# 클래스 외부에서 사용 #

- 우선적으로 클래스로부터 객체를 생성한 뒤 필드를 사용

 

//Car 클래스 필드 선언(Car.java)
public class Car{
	//필드
    String company = "현대자동차";
    String model = "그랜저";
    String color = "검정";
    int maxSpeed = 350;
    int Speed;
}
//외부 클래스에서 Car 필드값 읽기와 변경(CarExample.java)
public class CarExample {
	//객체 생성
    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 */