[Java] 객체 배열을 활용해보자

Date:     Updated:

카테고리:

태그:

java.png

객체배열

  • 객체배열은 래퍼런스 변수에 대한 배열이다
  • 생성한 인스턴스도 배열을 이용해서 관리하면 동일한 타입 여러 개 인스턴스를 각각 취급하지 않고 연속 처리할 수 있어서 유용하다
  • 또한 변환값은 1개의 값만 반환할 수 있기 때문에 동일한 타입의 여러 인스턴스를 반환해야하는 경우 객체배열을 이용할 수 있다

이번에는 달리는 자동차를 만들어보자

먼저 자동차가 필요하니 Car 클래스를 만들어보자

  • Car
package com.section01;

public class Car {
    
    private String modelName;
    private int maxSpeed;

    public Car(String modelName, int maxSpeed) {
        this.modelName = modelName;
        this.maxSpeed = maxSpeed;
    }
    public void driverMaxSpeed(){
        System.out.println(modelName +"이(가) 최고시속 " + maxSpeed + "km/h로 달려갑니다.");
        
    }
}

이번에도 마찬가지로 Car 클래스에 private 변수 선언을 해준 뒤 Constructor 생성자를 만들어주고 driverMaxSpeed라는 메서드를 만들어줬다

이제 Application 을 만들어보자

  • Application
package com.section01;

public class Application {
    public static void main(String[] args) {

        Car car1 = new Car("페라리", 300);
        Car car2 = new Car("람보르기니", 350);
        Car car3 = new Car("롤스로이스", 250);
        Car car4 = new Car("부가티베이론", 400);
        Car car5 = new Car("포터", 500); // 국산차라 젤 빠르게 해봤습니다 ㅋㅋ

        car1.driverMaxSpeed();
        car2.driverMaxSpeed();
        car3.driverMaxSpeed();
        car4.driverMaxSpeed();
        car5.driverMaxSpeed();
        System.out.println("======================================");

        Car[] carArray = new Car[5];
        carArray[0] = new Car("페라리", 300);
        carArray[1] = new Car("람보르기니", 350);
        carArray[2] = new Car("롤스로이스", 250);
        carArray[3] = new Car("부가티베이론", 400);
        carArray[4] = new Car("포터", 500);
        System.out.println("======================================");

        for (int i = 0; i < carArray.length; i++) {
            carArray[i].driverMaxSpeed();
        }
        Car[] carArray2 = {

                new Car("페라리", 300),
                new Car("람보르기니", 350),
                new Car("롤스로이스", 250),
                new Car("부가티베이론", 400),
                new Car("포터", 500)};
                System.out.println("======================================");

        for (Car c : carArray2) {
            c.driverMaxSpeed();
        }
    }
}

Application 에 3개의 방식으로 예시를 작성했다. 이에대한 설명은 일단 결과값을 보고 작성하도록 하겠다

  • 결과값
페라리가 최고시속 300km/h로 달려갑니다.
람보르기니가 최고시속 350km/h로 달려갑니다.
롤스로이스가 최고시속 250km/h로 달려갑니다.
부가티베이론가 최고시속 400km/h로 달려갑니다.
포터가 최고시속 500km/h로 달려갑니다.
======================================
======================================
페라리가 최고시속 300km/h로 달려갑니다.
람보르기니가 최고시속 350km/h로 달려갑니다.
롤스로이스가 최고시속 250km/h로 달려갑니다.
부가티베이론가 최고시속 400km/h로 달려갑니다.
포터가 최고시속 500km/h로 달려갑니다.
======================================
페라리가 최고시속 300km/h로 달려갑니다.
람보르기니가 최고시속 350km/h로 달려갑니다.
롤스로이스가 최고시속 250km/h로 달려갑니다.
부가티베이론가 최고시속 400km/h로 달려갑니다.
포터가 최고시속 500km/h로 달려갑니다.

결과값을 보면 3가지 전부 같은 결과값을 나타내고 있다.
위의 코드는 동일한 동작을 수행하는 다양한 방법을 보여주는 것이다. 각각의 코드 블록은 동일한 결과를 출력하지만, 배열 초기화와 반복문의 사용 방법이 다르다

  1. 첫 번째 방법은 개별적으로 객체를 생성하고, 이후에 각 객체의 ‘driverMaxSpeed’ 메서드를 호출 하는 방식이다
  2. 두 번째 방법은 Car 클래스의 배열을 생성하고, 배열의 각 요소에 객체를 생성하여 할당하는 방식이다. 그 후 반복문을 사용하여 각 객체의 ‘driverMaxSpeed’메서드를 호출한다
  3. 세 번째 방법은 배열을 생성하면서 동시에 배열 요소들을 초기화하는 방식이다. 이러한 방식은 배열 초기화를 간결하게 작성할 수 있다
  • 세 가지 방법 모두 동일한 결과를 출력하지만, 코드의 가독성과 유지보수성을 고려하여 적절한 방법을 선택할 수 있다. 선탟한 방법은 작성자의 취향이나 프로젝트의 요구 사항에 따라 다를 수 있다

Java 카테고리 내 다른 글 보러가기

댓글 남기기