package myproject;
public class Ex169p {
public static void main(String[] args) {
Tv2 t; // Tv인스턴스를 참조하기 위한 변수 t를 선언 참조변수
t = new Tv2(); // Tv인스턴스를 생성한다. 생성자 함수.
t.channel = 7; // Tv인스턴스의 멤버변수 channel의 값을 7로 한다.
t.channelDown(); // Tv인스턴스의 메서드 channelDown()을 호출한다.
System.out.println("현재 채널은 " + t.channel + " 입니다.");
t.print(); // Tv인스턴스의 메서드 print()을 호출한다.
int a;
Tv2[] tvarr = new Tv2[3];
tvarr[0] = new Tv2();
tvarr[1] = new Tv2();
tvarr[2] = new Tv2();
tvarr[0].color = "red";
tvarr[0].color = "green";
tvarr[0].color = "blue";
for(int i = 0; i < tvarr.length; i++)
System.out.println(tvarr[i].color);
System.out.println(tvarr); //배열의 시작 주소
System.out.println(tvarr[0]); //배열[0]이 갖고 있는 참조하는 주소
System.out.println(tvarr[1]);
System.out.println(tvarr[2]);
t.setcolor("red");
System.out.println(t.getcolor());
t.setchannel(-55);
System.out.println(t.getChannel());
//static 변수 출력
System.out.println("인스턴스 수->" + t.getCountTv());
}
}
class Tv2 {
// Tv의 속성 (멤버변수) 멤버 변수는 값을 안 줬음에도 나옴 그래서 자동 초기화 된다.
String color; // 색상
boolean power; // 전원상태(on/off)
int channel; // 채널
//정적 ststic 변수 테스트
static int countTv; //자동으로 초기화 된다. (클래스변수)
int getCountTv() {
return countTv;
} //생성자 함수 :default constructor
Tv2(){
countTv++;
}
//setter,getter
void setcolor(String color){ //color멤버 변수에 인수값을 저장함
this.color = color; //void: 외부에 반환하는 값이 없음을 의미함.
}
String getcolor(){ //외부에 돌려주는 값은 string형임.
return color; //color을 반환함, string형
}
void setchannel(int ch) { //ch의 범위를 확인해야 함: 채널수는 1~100이다.
if(ch >= 1 && ch <= 100)
channel = ch;
else
System.out.println("범위를 벗어났습니다. (유효한 수: 1~100)");
}
int getChannel() {
return channel;
}
// Tv의 기능(메서드)
void power() { power = !power; } // TV를 켜거나 끄는 기능을 하는 메서드
void channelUp() { ++channel; } // TV의 채널을 높이는 기능을 하는 메서드
void channelDown() { --channel; } // TV의 채널을 낮추는 기능을 하는 메서드
void print() {
System.out.println(color + "," + power + "," + channel);
}
}
현재 채널은 6 입니다.
null,false,6
blue
null
null
[Lmyproject.Tv2;@3caeaf62
myproject.Tv2@e6ea0c6
myproject.Tv2@6a38e57f
myproject.Tv2@5577140b
red
범위를 벗어났습니다. (유효한 수: 1~100)
6
인스턴스 수->4
인스턴스 수가 4가 나오면 맞다.
'백엔드 > JAVA' 카테고리의 다른 글
예제6_8 187p 참조형 반환타입 (0) | 2023.10.19 |
---|---|
메서드의 실행 흐름 예제 6-4 참고하면서 만듦 add, sub, mul, div (0) | 2023.10.19 |
클래스의 정의(2)- 사용자 정의 타입 171페이지 (0) | 2023.10.19 |
배열의 정의 (0) | 2023.10.19 |
169페이지 객체배열 (0) | 2023.10.19 |