춘식이왔엉 2022. 4. 1. 00:31

* 대전제*

자바의 배열(객체)은, 한번 생성하면
            (1) 크기(길이) 와 (2) 원소의 타입을 
변경할 수가 없다!!!!

 

배열의 장점

-중복된 변수 선언 줄이기 위해 사용

-반복문 이용해 요소들을 쉽게 처리

 

*배열 선언

- 배열을 사용하기 위해 우선 배열 변수 선언

--> 데이터타입[] 변수

 

- 배열 변수는 참조 변수

--> 배열 생선되기 전 null로 초기화 가능

--> 배열 변수가 null 값을 가진 상태에서 항목에 접근 불가

 

 

*값 목록으로 배열 생성하는 방법

 

 

*new 연산자로 배열 생성 

- 배열 생성시 값 목록을 가지고 있지 않음

- 향후 값들을 저장할 배열을 미리 생성하고 싶을 경우

 

 

*배열의 길이

- 배열에 저장할 수 있는 전체 항목 수

--> 배열변수.length

int[] intArray = {10, 20, 30};
int num = intArray.length;

- 배열의 길이는 읽기 전용

- 배열의 길이는 for문의 조건식에서 주로 사용

 

 

*다차원 배열

- 2차원 배열 이상의 배열

- 자바는 1차원 배열을 이용해 2차원 배열 구현

 

 

 

🥑예제

int타입 배열 변수의 모든 원소를 출력하는 3가지 방법을 알아보자.

 

먼저, 메인 메소드를 선언하고

int[] intArray = {1, 2, 3, 4, 5, 6, 7};  --> int타입 배열변수를 초기화한다.

 

1. for문을 이용

 

2. 향상된 for문을 이용

for문에 초기화식/조건식/증감식이 아닌, 

배열의 원소를 뜻하는 element 와 변수명 을 이용한다.

--> for( int element : intArray ) 

여기서 주의할 점은, 출력문에 intArray가 아닌 element를 넣어야 한다.

 

3. Arrays.toString(변수) 이용

--> 대괄호까지 예쁘게 만들어진다.

 

 

 

🥑예제

for문을 이용해 배열 원소들의 합을 구해보자.

 

(참고)

(점수가) 83, 90, 87의 정수 목록을 가지는 배열변수를 선언하고 초기화 할 때,

정석은 int[] scores = new int[] {83, 90, 87};  이다.

이걸 줄여서 int[] scores = {83, 90, 87}; 로 쓸 수 있다.

하지만, 선언과 초기화를 따로 할 때는 초기화문에 new int[]를 붙이지 않으면 오류가 발생한다.

 

add 메소드

매개값으로 배열을 받아서,

배열의 항목을 다 더한 후에, 그 값을 리턴하는 메소드.

 

먼저, main메소드 바깥에서

add의 매개변수로 (int[] scores); 이라는 배열변수를 선언.

for문을 작성하고 sum의 값을 return한다. 

 

이 때, 매개변수 scores에 배열객체를 대입해주기 위해

main메소드 안으로 들어와 배열객체를 생성한다.

--> int sum2 = add( new int[] {83, 90, 87} ); 

 

생성된 배열객체들은 scores에 대입되어 sum의 값이 나오게 된다.

여기서 나온 sum의 값은 main메소드의 sum2에 저장된다.  

 

 

🥑예제

값 목록 없이 배열을 먼저 생성한 후, 배열의 원소 값을 변경해보자.

int 타입
double 타입
문자열 타입

 

 

🥑예제

2차원 배열 생성과 값 출력하기