[Java] 객체 배열을 활용해보자
카테고리: Java
태그: coding Programming Java
객체배열
- 객체배열은 래퍼런스 변수에 대한 배열이다
- 생성한 인스턴스도 배열을 이용해서 관리하면 동일한 타입 여러 개 인스턴스를 각각 취급하지 않고 연속 처리할 수 있어서 유용하다
- 또한 변환값은 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가지 전부 같은 결과값을 나타내고 있다.
위의 코드는 동일한 동작을 수행하는 다양한 방법을 보여주는 것이다. 각각의 코드 블록은 동일한 결과를 출력하지만, 배열 초기화와 반복문의 사용 방법이 다르다
- 첫 번째 방법은 개별적으로 객체를 생성하고, 이후에 각 객체의 ‘driverMaxSpeed’ 메서드를 호출 하는 방식이다
- 두 번째 방법은 Car 클래스의 배열을 생성하고, 배열의 각 요소에 객체를 생성하여 할당하는 방식이다. 그 후 반복문을 사용하여 각 객체의 ‘driverMaxSpeed’메서드를 호출한다
- 세 번째 방법은 배열을 생성하면서 동시에 배열 요소들을 초기화하는 방식이다. 이러한 방식은 배열 초기화를 간결하게 작성할 수 있다
- 세 가지 방법 모두 동일한 결과를 출력하지만, 코드의 가독성과 유지보수성을 고려하여 적절한 방법을 선택할 수 있다. 선탟한 방법은 작성자의 취향이나 프로젝트의 요구 사항에 따라 다를 수 있다
댓글 남기기