public class EngineCarEx {
String kind;
// 객체 멤버변수 가능
//객체에서 객체 사용방법
// 1. 상속 관계 사용
// 2. 연관관계(Association) 사용 // 객체를 멤버변수로 사용한다고 하는것
Engine eg; // 객체를 멤버변수로 생성할 수 있다
static int kkk = 0; //Debug 용도 // int cc; 이렇게 써도 되지만 끌어와서 써도 된다.
// static은 공유변수라서 다른객체에서 건드리면 다 건드려진다.
// static이 없다고 하면 각각의 객체의 변수로 되기 때문에 계속 0으로 나온다.
public EngineCarEx(String kind, Engine eg) {
this.kind = kind;
this.eg = eg;
}
void print () {
System.out.println("종류 : " + kind);
kkk++;
eg.print();
System.out.println("================ kkk-> " + kkk);
}
public static void main(String[] args) {
Engine eg1 = new Engine("알파엔진", 2000);
Engine eg2 = new Engine("베타엔진", 3000);
// ----------------------------------------------------------
EngineCarEx[] engineCars = new EngineCarEx[3];
engineCars[0] = new EngineCarEx("모닝", eg1); // "모닝"은
engineCars[1] = new EngineCarEx("소나타", eg1);
engineCars[2] = new EngineCarEx("그랜저", eg2);
// 모닝, 소나타, 그랜저
for ( EngineCarEx engineCarEx : engineCars) {
engineCarEx.print();
}
}
}
//eg1 --> "알파엔진", 2000
//eg2 --> "베타엔진", 3000
public class Engine {
String type; // 타입
int cc; // 배기량
Engine(String type, int cc) {
this.type = type;
this.cc = cc;
}
void print() {
System.out.println("타입 : " + type);
System.out.println("배기량 : " + cc);
}
}
종류 : 모닝
타입 : 알파엔진
배기량 : 2000
================ kkk-> 1
종류 : 소나타
타입 : 알파엔진
배기량 : 2000
================ kkk-> 2
종류 : 그랜저
타입 : 베타엔진
배기량 : 3000
================ kkk-> 3