자바의 정석 기초편 ch5-1~3 배열의 생성과 선언, 배열의 인덱스
5-1 배열이란?
배열은 같은 타입의 여러 변수를 하나의 묶음으로 다루는 것

int[] score = new int[5];
저장공간이 5개가 생긴다.
저장공간에 이름이 없다.
왜냐하면 변수처럼 저장공간에 이름을 하나씩 주는게 불편해서
배열을 쓰는건데 배열에도 하나씩 이름을 주면 뭐가 다른가?
대신 자동으로 번호가 붙는다.
0,1,2,3,4,5 < 배열의 인덱스라고 한다.
배열을 다루려면 참조변수가 필요하다.
각 저장공간에 이름 붙이는 대신 참조변수에 이름을 붙이고
참조변수를 통해서 이 저장공간을 다룬다.
이 저장공간을 어떻게 사용하냐면
참조변수의 이름 + 저장공간의 인덱스 = score[0]
score[0]는 자동으로 붙여진다.
변수는 저장공간이 떨어져 있다.(물론 붙어있을 수도 있다.)
배열은 저장공간이 연속적이다.
5-2 배열의 선언과 생성
배열의 선언 - 배열을 다루기 위한 참조변수의 선언
선언하고 생성까지 해야 실제 저장공간이 만들어진다.

변수는 선언하는 순간 저장공간이 만들어짐
배열은 선언하면 배열의 저장공간이 만들어지는 것이 아닌
배열을 다루기 위한 참조변수가 만들어지는 것이다.
배열 선언
1, 2번 상관 없지만
타입[] 변수이름; 으로 쓰자
배열 기호가 타입의 일부라고 보기 때문에 1번을 더 선호한다.
-> 화살표 의미
참조변수하고 배열하고 서로 연결되었다는 것을 의미
참조변수가 배열을 가르키고 있다.
score = new int[5];
int 배열의 주소를 score 저장
5-3 배열의 인덱스
배열의 인덱스 - 각 요소에 자동으로 붙는 번호
요소: 저장공간, 번호: 일련번호, 인덱스
인덱스의 범위는 0부터 '배열길이-1'까지
-1하는 이유는 인덱스가 0부터 시작하니까 빼는것이다.

자동으로 붙여진 (이름)score[3]을 통해서
저장공간을 변수처럼 사용하는 것이다.
score[3] = 100;
값을 저장하고 출력해보면
score[3]만 100이 나온다.
import java.util.Scanner;
public class lnterfaceEx {
public static void main(String[] args){
int[] score = new int[5]; //배열의 선언과 생성을 동시에
score[3] = 100;
System.out.println("score[0] = "+score[0]);
System.out.println("score[1] = "+score[1]);
System.out.println("score[2] = "+score[2]);
System.out.println("score[3] = "+score[3]);
System.out.println("score[4] = "+score[4]);
}
}
결과
score[0] = 0
score[1] = 0
score[2] = 0
score[3] = 100
score[4] = 0