본문 바로가기
교육/Java

JAVA 개발자 수업 14일차

by yhyuk 2021. 4. 15.
728x90
반응형

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 ...)을 잘 사용하면 할수록 잘 쓸 수있다!

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

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

728x90
반응형

'교육 > Java' 카테고리의 다른 글

JAVA 개발자 수업 16일차  (0) 2021.04.19
JAVA 개발자 수업 15일차  (0) 2021.04.18
JAVA 개발자 수업 13일차  (0) 2021.04.14
JAVA 개발자 수업 12일차  (0) 2021.04.13
JAVA 개발자 수업 11일차  (0) 2021.04.12

댓글