객체 배열
객체들이 연속된 자료로 있을 때 어떻게 사용할수 있나
객체의 주소를 담게 된다.
각각에 대한 null 값이 들어가게된다.
Book[] library = new Book[5]; 5개의 책이 생기는게 아니다.
각각의 인스턴스에 대한 new 를 해서 객체를 넣어줘야 한다.
즉 , library[0] = new Book(" " , " " ); 이렇게 각각 넣어줘야 한다는 것이다.
예시
Book 클래스를 만든다. 책 제목과 저자 이름 생성자를 생성한다.
package array;
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 showBookInfo() {
System.out.println(title + "," + author);
}
}
BookArrayTest 클래스
package array;
public class BookArrayTest {
public static void main(String[] args) {
Book book[] = new Book[5]; // 책이 5권생기는게 아니라 5개의 배열이 생긴다. 한권씩 생기려면 각각new Book 해야한다
// 인스턴스를 생성하고 나서 각각의 위치에 어싸인을 해줘야 한다.
book[0] = new Book("해리포터" ,"조앤롤링" ); // 한권씩 생기려면 각각new Book 해야한다
book[1] = new Book("해리포터1" ,"조앤롤링1" ); // 한권씩 생기려면 각각new Book 해야한다
book[2] = new Book("해리포터2" ,"조앤롤링2" ); // 한권씩 생기려면 각각new Book 해야한다
book[3] = new Book("해리포터3" ,"조앤롤링3" ); // 한권씩 생기려면 각각new Book 해야한다
book[4] = new Book("해리포터4" ,"조앤롤링4" ); // 한권씩 생기려면 각각new Book 해야한다
for(int i = 0; i < book.length; i++) {
System.out.println(book[i]); // null 만 들어간걸 알수있다. 그책의 주소값이 들어가게 된다. 주소값이 출력되게 된다.
}
for(int i = 0; i < book.length; i++) {
book[i].showBookInfo(); // 아까 만든 메소드를 활용해서 호출한다.
}
}
}
배열 복사하기 ( System.arrayCopy() 이용하기 )
package array;
// 배열 복사
public class ArrayCopy {
public static void main(String[] args) {
int[] arr1 = {10,20,30,40,50};
int[] arr2 = {1,2,3,4,5};
System.arraycopy(arr1, 0, arr2, 1, 3); // arr1 첫번째부터 arr2의 1번 인덱스 위치부터 3개
for(int i=0; i<arr2.length; i++) {
System.out.println(arr2[i]);
}
}
}
'JAVA Programming' 카테고리의 다른 글
[28] ArrayList 사용하기 (0) | 2020.07.15 |
---|---|
[27] 다차원 배열 (0) | 2020.07.15 |
[24] 배열이란 ? (2) (0) | 2020.07.14 |
[23] 배열 이란 ? (0) | 2020.07.14 |
[21] static 을 활용한 싱글톤 패턴 (0) | 2020.07.14 |