TIL 32 | [Java] 객체배열

Yoonsik·2022년 8월 5일
0

JAVA

목록 보기
6/11

객체배열이란?

객체배열은 클래스를 배열로 선언하는 방식으로, 객체(객체에 대한 레퍼런스)를 원소로 갖는 배열입니다.

객체배열을 사용하는 이유

객체는 메모리에서 single record 만 표현할 수 있습니다. multiple record 표현시 객체배열을 사용합니다.

또 객체배열을 사용하면 다양한 타입(String,Integer, any class instance)의 데이터를 객체 배열을 통해 저장할 수 있습니다.

객체 배열의 선언과 생성

  • Car 클래스 배열에 대한 레퍼런스 변수 Car 선언
Car [] car; // Car car[]; 도 가능!
  • n개의 레퍼런스 ( car[0], car[1] ... car[n - 1] )를 원소로 갖는 배열 생성. 이때 배열의 원소는 객체가 아닌 레퍼런스 이다.
car = new Car[n];
  • 객체 생성 - Car 객체를 하나씩 생성하여 배열 car[]의 각 레퍼런스
    ( car[0], car[1] ... ) 에 대입한다.
for (int i = 0; i < car.length; i++){
car[i] = new Car(i); // 이 코드에선 객체가 생성될때 생성자의 매개변수를 i로 지정

💻 Mini Project

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

실행결과


profile
꾸준함의 힘

0개의 댓글