본문 바로가기
IT/JAVA

[Java]배열 Array (RDT 배열)

by 행복한 용용이 2020. 8. 10.
반응형

3-2. RDT 배열

 

형식)

 

        a. 선언

             접근제어자 RDT[] 배열명    or     접근제어자 RDT 배열명[]

 

        예)

             public String[] str;       or      public String str[];

             Car car[];

 

 

        b. 생성

             배열명 = new RDT[길이];      // 배열은 초기 길이를 정해야한다.

 

        예)

             str = new String[3];

             car = new Car[5];

 

        >>>>>>>>>>>a, b 동시에

             접근제어자 RDT 배열명[] = new RDT[길이];

             public String str[] = new String[3];

             Car car[] = new Car[5];

 

 

        c. 사용

             배열명[index] = 주소값(reference); >> [new RDT();]

 

        예)

             str[0] = "hello";

             str[1] = "java";

             str[2] = new String("!!!");

 

             car[0] = new Car();

             .

             .

             car[4] = new Car();


예제)

 

package com.kitri.array;

public class arraytest2 {

        public static void main(String[] args) {

               /*

               Car car[] = new Car[3];    // 3칸짜리 공간 만듦.

                                                // car가 가르킴>자동차를3대 저장할 수 잇는 공간. 이건 차가 안에 없음

                                               // 생성자를 호출한 것이 아니라 그냥 3개의 빈칸을 만든 것.

       

               System.out.println(car[0].getCarName());     //null pointer exception : car[0]이 0인데 어떻게 참조하냐?

                                                                       //차가 안에 없는데 어떻게 0번째차라는 것이 있느냐?

                                                                       //NULLpointer exception: . 앞의 것이 null이라는 것

               */

 

               Car car[] = new Car[6]//6칸짜리 빈공간만들고

               car[0] = new Car("쏘나타","검정색","현대");

               car[1] = new Car("K5","흰색","기아");

               car[2] = new Car("SM5","은색","삼성");

               car[3] = new Car("아반떼","흰색","현대");

               car[4] = new Car("니어로","비둘기색","기아")//빈공간에 생성자 이용해 차 생성

               car[5] = new Car("싼타페","검정색","현대");

 

               int len = car.length;

               for (int i=0; i<len; i++)

                      System.out.println(i+1+"번째구역 : "+car[i]);

 

               /*

               //비둘기색 니어로(기아)는 5번째에 있습니다.

               String name = "니어로";

               for (int i=0; i<len; i++) {

                      if (name.equals(car[i].getCarName())) {  //문자열은 ==비교말고 equals로 비교!!!!

                      int j=i+1;

                      System.out.println(car[i].getColor()+" "+car[i].getCarName()+ "("+car[i].getMaker()+")"+"는 "+j+"번째에 있습니다.");

                      break;    //꼭 break 넣기!

               }

        }

        */

       

        //QM5는 없습니다.

        String name="QM5";

        Car findcar = null;

        int count=0;

        for (int i=0; i<len; i++) {

               if (name.equals(car[i].getCarName())) {

                      findcar = car[i];

                      count = i+1;

                      break;

               }

        }

        if (findcar!=null) {   //꼭 ==으로 해야함. =는 왜 안되는걸까?

               System.out.println(findcar.getColor()+" "+findcar.getCarName()+ "("+findcar.getMaker()+")"+"는 "+count+"번째에 있습니다.");

        }else {

               System.out.println(name+"는 없습니다");

        }

    }

}

 


RDT 예제)

 

package com.kitri.array;

//Class이름에 Dto,나 Vo 붙인다.

//Dto: Data Transfer Object 데이터 보내주는객체/일반적 DTO는 생성자 default값만 갖음

//Vo: Value Object 값이 들어있는 객체

//Bean: 껍데기

 

public class PlayerDto //야구게임 643

 

        //항상 private. 외부에서 접근하는거 안좋음.

        private int number;   //등번호

        private String name//선수이름

        private int position//선수

        position private double grade//야구선수마다의 성적

        private String positionStr[] = {"지명타자","투수","포수","1루수","2루수","3루수","유격수","좌익수","중견수","우익수"};

        public PlayerDto(int number, String name, int position, double grade) {

               super();

               this.number = number;

               this.name = name;

               this.position = position;

               this.grade = grade;

        }

 

        public int getNumber() {

               return number;

        }

 

        public void setNumber(int number) {

               this.number = number;

        }

 

        public String getName() {

               return name;

        }

 

        public void setName(String name) {

               this.name = name;

        }

 

        public int getPosition() {

               return position;

        }

 

        public void setPosition(int position) {

               this.position= position;

        }

 

        public double getGrade() {

               return grade;

        }

 

        public void setGrade(double grade) {

               this.grade = grade;

        }

 

        @Override

        public String toString() {

               return "PlayerDto [등번호=" + number + ",\t선수명=" + name + ",\t포지션=" + positionStr[position] + ",\t" + (position!=1 ? "타율":"방어율") + "]";

        }

}

 

 

package com.kitri.array;

//지명타자, 투수, 포수, 1루수, 2루수, 3루수, 유격수,좌익수, 중견수, 우익수

//타율, 방어율

 

public class PlayerTeam {

        public static void main(String[] args) {

               PlayerDto player[] = new PlayerDto[5];

 

               PlayerDto p1 = new PlayerDto(24,"오재원",4,0.321);

               PlayerDto p2 = new PlayerDto(13,"허경민",5,0.351);

               PlayerDto p3 = new PlayerDto(34,"린드블럼",1,0.001);

               PlayerDto p4 = new PlayerDto(9,"페르난데스",3,0.421);

               PlayerDto p5 = new PlayerDto(38,"김대한",7,0.384);

              

               player[0]=p1;

               player[1]=p2;

               player[2]=p3;

               player[3]=p4;

               player[4]=p5;

 

               int len = player.length;

               for (int i = 0; i < len; i++) {

                      System.out.println(player[i]);

               }

        }

}

 

[출처] 빡쏘끼룩

 

반응형

'IT > JAVA' 카테고리의 다른 글

[Java] java.lang - String  (0) 2020.08.19
[Java]Array 활용 - 야구게임  (0) 2020.08.12
[Java]배열 Array (기본DT 배열)  (0) 2020.08.04
[Java] java.lang - Wrapper Class / Autoboxing  (0) 2020.08.03
[Java]Package-예제  (0) 2020.08.02