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 |