[TIL][Java][2023-12-15] 객체 - 객체의 속성: 필드

2023. 12. 15. 21:00TIL/Java

필드

 

  • 클래스 내에서 객체의 상태를 나타내는 변수
  • 클래스 안에 선언된 변수들이 객체의 속성이다.

 

 

 

 

 

필드의 초기값과 초기화

 

  • 필드들은 기본적으로 초기값을 제공하지 않을 경우 객체가 생성될 때 자동으로 기본값으로 초기화된다.
  • 초기값을 제공하는 방법: 필드타입 필드명 = 값;

 

필드 타입별 기본값

데이터 타입 기본값
byte 0
char \u0000 (공백)
short 0
int 0
long 0L
float 0.0F
double 0.0
boolean false
배열 null
클래스 null
인터페이스 null

 

 

 

 

 

필드 사용방법

필드를 사용한다는 것은 필드의 값을 변경하거나 읽는 것을 의미한다.

  • 클래스에 필드를 정의하여 선언했다고 바로 사용할 수 있는 것은 아니다.
  • 클래스는 설계도일 뿐 실제로 필드의 데이터를 가지고 있는 것은 객체이다.
  • 따라서 객체를 생성한 후에 필드를 사용할 수 있다.

 

  • 외부 접근
    • 객체를 생성했다면 참조변수를 이용하여 외부에서 객체 내부의 필드에 접근하여 사용할 수 있다.
    • 객체 내부의 필드에 접근하는 방법은 도트 연산자를 사용한다.

 

  • 내부 접근
    • 객체 내부 메서드에서 내부 필드에 접근할 수 있다.
    • 메서드 내부에서 객체의 필드를 바로 호출해서 사용할 수 있다.

 

// 자동차 클래스

public class Car {

    String company; // 자동차 회사
    String model = "Gv80"; // 자동차 모델
    String color; // 자동차 색상
    double price; // 자동차 가격

    double speed;  // 자동차 속도 , km/h
    char gear; // 기어의 상태, P,R,N,D
    boolean lights = true; // 자동차 조명의 상태

    Tire tire = new Tire();
    Door door;
    Handle handle;

    public Car() {} // 기본 생성자

    double gasPedal(double kmh) {
        speed = kmh;
        return speed;
    }

    double brakePedal() {
        speed = 0;
        return speed;
    }

    char changeGear(char type) {
        gear = type;
        return gear;
    }

    boolean onOffLights() {
        lights = !lights;
        return lights;
    }

		void horn() {
		    System.out.println("빵빵");
		}
}

 

public class Main {
    public static void main(String[] args) {
        Car car = new Car(); // 객체 생성

        // 초기값과 기본값 확인하기

        System.out.println("car.model = " + car.model); // 초기값 "Gv80"이 출력
        System.out.println("car.color = " + car.color); // 기본값 null이 출력
        System.out.println();

        System.out.println("car.speed = " + car.speed); // 기본값 0.0이 출력
        System.out.println("car.gear = " + car.gear);  // 기본값 \u0000(공백)이 출력
        System.out.println("car.lights = " + car.lights); // 초기값 true가 출력
        System.out.println();

        System.out.println("car.tire = " + car.tire); // 초기값 인스턴스의 주소가 출력
        System.out.println("car.door = " + car.door); // 기본값 null이 출력
        System.out.println();

        
        // 필드 사용

        car.color = "blue"; // 필드 color에 "blue" 데이터를 저장
        car.speed = 100;    // 필드 speed에 100 데이터를 저장
        car.lights = false; // 필드 lights에 false 데이터를 저장

        System.out.println("car.color = " + car.color); // 저장된 "blue" 데이터가 출력
        System.out.println("car.speed = " + car.speed); // 저장된 100.0 데이터가 출력
        System.out.println("car.lights = " + car.lights); // 저장된 false 데이터가 출력

    }
}