/*
Tv t; 1.참조변수(리모콘)
3.리모콘과 연결 2.객체를 만들어서
t = new Tv();
클래스명 변수명 = new 클래스명(); */
Tv t = new Tv();
t.channel = 7;//tv객체의 변수 channel의 값을 7로 한다.
t.channelDown();//tv객체의 channelDown()메서드를 호출한다.
System.out.println("현재 채널은 "+t.channel);
/*
1.클래스작성 (설계도 작성)
Class Tv{
boolean power;//변수
int channel;
Void power{//메서드
power != power;
}
}
2.객체생성 (제품 생성)
참조변수는 리모콘
Tv t = new Tv();
3.객체의 사용 (제품 사용):메서드 호출
객체사용은 리모콘(t)을 통해서만 할 수 있다.
t.channel = 7;
t.channelDown();
*/
//객체마다 별도의 저장공간이 생긴다.
Tv t1 = new Tv();//t1의 참조변수주소 0x100
Tv t2 = new Tv();//t2의 참조변수주소 0x200
t2 = t1;// t1의 주소값(0x100)이 t2에 대입됨. t2의 주소값도 0x100이 됨
// 그러면 0x200은 사용불가가됨. 그러면 가비지컬렉터(GC)가 제거함.
t1.channel = 7;
System.out.println(t1.channel);
//t2도 t1과 같이 0x100을 가르키니까 같은 값이 나옴
System.out.println(t2.channel);
2개의 참조변수로 하나의 객체를 가르키는 것 가능.
t1 -> 0x100
t2 -> 0x100
1개의 참조변수가 두개의 객체를 가르키는 것 불가능. (참조변수는 하나의 값만 저장하니까)
t1 -> 0x100
t1 -> 0x200