안녕하세요 디코더입니다.
최근 나름의 일이 바빴던 관계로 업로드를 하지 못했었네요 ^^;;;
ㅎㅎㅎ;;;;
중략을 하고 시작을 하겠습니다.
-----------------------------------------------------------------------------------------------------------------------------------
--예제 출저: 이것이 자바다 - (저자: 신용권)
1) new 연산자로 배열 생성
예제를 통해 우선 알아보겠습니다.
각각의 배열들의 타입은 int형 double형, String형의 타입을 가지고 있습니다.
그런데 특이한 점이 있죠?
바로 new 연산자 뒤에 배열의 타입과 []사이에 숫자가 들어가 있는데요.
이 숫자는 무엇을 의미하는 것일까요?
바로 배열의 길이를 의미합니다.
보시다시피 배열의 선언 후 값의 초기화가 없다면, 해당 배열들의 초기값은
각각의 타입을 따라갑니다.
int형은 0, double형은 0.0, String타입은 null로 표기가 됩니다.
만일 정해진 배열의 길이보다 높은 index의 위치에 값이 선언이 된다면 어떤 Exception이 발생할까요?
같은 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 필드는 그 쓰임이 유용합니다.
예제를 통해 그 쓰임을 알아보겠습니다.
코드를 보시면 충분히 이해가 가능한 코드라고 생각합니다.
ㅎㅎ;;;;
(중략)
'Java' 카테고리의 다른 글
5)데이터 타입 - 배열,열거타입,String 타입(1부) (0) | 2019.02.18 |
---|---|
데이터 타입(참조타입)-메모리 사용 영역 (0) | 2019.02.12 |
1.변수와 타입(2)- 실수타입, 논리타입, 문자형 리터럴, 상수 (0) | 2019.01.30 |
1.변수(2)-데이터타입(기본형 - 정수형) (0) | 2019.01.28 |
1.변수(1)-- 변수의 선언과 초기화, 할당 (0) | 2019.01.28 |