오늘은 Java의 배열과 메소드에 대해서 공부했다.
먼저, 배열은 같은 자료형의 데이터 여러 개를 하나로 묶어놓은 것이다.
// 배열 선언하기
자료형[] 변수명 = new 자료형[크기];
자료형 변수명[] = new 자료형[크기];
// 배열의 특정 위치에 값 넣기
변수명[인덱스] = 값;
위와 같이 자료형과 변수명을 지정하고, 배열의 크기를 정해준 후에 내가 원하는 위치에 원하는 값을 넣어주면 된다.
이때, 인덱스는 항상 0부터 시작한다는 것을 고려해서 값을 넣어주어야 한다.
String[] names = new String[] {”A”, “B”, “C”};
혹은 위와 같이 배열을 선언함과 함께 값을 넣어줄 수도 있다.
앞서 배운 for 문을 활용해서 배열의 각 요소에 접근해줄 수 있다.
// 방법 ①
int[] numbers = {1, 2, 3, 4, 5};
for (int i=0; i < numbers.length; i++) {
System.out.println(numbers[i]);
}
// 방법 ②
int[] numbers = {1, 2, 3, 4, 5};
for (int i : numbers) {
System.out.println(i); // i로 작성하면 헷갈릴 수 있기 때문에, i에 number과 같은 새로운 이름을 붙이기도 함
}
위와 같이 for문에 배열을 넣으면 배열의 각 요소를 순회하면서 원하는 명령을 진행할 수 있다.
또, 2차원 이상의 배열을 생성할 수도 있다.
// 다차원 배열 선언하기
자료형[][] 변수명 = new 자료형[세로][가로]
// 선언과 동시에 초기화하기
int[][] numbers = new int[][] {
{1, 2, 3, 4, 5}, // 세로 첫 번째 줄
{6, 7, 8, 9, 10} // 세로 두 번째 줄
};
일차원 배열은 가로로만 칸이 늘어난다면, 2차원 배열은 가로와 세로 칸 수를 지정해서 표와 같이 만들어줄 수 있는 것이다.
다차원 배열도 for문을 사용해서 순회를 할 수 있다.
for (int i=0; i < 세로; i++) { // 세로 숫자를 직접 입력하는 대신 `배열.length`로 입력하면 세로 길이로 설정됨
for (int j=0; j < 가로; j++) { // 가로 숫자를 직접 입력하는 대신 `배열[i].length`로 입력하면 i에 해당하는 배열의 길이, 즉 가로 길이가 설정됨
... // 배열[i][j]
}
}
위와 같이 중첩 반복문을 사용하면 되는데, 주석을 통해 작성한 것처럼 세로와 가로의 칸 수를 직접 입력하는 것이 아니라 배열.length를 통해서 지정해줄 수도 있다.
[접근제어자] [반환형] [메소드명]([전달값]) {
명령문1
명령문2
...
}
자바는 기본적으로 위와 같은 구문을 사용한다.
public static int add(int a, int b) { // a와 b 2개의 정수 값을 받음
return a + b; // a + b를 계산한 값을 정수형으로 반환해줌
}
public static void main(String[] args) {
int result = add(1, 2);
System.out.println("1 + 2 = " + result); // '1 + 2 = 3' 출력됨
}
메소드 실행의 결과를 반환받고 싶다면 '반환형' 위치에 원하는 자료형을 작성해준 뒤, 하단에 return을 통해 반환받고 싶은 내용을 지정하면 된다.
또, 메소드를 호출할 때 전달하고 싶은 값을 '전달값' 위치에 작성해주면 된다.
위 코드를 보면 윗쪽에서 add(int a, int b)를 통해 전달값과 메소드를 지정해주었고,
이로 인해 하단에서 result에 add(1, 2)와 같은 식을 사용할 수 있게 된 것이다.
자바를 사용할 때 변수를 지정해주는데, 변수는 선언된 영역 내에서만 사용된다.
public static void scope() {
int b = 20;
System.out.println(b); // 변수는 선언된 영역 내에서만 사용 가능
}
public static void main(String[] args) {
System.out.println(b); // 변수가 선언되지 않았기에 사용 불가
}
예를 들어, 위 코드에서는 윗쪽에서 변수 b가 선언되었지만, 해당하는 중괄호 안에서만 사용할 수 있고,
하단의 코드에서는 사용할 수 없게 된다.
public static void main(String[] args) {
int c = 30;
if (c > 10) {
int d = 40; // if 조건문 내에서 선언되었기 때문에 이 안에서만 사용 가능
System.out.println(d);
}
System.out.println(d); // 변수의 범위를 벗어났기 때문에 사용 불가
}
위와 같은 경우에도 변수 d는 선언된 if문 안에서만 사용이 가능하게 된다.
이외에도 자세한 내용은 노션을 통해 정리해두었다.
Notion 확인하기
오늘은 집중력의 한계로 많은 내용을 다루지는 못했다.
그래도 본캠프를 시작하면 자바를 전체적으로 한 번 더 다룬다고 한다.
그래서 남은 자바 내용들은 미래의 나에게 맡겨보려고 한다,,ㅎㅎ
본캠프에서는 SQL을 더 다루지는 않는다고 해서 내일은 다시 SQL을 훑어보고, 실습 문제들을 다시 풀어보려고 한다.