백엔드/JAVA

169페이지 객체배열

민밥통 2023. 10. 19. 14:02

package myproject;

 

public class Ex169p {

 

public static void main(String[] args) {

Tv t; // Tv인스턴스를 참조하기 위한 변수 t를 선언 참조변수

t = new Tv(); // Tv인스턴스를 생성한다. 생성자 함수.

t.channel = 7; // Tv인스턴스의 멤버변수 channe1의 값을 7로 한다.

t.channelDown(); // Tv인스턴스의 메서드 channe1Down()을 호출한다.

System.out.println("현재 채널은" + t.channel + " 입니다.");

 

t.print(); // Tv인스턴스의 메서드 print()을 호출한다.

int a; //값을 안줘서 보장할 수 없어. 값을 안줬더니 에러가 떠 그래서 지역변수는 초기화가 안됨

// System.out.println(a);

 

Tv[] tvArr = new Tv[3]; //참조변수 배열(객체 배열)을 생성

//객체를 생성해서 배열의 각 요소에 저장

tvArr[0] = new Tv();

tvArr[1] = new Tv();

tvArr[2] = new Tv();

 

tvArr[0].color = "red";

tvArr[1].color = "green";

tvArr[2].color = "blue";

 

for (int i = 0; i < tvArr.length; i++) {

System.out.println("\n" + i +"의 "+"tv색은? : "+ tvArr[i].color);

}

System.out.println(tvArr); //배열의 시작 주소

System.out.println(tvArr[0]); // 배열[0]이 갖고 있는 참조하는 주소

System.out.println(tvArr[1]);

System.out.println(tvArr[2]);

 

//배열의 초기화 블럭을 사용한다면

// Tv[] tvArr = { new Tv(), new Tv(),  new Tv() }; 처럼 한 줄로 간단히 할 수 있다.

//다뤄야할 객체의 수가 많을 때는 for문을 사용하면 된다.

 

Tv[] tvArr = new Tv[100];

 

for( int i = 0; i <tvArr.lenght; i++) {

   tvArr[i] = new Tv();

}

} //main

}//class

결과>

현재 채널은6 입니다.

null,false ,6

 

0의 tv색은? : red

 

1의 tv색은? : green

 

2의 tv색은? : blue

[Lmyproject.Tv;@6073f712

myproject.Tv@43556938

myproject.Tv@3d04a311

myproject.Tv@7a46a697

객체로도 배열을 만들 수 있다는 것을 보여줌.