sus 2014. 10. 12. 05:02
클래스 : TV의 설계도 객체 : TV 클래스를 인스턴스화 하여 인스턴스(객체)를 생성 TV의 클래스화 속성 : 멤버변수 기능 : 메서드 변수 : 크기, 길이, 높이, 색상, 볼륨, 채널 등 기능 : 커기, 끄기, 볼륨 높이기 / 낮추기, 채널변경하기
package score;

public class TvTest {
	public static void main(String[] args) {
		
		Tv t1; // Tv클래스타입의 참조변수 t를 선언 / 메모리에 t를 위한 공간이 마련됨
		t1 = new Tv(); // 연산자 new에 의해 Tv클래스의 인스턴스가 메모리의 빈 공간에 생성 / 각 항목들은 기본값으로 초기화 / 대입연산자로 인해서 해당 주소값이 객체t에 지정
		t1.channel = 7; // 참조변수 t에 저장된 주소에 있는 인스턴스의 멤버변수 channel에 7을 저장
		t1.channelDown(); // t가 참조하고 있는 Tv인스턴스의 channelDown메서드를 호출 channel에 저장되어있는값을 1감소
		System.out.println("현재 t1의 채널은 " + t1.channel + "입니다.");
		
		Tv t2 = new Tv(); // 새 객체 생성 다른 메모리 주소를 참조하는 빈 항목들을 t2에 지정
		System.out.println("현재 t2의 채널은 " + t2.channel + "입니다.");
		t2 = t1; // 바라보는 참조 주소를 복사
		t1.channelUp(); // t1인스턴스가 바라보는 멤버변수 channel의 값을 1증가
		System.out.println("현재 t2의 채널은 " + t2.channel + "입니다.");
		
	}
}

class Tv {
	String color;
	boolean power;
	int channel;
	
	void power() {
		power = !power;
	}
	void channelUp() {
		++channel;
	}
	void channelDown() {
		--channel;
	}
}