본문 바로가기

DEVELOPER/Java

객체 배열

반응형
기본 자료형 배열은 선언과 동시에 배열의 크기만큼 메모리가 할당 되지만,
객체 배열의 경우엔 요소가 되는 객체의 주소가 들어갈(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개 카피해라

내용과 참조값까지 그대로 복사한다. 

 

반응형

'DEVELOPER > 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