<목차>
(배열 만드는 방법)
ㅇ 배열 선언 후, 값 넣기
ㅇ 배열 선언과 동시에 값 넣기
ㅇ 배열 선언 퀴즈
- 배열 만들다 보면 많은 에러를 보게 될 거야. 해결 방법 같이 뜨니까 그거 보면서 해결해
ㅇ 배열 만드는 방법 1 : 선언 후, 값 넣기
ㅇ 배열 선언하는 법
ㅇ 배열 만들 때 조건
- 배열 안에는 동일한 자료형만 들어갈 수 있다.
- 배열은 길이를 지정하고 나서 값을 넣어야 한다. (무조건 길이가 있어야 한다.)
- 배열은 변수의 이름을 선언하는 곳이 아닌 값을 할당하는 부분에 길이를 넣어야 한다.
ㅇ 배열 선언
↓ 대괄호는 배열을 의미
데이터타입[ ] 변수명 = new 데이터타입[배열크기];
↑ new는 새로 만들겠다.를 의미
예) int[] array = new int[5];
변수명 array인 길이 5인 배열 생성
- 오른쪽 먼저 (값을 할당)
- new int[5]; : 5칸짜리 정수형 배열 새로 만들겠다
- 이걸 보고 램이 자리를 창출
- 인덱스는 0 부터

- 그다음 왼쪽(변수 선언)에 대입연산자 : 이걸 array에 넣겠다.
- array에 배열이 통째로 들어가는 게 아니라
- array가 이 배열의 주소를 갖겠다!

- 선언하는 부분과 값 할당하는 부분 나눠 쓰는 것 가능
- int[] array; -> 배열 선언
- array = new int[10]; -> 주소 할당 (?)
- 콜 바이 밸류 : 기본 변수들은 변수 안에 값 자체가 들어갔었는데
콜 바이 레퍼런스 : 레퍼런스 자료형은 주소를 가지고 있어
ㅇ 배열에 대한 레퍼런스 변수 선언의 다른 방법

- 변수명 뒤에 넣어도 상관없긴 해. 이 변수는 배열이구나
- 근데 보통 int 뒤에 넣어. 변수명 뒤에 넣으면 배열임을 맨 마지막에 알게 되니까
ㅇ 배열에 값 집어넣기
array[인덱스] = 값;
- 만약 길이를 넘어가면?
- 값을 넘었는데 빨간 줄은 안 나
- 근데 실행하면 에러 나 : 메인에서 익셉션이 발생했다.
- 배열은 주소를 가지고 있는 거라서 컴파일러가 실행했을 때, 길이가 얼마인지 모르는 상태에서 코드를 실행하기 시작
- 실제로 타고 가봐야만 알 수 있는 거야 => 실행해봐야만 알아
- array[5]=600; 을 보고 주소를 찾아서 5번째 가려고 하는 순간 공간이 없으니 에러

ㅇ 배열 만드는 방법 2 : 선언과 동시에 값 넣기
- 이 전에는 배열 만들어 두고, 하나씩 값을 넣었어
- 이번엔 배열을 만들면서 값을 넣는 방법

- 중괄호 사용해서 바로 만들 수 있어
- 꺼내거나 내용을 바꾸는 건 같아
- 상황에 맞춰서 사용
- 1번은 배열의 길이를 아는데 내용물은 모를 때
- 2번은 길이와 내용물까지 다 알 때
(6월 8일)
ㅇ 올바른 배열 선언 찾기
: 다음 배열 선언 중에서 올바른 배열 선언 문장 찾기

1. ⓧ : 변수명 없어 / 서로 자료형 달라 / 소괄호가 아니라 대괄호
2. ⓧ : 오른쪽에 avg가 아니라 int 자료형을 써 줘야 해 ( 내가 자주 하는 실수 )
3. ⓧ : 왼쪽에 숫자 있으면 안 돼. 배열 선언에서 크기 정할 수 없다. / 4 뒤에 컴마하고 뒤에 비워져 있으면 안 돼
4. ⓧ : 앞의 배열 선언은 괜찮아. / 오른쪽에 길이가 없어
5. ⓧ : 맨 오른쪽에 소괄호 쓰면 안 돼
6. ⓞ
7. ⓞ
8. ⓧ : 배열 선언할 때는 크기를 줄 수 없다.