Java

[Java] 객체 생성 | 참조형 변수 | 객체 배열

kimslab01 2024. 7. 31. 15:04

 

 

 

 

안녕하세요!

저번 포스팅에는 클래스를 설계하는 4단계를 알려드렸습니다.

오늘은 객체를 생성하는 방법과 참조형 변수를 선언하는 방법을 알려드리려 합니다.

 

 

 


 

 

✔️ 객체 생성

 

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

 

객체 생성 연산자인 'new'를 사용하면 클래스(여기서는 Car())로부터 객체를 생성할 수 있습니다.

new 연산자 뒤에는 해당 클래스의 생성자 호출 코드를 작성합니다.

여기서는 형태가 Car(); 입니다. 괄호 안에 아무것도 없는 것은 기본 생성자의 형태인데요!

new  연산자에 의해 객체가 생성되면서 기본 생성자가 호출되는 것입니다~

 

 

 

✔️ 참조형 변수

 

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

 

new 연산자를 통해서 객체가 생성되면 해당 인스턴스의 주소가 반환되기 때문에

해당 클래스의 참조형 변수를 사용하여 받아줄 수 있습니다.

 

 

 

✔️ 객체 배열

 

객체는 참조형 변수와 동일하게 취급되기 때문에 배열 또는 컬렉션에 저장하여 관리할 수 있습니다.

 

저번 포스팅에서 만들었던 Car 클래스를 다시 한 번 사용하겠습니다!

 

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("빵빵");
    }
}

 

이 클래스는 Car 클래스로, Car 클래스를 사용하기 위해서는 메인 클래스에서 호출이 필요합니다.

 

public class Main {
    public static void main(String[] args) {
        Car[] carArray = new Car[3]; // 객체 배열 생성
        Car car1 = new Car(); // 객체 생성
        car1.changeGear('P'); // 매개값 전달
        carArray[0] = car1; // 배열의 0번째 요소
        
        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

 

메인 클래스를 생성해줍니다.

 

그 다음 Car[] carArray = new Car[3]; 로 Car 객체 배열을 생성해주세요.

크기는 3이 되겠네요!

 

Car car1 = new Car(); 로 car1이라는 참조형 변수에 객체를 생성해줍니다.

 

car1.changeGear('P'); 를 통해 P라는 매개값을 changeGear에 전달해줍니다.

 

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

 

매개값인 type은 gear라는 char 타입으로 반환됩니다.

반환값은 매개값과 같은 P가 되겠네요!

 

그리고 carArray[0]번째 요소에 car1을 넣어줍니다.

 

이 과정을 car3까지 반복하면 carArray[] 가 완성됩니다.

 

향상된 for문을 이용하여 for (Car car : carArray) 로 조건을 만들어줍니다.

gear는 chageGear에서 반환한 반환값입니다.

 

결과는

car.gear = P
car.gear = N
car.gear = D

 

이렇게 나온답니다 ㅎㅎ

 

 

 

 


 

 

 

 

오늘은 이렇게 객체를 생성하고 참조형 변수에 생성된 객체를 넣는 법, 배열로 선언하는 법까지 알아보았습니다.

질문은 항상 환영입니다!! 감사합니다 😖