개발/Java

Java에서의 참조변수 배열(클래스 배열)

ju_ni_ 2023. 7. 18. 11:24
반응형

Java 프로그래밍에서는 여러 개의 객체를 생성하고 관리할 필요가 있을 때 이를 효율적으로 수행할 수 있는 방법 중 하나가 클래스 배열(참조변수 배열)입니다. 이것은 배열 구조를 이용하여 여러 개의 객체를 한번에 선언하고 관리하는 방식으로, 코드의 깔끔함을 유지하고 반복 작업을 줄이는 데 큰 도움이 됩니다.

 

클래스 배열이란?

클래스 배열은 클래스 타입의 배열을 의미합니다. 배열의 각 요소는 해당 클래스 타입의 객체를 참조하게 됩니다. 예를 들어, Car 클래스의 객체 여러 개를 관리하고 싶을 때, 각각을 따로 선언하는 대신 Car 타입의 배열을 선언하고, 각 요소에 객체를 할당하여 관리할 수 있습니다.

 

클래스 배열의 선언과 사용

클래스 배열을 선언하는 방법은 기본적으로 다른 배열과 유사합니다. 클래스명과 배열명을 이용하여 배열을 선언하고, new 키워드를 통해 해당 클래스의 객체를 배열의 크기만큼 생성합니다.

클래스명[] 배열명 = new 클래스명[배열 크기];

위 방식으로 선언한 배열의 각 요소에는 실제로 객체가 생성되지 않습니다. 대신, 각 요소는 클래스 타입의 참조변수로, 생성된 객체의 주소를 저장하게 됩니다. 따라서 실제 객체는 아래와 같이 각 요소마다 따로 생성하여 할당해야 합니다.

배열명[인덱스] = new 클래스명(생성자 인수);

또한, 배열 선언과 동시에 각 요소에 객체를 할당하는 방법도 있습니다.

클래스명[] 배열명 = {new 클래스명(생성자 인수1), new 클래스명(생성자 인수2), ...};

클래스 배열의 각 요소에는 클래스의 인스턴스(객체)가 할당되어 있으므로, 배열을 통해 객체의 필드와 메소드에 접근할 수 있습니다.

배열명[인덱스].필드명;  // 객체의 필드에 접근
배열명[인덱스].메소드명(인수);  // 객체의 메소드를 호출

 

클래스 배열의 활용

아래 예시에서는 자동차를 나타내는 Car 클래스를 생성하고, 이를 배열에 담아 활용하는 코드를 작성해보겠습니다.

class Car {
    String color;

    Car(String color) {  // 생성자
        this.color = color;
    }

    void printColor() {  // 색상을 출력하는 메소드
        System.out.println("차량 색상: " + this.color);
    }
}

public class Main {
    public static void main(String[] args) {
        Car[] carArr = new Car[3];  // Car 타입의 배열 선언

        // 배열의 각 요소에 객체 할당
        carArr[0] = new Car("Red");
        carArr[1] = new Car("Blue");
        carArr[2] = new Car("Green");

        // 배열을 통해 각 객체의 메소드 호출
        for (Car car : carArr) {
            car.printColor();
        }
    }
}

위 예시 코드를 실행하면, 각 차량의 색상이 순서대로 출력됩니다. , 결과는 다음과 같습니다:

차량 색상: Red
차량 색상: Blue
차량 색상: Green

 

위와 같이, 각 차량의 색상을 나타내는 color 필드 값이 순서대로 출력되며, 이는 클래스 배열에 할당된 각 Car 객체의 printColor() 메소드가 호출되어 해당 결과를 출력하기 때문입니다.

 

 

클래스 배열은 객체지향 프로그래밍에서 중요한 개념이며, 다양한 객체를 효율적으로 관리할 수 있는 매우 유용한 도구입니다. 이를 잘 활용하면 코드의 간결성과 유지보수성을 크게 향상시킬 수 있습니다.

반응형