본문 바로가기
인천일보아카데미/- 학습일지

[학습일지]JAVA교육일지 25일차

by w1z 2022. 6. 8.

1. 다차원 배열(Array)

  • 2,3차 배열
  • 배열 초기화 리스트
  • 2차 배열 5x5 만들기 

2. 클래스(Class)

  • 클래스 사용 이유?
  • 클래스 사용 
  • 배열과 클래스의 차이점

1. 다차원 배열(Array)

  (1) 2,3차 배열

   - 2차원 배열 

int[][] arr = new int[2][3]; // 2x3 => 6개의 방[] 생성

arr[0][0] = 10;
arr[0][1] = 20;
arr[0][2] = 30;

arr[1][0] = 40;
arr[1][1] = 50;
arr[1][2] = 60;

//2차원 배열 -> 2중 for문
for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr[i].length; j++) {
    	System.out.printf("%5d",arr[i][j]);
    }
}


//output
---> 10  20  30   
     40  50  60     

   

   - 3차원 배열

int[][][] arr = new int[2][3][2]; // 2x3x4 = 24개 방[] 생성

arr[0][0][0] = 10;
arr[0][0][1] = 20;
arr[0][0][2] = 30;
arr[0][0][3] = 40;

arr[0][1][0] = 50;
arr[0][1][1] = 60;
arr[0][1][2] = 70;
arr[0][1][3] = 80;

arr[0][2][0] = 90;
arr[0][2][1] = 100;
arr[0][2][2] = 110;
arr[0][2][3] = 120;

arr[1][0][0] = 130;
arr[1][0][1] = 140;
arr[1][0][2] = 150;
arr[1][0][3] = 160;

arr[1][1][0] = 170;
arr[1][1][1] = 180;
arr[1][1][2] = 190;
arr[1][1][3] = 200;

arr[1][2][0] = 210;
arr[1][2][1] = 220;
arr[1][2][2] = 230;
arr[1][2][3] = 240;

//3차원 배열 -> 3중 for문
for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr[i].length; j++ {
    	for(int k=0; k<arr[i][j].length; k++ {
        	System.out.printf("%5d", arr[i][j][k];
		}
        System.out.println();
    }
    System.out.println();
}

//output
----> 10   20   30   40
      50   60   70   80
      90  100  110  120

     130  140  150  160
     170  180  190  200
     210  220  230  240

 

  (2) 배열 초기화 리스트

//1차원 배열
int[] num1 = new int[] {10,20,30,40,50};
		
//2차원 배열 (2x3)
int[][] num2 = new int[][] {{10,20,30}, {40,50,60}}; 
		
//3차원 배열 (2x3x4)													
int[][][] num3 = new int[][][] {{{10,20,30,40}, {10,20,30,40}, {10,20,30,40}},
					{{10,20,30,40}, {10,20,30,40}, {10,20,30,40}}, 
					{{10,20,30,40}, {10,20,30,40}, {10,20,30,40}}};	

 

  (3) 2차 배열 5x5 만들기 

int[][] arr = new int[5][5];

int n = 1;

//5x5 방에 1부터25까지 숫자 넣기
for(int i=0; i<arr.length; i++) {
	for(int j=0; j<arr[i].length; j++) {
    	arr[i][j] = n;
        n++;
        System.out.printf("%3d", arr[i][j]);
    }
}


//output
---->  1  2  3  4  5
       6  7  8  9 10
      11 12 13 14 15
      16 17 18 19 20
      21 22 23 24 25

 

2. 클래스(Class)

  (1) 클래스 사용 이유?

   - 클래스(Class) : 코드의 집합

   - 데이터 집합의 필요성

   - 행동 집합의 필요성

   - 데이터 + 행동 집합의 필요성

 

  (2) 클래스 사용

   - 클래스 선언하기(정의) --> 객체 생성하기 --> 객체 사용하기

   - 형식)

class Test { //클래스 헤더 --> 식별자 + 규칙정의
	
    // 클래스 바디 -> 구현부
    // 클래스 멤버를 구현한다.
    // - 멤버 변수
    // - 멤버 메소드
    
	int a; //멤버 변수
    
    public static void test() { //멤버 메소드
    
    }
}

 

  (3) 배열과 클래스의 차이점

   - 배열 : 같은 자료형 + 같은 의미

   - 클래스 : 다른 자료형(다른의미) + 하나의 집합(각각의 다른 데이터가 결론적으로 목적이 같음)

   - 예시)

//예시1
지도의 좌표를 저장하고 싶다? --> 클래스

//예시2
학생의 국어점수를 저장하고 싶다? --> 배열

//예시3
학생의 정보를 저장하고 싶다(학생정보 : 이름, 키, 몸무게)? --> 클래스

MEMO>

# 다차원 배열은 아파트, 단지, 동, 호수로 생각하면 이해가 편하다

# 다차원 배열은 어렵지만, 1차원 배열을 잘 이해한다면 이해하기 쉽다.

# 공부량 : 다차원배열 <<<< 1차원 배열

# 배열은 제어문(for,while,if ...)을 잘 사용하면 할수록 잘 쓸 수있다!

# 배열과 클래스는 비슷하지만 다른점이 있으며 그 다른점을 잘 파악해서 선택을 잘하자!

# 클래스는 매우 어렵다. 조급해 하지말고 천천히 이해하자