[TIL][Java][2023-12-13] 객체 - 객체 생성과 참조형 변수

2023. 12. 13. 18:35TIL/Java

객체 생성

 

new Car(); // Car클래스 객체 생성

 

  • 객체 생성 연산자인 'new'를 사용하면 클래스로부터 객체를 생성할 수 있다.
  • new 연산자 뒤에는 해당 클래스의 생성자 호출 코드를 작성한다.
  • 형태가 기본 생성자의 형태와 같으면 new 연산자에 의해 객체가 생성되면서 기본 생성자가 호출된다.

 

 

 

 

참조형 변수

 

Car car1 = new Car(); // Car클래스의 객체인 car1 인스턴스 생성
Car car2 = new Car(); // Car클래스의 객체인 car2 인스턴스 생성

 

  • new 연산자를 통해 객체가 생성되면 해당 인스턴스의 주소가 반환되기 때문에 해당 클래스의 참조형 변수를 사용하여 받아줄 수 있다.
  • 객체를 가리키는 변수를 말한다.
  • 실제 데이터가 저장된 메모리 위치를 가리킨다.
  • 이런 변수들은 해당 객체의 메서드를 호출하거나 객체의 상태를 변경하는 등의 작업을 수행할 수 있다.

 

 

 

 

객체 배열

 

  • 동일한 클래스의 여러 객체를 배열 형태로 저장하는 것이다.
  • 객체들의 모음을 하나의 배열로 관리할 수 있다.
  • 객체는 참조형 변수와 동일하게 취급되기 때문에 배열 또는 컬렉션에도 저장하여 관리할 수 있다.
// 자동차 클래스

public class Car {
    String company; // 자동차 회사
    String model; // 자동차 모델
    String color; // 자동차 색상
    double price; // 자동차 가격
    double speed;  // 자동차 속도 , km/h
    char gear; // 기어의 상태, P,R,N,D
    boolean lights; // 자동차 조명의 상태

    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[] carArray = new Car[3];
        Car car1 = new Car();
        car1.changeGear('P');
        carArray[0] = car1;
        
        Car car2 = new Car();
        car2.changeGear('N');
        carArray[1] = car2;
        
        Car car3 = new Car();
        car3.changeGear('D');
        carArray[2] = car3;

        for (Car car : carArray) {
            System.out.println("car.gear = " + car.gear);
        }
    }
}

// 출력
//car.gear = P
//car.gear = N
//car.gear = D