객체의 생성과 사용
1. 객체의 생성
클래스명 변수명; // 클래스의 객체를 참조하기 위한 참조변수를 선언
변수명 = new 클래스명(); // 클래스의 객체를 생성 후, 객체의 주소를 참조변수에 자정
TV t; // TV 클래스 타입의 참조변수 t를 선언
t = new TV(); // TV 인스턴스를 생성한 후, 생성된 TV인스턴스의 주소를 t에 저장
-> 간편하게 하나의 코드로 작성 가능
TV t = new TV(); -> TV 객체를 생성
2. 객체의 사용
t.channel1 = 7; // TV 인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); // TV 인스턴스의 메서드 channelDown()을 호출한다.
System.out.println(:현재 채널은 " + t.channel + "입니다.");
과정을 정리해보면...
1. 클래스 작성 (설계도)
2. 객체 생성 (리모컨)
3. 객체의 사용 (제품)
객체의 생성과 사용 - 예제
Tv t1 = new Tv();
Tv t2 = new Tv();
t.channel1 = 7;
예제) TV 인스턴스 참조해서 값 출력하기
public class Prac_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TV tv1; // Tv 인스턴스를 참조하기 위한 변수 tv1를 선언
tv1 = new TV(); // Tv 인스턴스를 생성한다.
tv1.channel = 7; // Tv 인승턴스의 멤버변수 Channel의 값을 7로 저장
tv1.channelUp(); // Tv 인스턴스의 메셔드 ChannelUp()을 호출
System.out.println("현재 채널은" + tv1.channel + "입니다.");
}
}
class TV {
// TV의 속성 (멤버변수)
int channel; // 채널
// TV의 기능 (메서드)
void channelUp() {++channel;} // TV의 채널을 높이는 기능을 하는 메서드
}
예제2) 객체마다 별도의 저장 공간을 갖는 것을 확인
* t1 과 t2의 값은 동일하게 시작함
서로 주소가 다름 (서로다른 객체가 있을 경우 주소가 서로 다름)
public class Prac_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
TV t1 = new TV();
TV t2 = new TV();
System.out.println("t1의 channel 값은"+t1.channel+"입니다.");
System.out.println("t2의 channel 값은"+t2.channel+"입니다.");
}
}
class TV {
int channel;
}
*t1의 채널에 7을 입력된다면 t1의 채널값만 7로 변경됨
public class Prac_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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; // channel의 값을 7로 함
System.out.println("t1의 channel값을 7로 변경하였습니다.");
}
}
class TV {
int channel;
}
public class Prac_01 {
public static void main(String[] args) {
// TODO Auto-generated method stub
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; // channel의 값을 7로 함
System.out.println("t1의 channel값을 7로 변경하였습니다.");
System.out.println("t1의 channel값은" + t1.channel + "입니다.");
System.out.println("t2의 channel값은" + t2.channel + "입니다.");
// t1, t2의 값을 출력해보기
}
}
class TV {
int channel;
}
>> 객체마다 별도의 저장 공간을 갖는 것을 확인
'자바의 정석 - 기초편' 카테고리의 다른 글
클래스의 정의 (0) | 2022.08.04 |
---|---|
객체 배열 (0) | 2022.08.04 |
한 파일 여러 클래스 작성하기 (0) | 2022.08.03 |
객체지향 언어 / 클래스와 객체 (0) | 2022.08.03 |
Arrays로 배열 다루기 (0) | 2022.08.03 |