Notice
Recent Posts
Recent Comments
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Archives
Today
Total
관리 메뉴

충분히 쌓여가는

객체 배열 본문

Java/객체지향

객체 배열

빌드이너프 2023. 5. 22. 12:19

객체 배열

객체 배열 = 참조변수 배열

많은 수의 객체를 다뤄야할 때, 배열로 다루면 편리할 것

객체도 배열로 다루는 것이 가능하고, 이를 객체 배열이라고 함

객체 배열 안에 객체가 저장되는 것이 아닌, 객체의 주소가 저장된다 = 참조변수들을 하나로 묶은 참조 변수 배열

Tv tv1, tv2, tv3;

Tv[] tvaArr = new Tv[3];

 

 

길이가 3인 객체 배열 tvArr

3개의 객체(객체의 주소)를 저장할 수 있다

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

참조 변수를 만들어 줬으면 채워넣어 줘야함

Tv[] tvaArr = new Tv[3];

// 배열만 만들고 넣는거 까먹지말고 따로 넣어주기
tvArr[0] = new Tv();
tvArr[1] = new Tv();
tvArr[2] = new Tv();

// 배열의 초기화 블럭
// 한 줄로 간단히 만들기
Tv[] tvArr = { new Tv(), new Tv(), new Tv() };

 

다뤄야할 객체 수가 많을 경우 for 문 사용

Tv[] tvArr = enw Tv[100];

for (int i = 0; i < tvArr.length; i++) {
	tvArr[i] = new Tv();
}

 

코드

class Tv {
    // Tv의 속성(멤버 변수)
    String color;
    boolean power;
    int channel;

    // Tv의 기능(메서드)
    void power() {power = !power;}

    void channelUp() {channel++;}

    void channelDown() {channel--;}
}

// Tv객체를 생성해서 Tv객체 배열의 각 요소에 저장
class Tvtest {
    public static void main(String[] args) {
        Tv[] tvArr = new Tv[3];

        for (int i = 0; i < tvArr.length; i++) {
            tvArr[i] = new Tv();
            tvArr[i].channel = i;
        }

        for (int i = 0; i < tvArr.length; i++) {
            System.out.println(tvArr[i].channel);
        }
    }
}

0
1
2

 

 

객체 배열도 같은 타입의 객체만 저장할 수 있다

하지만 여러 종류의 객체를 하나의 배열에 저장하는 당법은 다형성(polymorphism)을 사용하면 된다

'Java > 객체지향' 카테고리의 다른 글

선언 위치에 따른 변수의 종류  (0) 2023.05.23
클래스의 정의  (0) 2023.05.22
인스턴스 생성과 사용  (0) 2023.05.21
클래스와 객체와 instance  (0) 2023.05.21
객체지향언어  (0) 2023.05.20