-
자바를 시작하기 전에 :: 인스턴스의 생성과 사용 본문
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | class Airconditioner{ String color; boolean power; int temperature; void power() { power = !power; } void tempUp() { temperature++; } void tempDown() { temperature--; } } class ACTest{ public static void main(String args[]){ Airconditioner air; air = new Airconditioner(); air.temperature = 20; } } | cs |
위의 예제는 Airconditioner클래스로부터 인스턴스를 생성하고 인스턴스의 속성(temperature)과 메서드(temperatureDown())를 사용하는 방법을 보여준다.
1. Airconditioner air;
Airconditioner 클래스 타입의 참조변수 air를 선언한다. 메모리에 참조변수 air를 위한 공간이 마련된다. 아직 인스턴스가 생성되지 않았으므로 참조변수로 아무것도 할 수 없다.
air |
|
2. air = new Airconditioner();
연산자 new에 의해 Airconditioner 클래스의 인스턴스가 메모리의 빈 공간에 생성된다. 주소가 0x100인 곳에 생성되었다고 가정한다. 이 때, 멤버변수는 각 자료형에 해당하는 기본값으로 초기화된다.
color는 참조형이므로 null로, power는 boolean이므로 false로, 그리고 temperature는 int형이므로 0으로 초기화 된다.
air |
|
|
0x100 |
|
|
color |
null |
|
|
power |
false |
|
|
channel |
0 |
|
|
|
power() |
|
|
|
tempUp() |
|
|
|
tempDown() |
그 다음에는 대입연산자(=)에 의해서 생성된 객체의 주소값이 참조변수 t에 저장된다. 이제는 참조변수 t를 통해 Tv 인스턴스에 접근할 수 있다. 인스턴스를 다루기 위해서는 참조변수가 반드시 필요하다.
air | 0x100 | →→→→→→ | 0x100 |
|
| color | null |
|
| power | false |
|
| temperature | 0 |
|
|
| power() |
|
|
| tempUp() |
|
|
| tempDown() |
3. air.temperature = 20;
참조변수 air에 저장된 주소에 있는 인스턴스의 멤버변수 temperature에 20을 저장한다.
air | 0x100 | →→→→→→ | 0x100 |
|
| color | null |
|
| power | false |
|
| temperature | 20 |
|
|
| power() |
|
|
| tempUp() |
|
|
| tempDown() |
4. air.tempDown();
참조변수 air가 참조하고 있는 Airconditioner인스턴스의 tempDown메서드를 호출한다. tempDown메서드는 멤버변수 temprature에 저장되어있는 값을 1 감소시킨다.
air | 0x100 |
| 0x100 |
|
| color | null |
|
| power | false |
|
| temperature | 19 |
|
|
| power() |
|
|
| tempUp() |
|
|
| tempDown() |
'언어 > 자바' 카테고리의 다른 글
객체지향 프로그래밍 :: 오버로딩 (0) | 2016.11.30 |
---|---|
자바를 시작하기 전에 :: JVM(Java Virtual Machine) - 2 (0) | 2016.11.29 |
자바를 시작하기 전에 :: 객체의 구성요소 - 속성과 기능 (0) | 2016.11.28 |
자바를 시작하기 전에 :: 객체와 인스턴스 (0) | 2016.11.28 |
자바를 시작하기 전에 :: 클래스와 객체 (0) | 2016.11.28 |