반응형
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() 메소드가 호출되어 해당 결과를 출력하기 때문입니다.
클래스 배열은 객체지향 프로그래밍에서 중요한 개념이며, 다양한 객체를 효율적으로 관리할 수 있는 매우 유용한 도구입니다. 이를 잘 활용하면 코드의 간결성과 유지보수성을 크게 향상시킬 수 있습니다.
반응형
'개발 > Java' 카테고리의 다른 글
| Java에서 instanceof 연산자 (0) | 2023.07.18 |
|---|---|
| Java의 다형성: 캐스팅 (0) | 2023.07.18 |
| Java에서의 오버로딩, 오버라이딩, 그리고 super() (0) | 2023.07.18 |
| Java에서의 클래스 상속 (0) | 2023.07.18 |
| Java에서의 변수 유형 및 static 키워드 (0) | 2023.07.17 |