JAVA

[자바/JAVA] 프로그래밍 - 객체 배열(Object Array) 오류

21종 2023. 6. 12. 17:32

1. NullPointerException : 객체배열의 각 인덱스에 담긴 값이 null인 상태에서 메소드를 호훌하려고 했기 때문에 오류가 발생 

package com.kh.chap02_objectArray.run;

import com.kh.chap02_objectArray.model.vo.Phone;

public class WrongSample {

	public static void main(String[] args) {

		Phone[] arr = new Phone[3];	
		
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i].getName());
		}
	}
}


조치내용 => 객체배열을 만든 후 각 인덱스별로 객체 생성을 진행해야됨

package com.kh.chap02_objectArray.run;

import com.kh.chap02_objectArray.model.vo.Phone;

public class WrongSample {

	public static void main(String[] args) {

		Phone[] arr = new Phone[3];
		
		// -------- 1번째 문제의 조치내용 ----------- 
		arr[0] = new Phone();
		arr[1] = new Phone();
		arr[2] = new Phone();
		
		for(int i = 0; i < arr.length; i++) {
			System.out.println(arr[i].getName());
		}
	}
}

2. ArrayIndexOutOfBoundsException : 배열의 적절한 인덱스 범위를 벗어난 경우

package com.kh.chap02_objectArray.run;

import com.kh.chap02_objectArray.model.vo.Phone;

public class WrongSample {

	public static void main(String[] args) {

		Phone[] arr = new Phone[3];
		
		arr[0] = new Phone();
		arr[1] = new Phone();
		arr[2] = new Phone();
		
		for(int i = 0; i < arr.length+1; i++) {
			System.out.println(arr[i].getName());
		}
	}
}


조건식으로 i <= 배열의 길이라고 제시돼있음. 배열의 마지막 인덱스보다 큰 값이 제시 
조치내용 => 조건식 수정 (i < 배열의 길이)

package com.kh.chap02_objectArray.run;

import com.kh.chap02_objectArray.model.vo.Phone;

public class WrongSample {

	public static void main(String[] args) {

		Phone[] arr = new Phone[3];	// 배열만 !!!!
		
		arr[0] = new Phone();
		arr[1] = new Phone();
		arr[2] = new Phone();
		
		
		for(int i = 0; i < arr.length; i++) {	
        // 2번째 문제의 조치내용 i < arr.length +1 => i < arr.length
			System.out.println(arr[i].getName());
		}
	}
}