JAVA_14_객체 멤버변수 & static 변수

hyeong taek jo·2023년 7월 6일

JAVA

목록 보기
14/39

📌1. 객체 멤버변수

  • 객체를 멤버변수로 생성 가능하며 연관관계라고 한다.(Association)

예시

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

profile
마포구 주민

0개의 댓글