목차

ch6-6 객체의 생성과 사용

ch6-7 객체의 생성과 사용 예제

태그

#JAVA

자바의 정석(기초편) 6-6~7강 정리

2021년 10월 22일 00:21

30-thumbnail-image

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;
	}

}

  1. 클래스 작성
  2. 객체 생성
  3. 객체 사용

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

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개의 리모콘이 생겼다고 생각하면 됨
	}

}