태그
#JAVA
자바의 정석(기초편) 6-6~7강 정리
2021년 10월 22일 00:21

ch6-6 객체의 생성과 사용
package minHong.chapter6.ex;
public class Ch6_6 {
public static void main(String[] args) {
Tv t; // 참조 변수 t를 선언, 인스턴스 생성을 안했기때문에 값X
t = new Tv(); // 메모리의 빈 공간에 인스턴스 생성 / t는 인스턴스 주소값을 가지고 있음
// 이때 멤버 변수는 각 자료형에 해당하는 기본값으로 초기화
t.channel = 7; // t에 저장된 주소에 있는 인스턴스의 멤버변수 channel에 7저장
t.channelDown(); // 인스턴스의 멤버변수 channel의 값을 1감소시킴
System.out.println("현재 채널은 " + t.channel + "번 입니다.");
}
}
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
++channel;
}
void channelDown() {
--channel;
}
}
- 클래스 작성
- 객체 생성
- 객체 사용
인스턴스는 참조변수를 통해서만 다룰 수 있으며,참조 변수 타입는 인스턴스의 타입과 일치해야한다.
ch6-7 객체의 생성과 사용 예제
package minHong.chapter6.ex;
public class Ch6_7 {
public static void main(String[] args) {
// 두 객체 다 다른 저장 공간을 갖음 (다른 주소값)
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println("t1의 cannel값은 " + t1.channel + "입니다.");
System.out.println("t2의 cannel값은 " + t2.channel + "입니다.");
t1.channel = 7;
System.out.println("t1의 channel값을 7로 변경했습니다.");
t2 = t1; // 참조 변수 t1의 값을 t2에 저장
System.out.println("t1의 cannel값은 " + t1.channel + "입니다.");
System.out.println("t2의 cannel값은 " + t2.channel + "입니다.");
// 객체가 통째로 저장되는게 아니라 주소 값이 바뀌는거였음
// 그래서 원래 있던 t1의 객체는 사라지고 2개의 리모콘이 생겼다고 생각하면 됨
}
}