package ObjectEx;
public class TvTest {
//TV의 속성(멤버변수)
String color; //색상
boolean power; //전원상태
int channel; //채널
//TV의 기능(메서드)
void power(){ power=!power;}
void channelUp(){++channel;}
void channelDown(){--channel;}
ObjectEx;
public class TV3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TvTest t1=new TvTest();
TvTest t2=new TvTest();
System.out.println("t1의 channel값은"+t1.channel+"입니다");
System.out.println("t2의 channel값은"+t2.channel+"입니다");
t2=t1;
t1.channel=7;
System.out.println("t1의 채널값을 7로 변경했습니다.");
System.out.println("t1 채널값은"+t1.channel+"입니다");
System.out.println("t2 채널값은"+t2.channel+"입니다");
}
}
// 중요하고 보고가자 t는 TvTest의 "참조변수"이다 즉 주소를 가리키는 것이다
// t2=t1은 t2에 t1에 주소값을 넣은 것이므로 원래 가지고 있던 t2의 주소값은 없어지고
// t1이 가지고 있는 주소값을 참고하게 된다.
// 이로인해 1개의 인스턴트(TvTest)를 여러 참조변수가 가리키는것은 가능하지만
// 여러개의 인스턴트(TvTest)가 참조변수를 가리키는것은 불가능하다.
주석은 제가 필기한 것입니다.
t1과 t2가 참조변수라고 했습니다 참조변수는 주소값을 저장하는 것인데
t1과 t2 모두 TvTest라는 클래스의 주소를 참조 하고있지 않습니까?
t2=t1 이라고해도 t1과 t2가 가리키는 주소의 값은 같은데
어째서 주석2번째 말처럼 t2의 주소값이 사라지는 건가요??
t1과 t2는 TvTest라는 주소값을 참고하여 새로운 t1,t2에 개인주소를 가지는 건가요????