23-04-26
참조타입의 배열 선언
클래스란 ? = Object
클래스= 객체 = 타입 = 참조타입
클래스 라고 선언하는 것들은 자바에서 타입이될수 있다. 다만, 모든 타입은 클래스가 아니다.
// 원시타입(int, float, double) Primitive Type은 클래스가 아니다
//참조타입만 클래스에 해당한다.
- 여러타입의 배열 선언
int[] iArr; // 원시 타입 int 타입 배열 선언
float[] fArr; // 원시 타입 float 타입 배열 선언
double[] dArr; // 원시 타입 double 타입 배열 선언
char[] cArr; // 원시 타입 char 타입 배열 선언
String[] sArr; // 참조 타입 String 타입 배열 선언
Scanner[] scArr; // 참조 타입 Scanner 타입 배열 선언
PrintHello[] phArr; // 참조 타입 PrintHello 타입 배열 선언
int[][] iArrArr; // 참조 타입 int[] 타입 배열 선언
//에러 → 다시 작성해보기
package week2.day8;
public class ReferenceTypeArray {
public static void main(String[] args) {
Student[] students = new Student[2]; //.배열의 초기화
students[0] = new Student(); //Student 클래스의 초기화
students[0].name = "김경록";
students[0].phoneNumber = "010-1111-2222";
students[0].age = "37";
students[1].name = "김지유";
students[1].phoneNumber = "010-2222-3333";
students[1].age = "20";
class Student {
String name;
String phoneNumber;
int age;
}
}
}
2차원 배열
: 행과 열로 이루어진 테이블

- 2차원 배열을 선언하는 방법
: 배열의 배열
타입 뒤에 → [ ][ ]대괄호를 두개 붙이면(int[ ][ ]) 2차원 배열이 된다. 3차원(int[ ][ ][ ]), 4차원(int[ ][ ][ ][ ]) 배열
2차원 배열 선언 방법: 타입[][] 변수명 = new 타입[개수1][개수2];
3*3 형태의 2차원 배열 : int[][] arr = new int[3][3];
결과)

예제)
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
System.out.println(Arrays.toString(arr[2]));
//출력
[0, 0, 0]
[0, 0, 0]
[0, 0, 0]
예제) 10*10 2차원 배열
import java.util.Arrays;
public class TenxTen {
public static void main(String[] args) {
int[][] arr10x10 = new int[10][10]; // 배열 선언과 초기화
System.out.println(Arrays.toString(arr10x10[0]));
System.out.println(Arrays.toString(arr10x10[1]));
System.out.println(Arrays.toString(arr10x10[2]));
System.out.println(Arrays.toString(arr10x10[3]));
System.out.println(Arrays.toString(arr10x10[4]));
System.out.println(Arrays.toString(arr10x10[5]));
System.out.println(Arrays.toString(arr10x10[6]));
System.out.println(Arrays.toString(arr10x10[7]));
System.out.println(Arrays.toString(arr10x10[8]));
System.out.println(Arrays.toString(arr10x10[9]));
}
}
// 실행 결과
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
예제) 10*10 크기의 int 타입의 2차원 배열 선언, 반복문 이용 (위에랑 같은 결과가 출력되지만 반복문을 이용함)
import java.util.Arrays;
public class TenxTenFor {
public static void main(String[] args) {
int[][] arr10x10 = new int[10][10];
for (int i = 0; i < 10; i++) {
System.out.println(Arrays.toString(arr10x10[i]));
}
}
//실행결과
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0, 0, 0, 0]
예제) 2차원 배열의 보기 좋은 형태 나열하기
import java.util.Arrays;
public class ArrayDefineAndAssign {
public static void main(String[] args) {
int[][] arr2 = {
{10, 20, 30},
{40, 50, 60},
{70, 80, 90}
};
System.out.println(Arrays.toString(arr2[0]));
System.out.println(Arrays.toString(arr2[1]));
System.out.println(Arrays.toString(arr2[2]));
}
}
//실행결과
[10, 20, 30]
[40, 50, 60]
[70, 80, 90]
예제 ) 2차원 배열 값에 접근하기 }int[] arr = new int[3]; arr[0] = 1; System.out.println(arr[0]); 앞에서
int[] arr = new int[3];
arr[0] = 1;
System.out.println(arr[0]);
// 1출력
int[][] arr = new int[3][3];

예제) 2차원 배열 arr을 선언, 첫번째 0번 인덱스에 있는 첫번째 행을 선택해 1차원 배열 타입 변수에 넣은 후 첫번째 칸에 1을 할당한 후 출력
public class TwoDimArray {
public static void main(String[] args) {
int[][] arr = new int[3][3]; // 2차원 배열 선언
int[] arr0 = arr[0]; // 2차원 배열에서 배열을 꺼내 1차원 배열이 됨
arr0[0] = 1; // 1차원 배열인 arr0에서 첫번째 칸에 값을 할당
System.out.println(Arrays.toString(arr[0]));
System.out.println(Arrays.toString(arr[1]));
System.out.println(Arrays.toString(arr[2]));
연산자
- 연산자와 피연산자
연산: 수나 식을 정해 놓은 연산자의 규칙에 따라 계산하는 것이다. ( +, - ),
피연산자: 연산 수식 앞뒤로 있는 수를 피연산자라고 한다. 변수도 피연산자가 되어 연산을 할 수 있다.

연산자의 종류
(1) 산술 연산자(arithmetic operator) +, -, *, /, % 등이 있으며, 숫자형 데이터 타입에서 사용됩니다.
(2) 대입 연산자(assignment operator) =, +=, -=, *=, /= 등이 있으며, 변수에 값을 할당합니다.
(3) 증감 연산자(Increment/Decrement Operators) ++x, x++, --x, x-- 가 있습니다.
(4) 비교 연산자(comparison operator) <, >, <=, >=, ==, != 등이 있으며, 두 개의 값을 비교하여 결과를 논리값(boolean)으로 반환합니다.
(5) 논리 연산자(logical operator) &&, ||, ! 등이 있으며, 논리적인 연산을 수행하고 결과를 논리값(boolean)으로 반환합니다.
(6) 삼항 연산자(ternary operator) 조건식 ? 표현식1 : 표현식2 형태로 사용됩니다. 조건식이 참이면 표현식1을, 거짓이면 표현식2를 반환합니다.