반응형
기본 자료형 배열은 선언과 동시에 배열의 크기만큼 메모리가 할당 되지만,
객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(4바이트, 8바이트) null 상태로 메모리만 할당되고
각 요소는 객체를 생성하여 저장해야 한다.
책으로 보는 객체 배열 예제
책의 제목과 저자를 변수로 갖는 Book class를 만들어준다.
public class Book {
private String title;
private String author;
public Book() {
}
public Book(String title, String author) {
this.title = title;
this.author = author;
}
public String getTitle() {
return title;
}
public void setTitle(String title) {
this.title = title;
}
public String getAuthor() {
return author;
}
public void setAuthor(String author) {
this.author = author;
}
public void showInfo() {
System.out.println(title + ", " + author);
}
}
˙ 객체에 관한 배열을 생성하면 지정한 배열 크기 만큼 다른 참조값을 가진 방(객체가 들어갈 자리)이 생긴다.
˙ 각각 다른 참조값을 가진 방에 객체를 직접 생성
public class BookTest {
public static void main(String[] args) {
Book[] library = new Book[5];
/*
for(int i=0; i< library.length; i++) {
System.out.println(library[i]);
}*/
//각각 다른 참조값을 가진 방에 객체를 직접 생성
library[0] = new Book("태백산맥", "탐라");
library[1] = new Book("태백산맥1", "탐라");
library[2] = new Book("태백산맥2", "탐라");
library[3] = new Book("태백산맥3", "탐라");
library[4] = new Book("태백산맥4", "탐라");
for(Book book : library) {
System.out.println(book);
book.showInfo();
}
}
}
객체 배열 복사하기(arraycopy)
자바에서 제공되는 배열 복사 메서드
형태 : System.arrayCopy(src, srcPos, dest, destPos, length) (얕은 복사)
예시 : System.arraycopy(library, 0, copyLibrary, 0, 5);
→ library에서 0부터 있는 객체들을 copyLibrary의 0부터에 자리에 5개 카피해라
내용과 참조값까지 그대로 복사한다.
반응형
'개발 > Java' 카테고리의 다른 글
객체 배열을 구현한 클래스 ArrayList (0) | 2021.04.23 |
---|---|
2차원 배열 (0) | 2021.04.23 |
배열(array) (0) | 2021.04.23 |
static 응용 - 싱글톤 패턴(singleton pattern) (0) | 2021.04.22 |
변수의 유효 범위와 메모리 (0) | 2021.04.22 |