객체배열은 클래스를 배열로 선언하는 방식으로, 객체(객체에 대한 레퍼런스)를 원소로 갖는 배열입니다.
객체는 메모리에서 single record 만 표현할 수 있습니다. multiple record 표현시 객체배열을 사용합니다.
또 객체배열을 사용하면 다양한 타입(String,Integer, any class instance)의 데이터를 객체 배열을 통해 저장할 수 있습니다.
Car [] car; // Car car[]; 도 가능!
car = new Car[n];
for (int i = 0; i < car.length; i++){
car[i] = new Car(i); // 이 코드에선 객체가 생성될때 생성자의 매개변수를 i로 지정
Car 클래스를 활용하여 3개짜리 car 객체배열을 만들고, 사용자로부터 차량의 이름과 가격을 입력받아 배열을 완성하고, 차량 리스트를 출력하는 프로그램
📃 Car.java
package MiniProject;
public class Car {
String name;
String price;
public Car(String name, String price) {
this.name = name;
this.price = price;
}
}
📃 CarArray.java
package MiniProject;
import java.util.Scanner;
public class CarArray {
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner scanner = new Scanner(System.in);
// Car 클래스 객체배열 생성. 배열의 레퍼런스 변수 : car
Car car[];
car = new Car[3];
for (int i = 0; i < car.length; i++) {
System.out.println("Enter the name of the car >>");
String name = scanner.nextLine();
System.out.println("Enter the price of the car >>");
String price = scanner.nextLine();
// 배열의 원소로 들어갈 객체 생성. 객체가 생성될때 생성자의 매개변수로, 입력받은 name과 price가 들어간다.
car[i] = new Car(name, price);
}
System.out.println("----- List of Cars -----");
for (int i = 0; i <car.length; i ++) {
System.out.println("[" + car[i].name + " , " + car[i].price + "]");
}
scanner.close();
}
}