남궁성님의 자바의 정석 기초편을 보면서 혼자 공부하는 공간입니다. 참고 부탁드립니다.
객체의 생성
클래스명 변수명 ; //클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명(); //클래스의 객체를 생성 후, 객체의 주소를 참조변수에 저장
Tv t ; // Tv클래스 타입의 참조변수 t 선언
t = new Tv(); // Tv 인스턴스를 생성 후, 생성된 인스턴스의 주소를 t에 저장
> Tv t = new Tv(); 한줄로 작성 가능
객체의 사용
t.channel = 7; // Tv 인스턴스 멤버변수 channel의 값을 7
t.channelDown(); // Tv 인스턴스 메서드 channelDown() 호출
System.out.println("현재 채널은 " + t.channel + "입니다.");
1. 클래스 작성
2. 객체 생성
3. 객체 사용
* 하나의 인스턴스를 여러개의 참조변수가 가리키는 경우 (가능)
Tv t1 = new Tv();
Tv t2 = new Tv();
t1.channel = 7;
t2 = t1;
* 여러 인스턴스를 하나의 참조변수가 가리키는 경우 (불가능)
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
|
class Ex6_1 {
public static void main(String[] args) {
// TODO Auto-generated method stub
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println("현재 채널은 " + t.channel+ " 입니다.");
}
}
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
|
cs |
출력
현재 채널은 6 입니다.
예제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
class Ex6_2 {
public static void main(String args[]) {
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println("t1의 channel값은 " + t1.channel + "입니다.");
System.out.println("t2의 channel값은 " + t2.channel + "입니다.");
t1.channel = 7;
System.out.println("t1의 channel값을 7로 변경하였습니다.");
System.out.println("t1의 channel값은 " + t1.channel+ "입니다.");
System.out.println("t2의 channel값은 " + t2.channel+ "입니다.");
t2 = t1; // 참조변수 t1의 값을 t2에 저장
System.out.println("t2의 channel값은 " + t2.channel +"입니다");
}
}
|
cs |
출력
t1의 channel값은 0입니다.
t2의 channel값은 0입니다.
t1의 channel값을 7로 변경하였습니다.
t1의 channel값은 7입니다.
t2의 channel값은 0입니다.
t2의 channel값은 7입니다
객체의 배열
객체 배열 == 참조변수 배열
Tv t1, tv2, tv3 ; ----> Tv[] tvArr = new Tv[3];
Tv[] tvArr = new Tv[3]; // 길이가 3인 Tv 타입의 참조변수 배열
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv(); 4
위 3개를 아래처럼 변경 가능
Tv[] tvArr = {new Tv(), new Tv(), new Tv()};
Tv[] tvArr = new Tv[3]; // 참조 변수 배열만 만들어놓은 것 ! 아래처럼 객체를 생성해줘야함! 생성X > 오류발생
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();
댓글