ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [자바기초] 배열 | 객체 배열 사용하기
    º Language º/Java 2023. 3. 7. 16:16

    # 객체 배열이 뭐야?

     

    - 배열 안에 객체 인스턴스가 담겨 있는 것

    - 참조 자료형을 선언하는 객체 배열

     

     

    # 객체 배열 만들기

     

    1.  배열만 생성한 경우 요소는 null로 초기화 됨

    2. 각 요소는 new를 활용하여 생성한 후 저장해야 함

     

     

    코드예시

    객체 배열 기본 코드

    > library[0] = new Book("",""); 와 같은 코드입력이 없으면 값이 null 값으로 나옴 

     

     

    각각의 메모리 공간 주소

    library[0] library[1] library[2] library[3] library[4]

                      ↓                                     ↓                                 ↓                                   ↓                                   ↓

    태백산맥
    조정래 
    데미안
    헤르만 헤세
    어떻게 살 것인가
    유시민
     토지
     박경리
    어린왕자
    생첵쥐페리

    >  메모리 공간 주소(객체) 안에 각각의 정보(인스턴스)를 입력할 수 있음. 이는 각  주소마다 꼭 1권의 책이라고 이해하기 보다 각 주소마다 원하는 만큼의 정보를 넣어 놓은 것이라고 이해해야 함.

     

     

     

    # 배열 복사하기

     

    - 기존 배열과 같은 배열을 만들었거나 배열이 꽉 찬 경우 더 큰 배열을 만들고 기존 배열 자료를 복사할 수 있다.

     

    System.arraycopy(src,srcPos,dest,desrPos,length);

     

    매개 변수 설명
    src 복사할 배열
    srcPos 복사할 배열의 첫 위치
    dest 붙여 넣을 대상 배열
    destPos 대상 배열에 붙여 넣기를 시작할 첫 위치
    length  src에서 dest로 자료를 복사할 요소 개수

     

     

    # 객체 배열 복사하기

     

    -  얕은 복사 : 배열 요소의 주소만 복사 되므로 배열 요소가 변경되면 복사된 배열의 값도 변경 됨

     

    코드예시

     

    결과 값

    배열 얕은 복사 결과 값

     

     

    - 깊은 복사 : 서로 다른 인스턴스의 메모리를 요소로 가지게 됨

     

    코드예시

     

    결과 값

    배열 깊은 복사 결과 값

     

     

    # 향상된 for문 (enhanced for loop)

     

    - 배열 요소의 처음부터 끝까지 모든 요소를 참조할 때 편리한 반복문

     

    for(변수 : 배열) {
         반복 실행문;
    }

    향상된 for문 코드예시

     

    > 위의 향상 된 for문은 객체 배열 혹은 기본 정수 배열에서도 가능 함.

    int[] arr = {1,2,3,4,5};
    	
    	for(int num : arr) {
    		System.out.println(num);
    	}

     

Coder yein