Web/MSA Full-Stack 과정

Kosta Day9 : 정렬 / 2차원 배열 / CRUD 실습

ERE 2022. 1. 26. 15:24

datatype 배열이름 [][] = new datatype[행][열]

 

datatype 배열이름 [][] = {

   {값, 값,,....},

   {값, 값,,,.. },

   ....

};

 

ex)

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

 

*값 변경

 arr[1][2] = 20;

 

*배열이름.length => ex) arr.length => 3

  (행의 길이)

 

*배열의 이름 [index].length => arr[1].length => 5

 (index에 해당하는 열의 길이)

         
         
         

=================================================================================

*가변형 2차원 배열

 : 각 행마다 열의 개수를 다르게 만들수 있다. (배열 공간을 좀 더 효율적으로 관리)

 

-선언방법

 데이터타입[][] 배열이름 = new 데이터타입 [행][]; //행은 생략할 수 없고 열을 비워둔다. 

*각 행마다 열을 생성한다. (1차원배열)

 

ex)int[][] arr = new int[3][];

arr[0] = new int [5];

arr[1] = new int [2];

arr[2] = new int [3];

 

arr.length => 3

arr[0].length => 5

arr[1].length => 2

arr[2].length => 3

 

ex) 2차원 가변형 배열을 선언과 동시에 명시적초기화 (개발자가 직접 값을 초기화)

  int[][]arr = new int[][]{

   {1,3,5},

   {2,4,6,8,10},

   {1,2,3,4,5,6,7,8},

   {9,6},

 };

 

 

- 배열 실습예제

: 상품을 저장하고 관리하는 기능 구현

  - 상품의 정보 (상품코드, 상품이름, 가격, 설명)

   1) 등록 : 상품코드는 중복안됨!! 

   2) 전체검색

   3) 상품코드에 해당하는 상품 검색

   4) 상품정보수정(가격, 설명 만 수정한다) : 상품코드에 해당하는 상품의 가격과 설명수정

   5) 상품삭제 : 배열에서 어렵다!!  -> 배열은 사이즈 변경이 안된다. 

 

 *CRUD 작업한다 !! 

   CREATE, READ, UPDATE, DELETE

 

  - 조건

  : 키보드 입력을 받아서 프로그램이 계속 실행 될 수 있도록.. 

  : 클래스를 분리 

  1) 상품의 속성을 관리(조회,변경)하는 객체 : Goods.java

      상품코드, 상품이름, 가격, 설명 + setXxxx(), getXXX()

 

  2) 등록, 전체검색, 부분검색, 수정, 삭제 ,,, : B/L

    : GoodService.java

 

  3) 기능의 결과를 출력하는 클래스 

    : EndView.java

 

   4) main메소드를 가지고 있는 클래스 : 시작점 클래스  

    : StartView.java

   

   5) main 메소드를 가지고 있는 클래스 : 시작점 클래스 

    : StartView.java

 

    : 2차원 배열을 준비해서 5개의 상품을 초기치 데이터 활용한다 !!!

     상품1 : A01, 새우깡, 2500, 짜고 맛나다. 

     상품2 : A02, 콘칩, 3500, 고소하다. 

     상품3 : A03, 허니버터칩, 1500, 달콤하다. 

 

      ex)

          String [][] data = new String[][]{

                 {"A01", "새우깡", "2500", "짜고맛나다." }, -->   Goods

                 {"A01", "새우깡", "2500", "짜고맛나다." }, -->   Goods

                   {"A01", "새우깡", "2500", "짜고맛나다." }, -->   Goods

        }

 

 

 * Goods 전체구조 

 

 어떤게 파라미터로 들어가서,, 어떻게 출력을 할것인지 집중하는게 중요하다 !! 

 코딩을 할때에는 뒤부터 만들어 온다. 

 그리고, 공통으로 사용하는 것부터 만들고 -> Goods -> Service이런 순으로 ,,