class Car{
Tire frontLeftTire = new Tire();
Tire frontRightTire = new Tire();
Tire backLeftTire = new Tire();
Tire backRightTire = new Tire();
void run(){.....}
}
기억나는가 바로 밑에 글에서 한 코드다 같은 타입의 객체를 4개만드는 내용인데..
옛날에 배열배울때 기억나는가 같은 타입이라면 배열로 관리하면 짧고 빠르다는것을.
위의 코드를 배열로 만들어서 관리해보자.
class Car{ class Car{
Tire forntLeftTire = new Tire("앞왼쪽",6); Tire[] tires = {
Tire forntRightTire = new Tire("앞오른쪽",2); new Tire("앞왼쪽",6),
Tire backLeftTire = new Tire("뒤왼쪽",3); new Tire("앞오른쪽",2),
Tire backRightTire = new Tire("뒤오른쪽",4); new Tire("뒤왼쪽",3),
} new Tire("뒤오른쪽",4)
};
}
왼쪽방식으로 객체를 만들고 매개변수로 위치와 성능값을 주었다고 할때 같은 타입을 배열로 묶어서 오른쪽과같은 모양으로 만들수 있다. 이렇게 될 경우
forntLeftTire >> tiers[0]
forntRightTire >> tiers[1]
backLeftTire >> tiers[2]
backRightTire >> tiers[3]
으로 필드명이 인덱스로 변경된다. 일일이 필드명을 쓰는것보다 간단해진다.
이상태에서 타이어를 교체하고 싶다면??
tires[0] = new HankookTire("앞왼쪽", 15); << 이런 식으로 교체해주는것이 가능하다.
배열의 타입은 Tire 이므로 자연스럽게 자동타입변환이 이루어진다. 배열의 타입은 Tire이기 때문에 당연히 Tire class를 상속받는 자식클래스는 대입이 가능하다.
Car class 의 run()메소드를 보자
지난번의 Run메소드의 경우 각각의 필드를 적고 메소드를 호출하는 방식이였다.
void run(){
forntLeftTire.roll();
forntRightTire.roll();
backLeftTire.roll();
backRightTire.roll();
}
배열로 한다면??
void run(){
for(int i=0; i<tires.length; i++){
tires[i].roll();
}
}
정도가 될것이다. 짧고 간결한 내용으로 실행이 가능하다.
'Java' 카테고리의 다른 글
강제타입변환 Casting 및 몇가지 (0) | 2018.12.22 |
---|---|
매개변수의 다형성 (0) | 2018.12.21 |
자동타입변환2 필드의 당형성 (0) | 2018.12.21 |
자동타입변환(Promotion) (0) | 2018.12.20 |
타입변환. 다형성 (0) | 2018.12.20 |