본문 바로가기

Java

6)데이터 타입 - 배열,열거타입,String 타입(2부)

안녕하세요 디코더입니다.

최근 나름의 일이 바빴던 관계로 업로드를 하지 못했었네요 ^^;;;

ㅎㅎㅎ;;;;

 

중략을 하고 시작을 하겠습니다.

 

-----------------------------------------------------------------------------------------------------------------------------------

--예제 출저: 이것이 자바다 - (저자: 신용권)

1) new 연산자로 배열 생성

예제를 통해 우선 알아보겠습니다.

각각의 배열들의 타입은 int형 double형, String형의 타입을 가지고 있습니다.

그런데 특이한 점이 있죠?

바로 new 연산자 뒤에 배열의 타입과 []사이에 숫자가 들어가 있는데요.

이 숫자는 무엇을 의미하는 것일까요?

 

바로 배열의 길이를 의미합니다.

실행화면

보시다시피 배열의 선언 후 값의 초기화가 없다면, 해당 배열들의 초기값은 

각각의 타입을 따라갑니다.

int형은 0, double형은 0.0, String타입은 null로 표기가 됩니다.

 

만일 정해진 배열의 길이보다 높은 index의 위치에 값이 선언이 된다면 어떤 Exception이 발생할까요?

인트형 배열 arr1의 2번째 인덱스에 30의 값을 선언하여주었습니다.
arr1의 3번째 인덱스에 30의 값을 선언해주었을때 발생하는 예외

같은 30의 값을 넣어주었지만 3번째 인덱스에 선언된 배열은 예외가 발생하였습니다

console창을 확인하여 보니 ArrayIndexOutOfBoundsException이 발생하였습니다.

해당 예외는 보통 배열의 길이보다 놓은 인덱스 자리에 값이 선언된 경우에 발생합니다.

그럼 배열 arr1의 길이를 확인해보겠습니다.

 

 

배열의 길이가 3으로 나오네요.

하지만 예외가 발생된 코드를 확인하여 보니 3번째 인덱스에 30의 값을 할당해주었는데

 

왜 예외가 발생한 것일까요?

그것은 배열의 인덱스는 0부터 시작하기 때문입니다.

비록 배열의 길이 자체는 0이지만

 

arr1의 배열의 길이가 3이란 이야기는

arr1[0], arr1[1], arr1[2] 까지만 할당이 가능하다는 이야기입니다.

--------------------------------------------------------------------------------------

2.배열의 길이

arr1뒤에 붙은 length란 코드에  대해서 설명을 하겠습니다.

 

legnth 필드는 그 쓰임이 매우 유용합니다.

다양한 쓰임을 가지고 있지만 한가지 예를 통해서 설명을 하겠습니다.

 

해당 코드는

배열변수.length로 출력이 가능하며 

배열의 길이를 출력하여 줍니다.

 

여기서 length 필드의 특징은 

length 필드는 읽기전용 필드이기 때문에 값을 바꿀 수가 없다는 것입니다.

 

length 필드는 그 쓰임이 유용합니다.

예제를 통해 그 쓰임을 알아보겠습니다.

코드를 보시면 충분히 이해가 가능한 코드라고 생각합니다.

 

ㅎㅎ;;;;

 

 

(중략)