충분히 쌓여가는
인스턴스 생성과 사용 본문
클래스 작성(설계도)
class Tv {
String color;
boolean power;
int channel;
void power() {
power = !power;
}
void channelUp() {
channel++;
}
void channelDown() {
channel--;
}
}
객체의 생성(제품 생성)
객체를 다루기 위해 참조변수가 필요하고, 객체를 생성한 후 참조변수와 객체를 연결해 줘야 한다
클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수 선언
변수명 = new 클래스명(); // 클래스의 객체의 생성 후, 객체의 주소를 참조변수에 저장
Tv t; // Tv 클래스 타입의 참조변수 t를 선언
t = new Tv(); // Tv 인스턴스를 생성한 후, 생성된 Tv 인스턴스의 주소를 t에 저장
Tv t = new Tv(); // 위 두 문장을 하나로 합침
객체의 사용(제품 사용)
객체가 가지고 있는 변수와 메서드를 사용
t.channel = 7; // Tv 인스턴스의 멤버변수 channel의 값을 7로 한다
t.channelDown(); // Tv 인스턴스의 메서드 channelDown()을 호출한다
System.out.println("현재 채널은 " + t.channel + " 입니다.");
객체 1개
class Tv {
// Tv의 속성(멤버 변수)
String color;
boolean power;
int channel;
// Tv의 기능(메서드)
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
}
class Tvtest {
public static void main(String[] args) {
// Tv t = new Tv();
Tv t;
t = new Tv();
t.channel = 7;
t.channelDown();
System.out.println(t.channel);
}
}
6
객체 2개
class Tv {
// Tv의 속성(멤버 변수)
String color;
boolean power;
int channel;
// Tv의 기능(메서드)
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
}
class Tvtest {
public static void main(String[] args) {
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println(t1.channel); // 0
System.out.println(t2.channel); // 0
t1.channel = 7;
System.out.println(t1.channel); // 7
System.out.println(t2.channel); // 0
}
}
0
0
7
0
channel 값을 7로 변경
t1.channel = 7;
참조변수 t1의 값을 t2에 저장(t2 = t1;)
원래 사용하던 t2의 객체는 Garbage Collection(가비지 컬렉션)이 제거해준다
class Tv {
// Tv의 속성(멤버 변수)
String color;
boolean power;
int channel;
// Tv의 기능(메서드)
void power() {power = !power;}
void channelUp() {channel++;}
void channelDown() {channel--;}
}
class Tvtest {
public static void main(String[] args) {
Tv t1 = new Tv();
Tv t2 = new Tv();
System.out.println(t1.channel); // 0
System.out.println(t2.channel); // 0
t1.channel = 7;
t2 = t1; // 참조변수 t1의 값을 t2에 저장
System.out.println(t1.channel); // 7
System.out.println(t2.channel); // 7
}
}
0
0
7
7
'Java > 객체지향' 카테고리의 다른 글
선언 위치에 따른 변수의 종류 (0) | 2023.05.23 |
---|---|
클래스의 정의 (0) | 2023.05.22 |
객체 배열 (0) | 2023.05.22 |
클래스와 객체와 instance (0) | 2023.05.21 |
객체지향언어 (0) | 2023.05.20 |