Cute Blinking Unicorn

백엔드/JAVA

173페이지 static을 활용

민밥통 2023. 10. 19. 15:20

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가 나오면 맞다.