지난번에 이어서 객체지향 언어를 계속 공부하고 있습니다. 

이번에는 조금 더 다양하게 2개의 인스턴스를 생성해봤습니다.



public class Car { // Car라는 클래스에 마찬가지로 객체를 선언
	
	String color;
	boolean power;
	int channel;
	
	void power() {
		power = !power;
	}
	
	void channelUp() {
		++channel;
	}
	
	void channelDown() {
		--channel;
	}	
}

class CarTest2 {
	public static void main(String args[]) {
		Car c1 = new Car(); // c1도 Car의 인스턴스를 가지고있다/
		Car c2 = new Car(); // c2도 마찬가지
		System.out.println("c1의 속도는 " + c1.speed); // 아직 둘다 초기화를 안했으니 0
		System.out.println("c2의 속도는 " + c2.speed);
		
		c1.speed = 10; // c1에만 speed의 10을 넣어준다.
		System.out.println("c1의 속도를 10으로 변경");
		
		System.out.println("c1의 속도는 " + c1.speed);
		System.out.println("c2의 속도는 " + c2.speed);
	}
}


결과 값은 차례대로 나오게 됩니다.

 

c1의 속도는 0
c2의 속도는 0
c1의 속도를 10으로 변경
c1의 속도는 10
c2의 속도는 0


이 구문이 Class를 가지고 인스턴스를 생성하는 과정인데

같은 클래스를 가지고 인스턴스명을 다르게 해서 사용할 수 있습니다.
 


Car c1 = new Car();
Car c2 = new Car();


인스턴스는 참조변수를 통해서만 다룰 수 있으며, 참조변수의 타입은 인스턴스의 타입과 일치해야합니다 !


'JAVA > java' 카테고리의 다른 글

Override 오버라이드  (0) 2017.09.07
Override을 가지고 간단한 게임(?)만들기  (0) 2017.09.07
객체지향(1)  (0) 2017.09.06
Method  (0) 2017.09.05
Array(2) array & for & for-each  (0) 2017.09.05