24_2. [강의] 객체배열
정보담을 class생성
public class UserVO {
private String name;
private int age;
private String phoneNum;
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getPhoneNum() {
return phoneNum;
}
public void setPhoneNum(String phoneNum) {
this.phoneNum = phoneNum;
}
public UserVO() {
super();
}
public UserVO(String name, int age, String phoneNum) {
super();
this.name = name;
this.age = age;
this.phoneNum = phoneNum;
}
@Override
public String toString() {
return "UserVO [name=" + name + ", age=" + age + ", phoneNum=" + phoneNum + "]";
}
}
1. 이름, 나이, 전화번호 3개의 사용자 정보를 담는 객체를 생성 = VO, 값을 처리하는 용도
2. 기본 생성자, 3개의 인자를 담는 생성자, getter/setter, toString. 각각 생성
★ 2번 단축키로 생성하는 방법 (생성자생성)
1. alt + shift + s
2. Generate XX 기능 활용
출력부분
import java.util.Arrays;
// 객체 배열!
public class ObjectArray {
public static void main(String[] args) {
UserVO[] userArray; // 초기화 안함
UserVO[] userArray1 = null;
UserVO[] userArray2 = new UserVO[10]; // 이게 표준적!
UserVO[] userArray3 = new UserVO[] {
new UserVO("홍길동", 26, "010-1234-5678"),
new UserVO("최길동", 33, "010-5555-5678"),
new UserVO("박길순", 32, "010-4321-5678"),
};
//[출력 1]
// 객체배열에서 객체 활용시 순서
// 1. 객체 배열 생성
// 2. 실제 사용 할 객체도 생성
userArray2[1] = new UserVO("이길동", 31, "010-5432-3313");
//인덱스 1에 ("이길동", 31, "010-5432-3313")저장.
System.out.println(userArray2[1].getName());
//저장된 이름 get으로 내보내기 => 이길동
System.out.println("----------------------------------------");
//[출력 2]
// 실제 활용하는 법
// 1. 반복문 없이 index로 생성하는 법
userArray2[0] = new UserVO("홍길동",31,"010-1213-3222");
userArray2[1] = new UserVO("박길동",24,"010-4122-3222");
System.out.println(userArray2[0].getName());
System.out.println(userArray2[1].getName());
//각각인덱스 0과 인덱스1에 저장
System.out.println("----------------------------------------");
//[출력 3]
// 2. 반복문에서 직접 생성하는 법
for(int i = 0; i< userArray2.length; i++) {
userArray2[i] = new UserVO("홍길동" + i, 23 + i, "010-1234-456" + (i % 10));
System.out.println(userArray2[i].toString());
}
System.out.println("----------------------------------------");
//[출력 4]
// 3. 반복문 내부에서 객체를 생성하고, 값 별로 초기화하여 생성하는 법
for(int i = 0; i<userArray2.length; i++) {
UserVO user = new UserVO();
user.setName("박길동" + i);
user.setAge(23 + i);
user.setPhoneNum("010-1234-456" + (i % 10));;
userArray2[i] = user;
System.out.println(userArray2[i].toString());
}
System.out.println("----------------------------------------");
//[출력 5]
// 순회하는 법
// 1. 일반 반복문 - i를 통해 인덱스를 봐야할때
for(int i =0; i<userArray2.length; i++) {
System.out.println(userArray2[i].toString());
}
System.out.println("----------------------------------------");
//[출력 6]
// 2. for each문법 Ver. - i가 필요없이 순회 할 때
// for(Type 변수명 : [배열이나 컬랙션]){ .... }
for(UserVO user : userArray2) {//userArray2의 객체를 user에 저장
System.out.println(user.toString());
}
System.out.println("----------------------------------------");
//[출력 7]
// 3. Arrays.toString + replace (가로를 세로 라인으로 바꾸기 위해)
// System.out.println(Arrays.toString(userArray2));
System.out.println(Arrays.toString(userArray2).replace("],", "],\n"));
System.out.println("----------------------------------------");
}
}
※ for(UserVO user : userArray2)
userArray2의 객체를 user에 저장
※ Arrays.toString()
배열 출력
※ .replace(A,B) -문자열 치환
A를 B로 변경한다
출력 결과
[출력 1]
이길동
[출력 2]
홍길동
박길동
[출력 3]
UserVO [name=홍길동0, age=23, phoneNum=010-1234-4560]
UserVO [name=홍길동1, age=24, phoneNum=010-1234-4561]
UserVO [name=홍길동2, age=25, phoneNum=010-1234-4562]
UserVO [name=홍길동3, age=26, phoneNum=010-1234-4563]
UserVO [name=홍길동4, age=27, phoneNum=010-1234-4564]
UserVO [name=홍길동5, age=28, phoneNum=010-1234-4565]
UserVO [name=홍길동6, age=29, phoneNum=010-1234-4566]
UserVO [name=홍길동7, age=30, phoneNum=010-1234-4567]
UserVO [name=홍길동8, age=31, phoneNum=010-1234-4568]
UserVO [name=홍길동9, age=32, phoneNum=010-1234-4569]
[출력 4]
UserVO [name=박길동0, age=23, phoneNum=010-1234-4560]
UserVO [name=박길동1, age=24, phoneNum=010-1234-4561]
UserVO [name=박길동2, age=25, phoneNum=010-1234-4562]
UserVO [name=박길동3, age=26, phoneNum=010-1234-4563]
UserVO [name=박길동4, age=27, phoneNum=010-1234-4564]
UserVO [name=박길동5, age=28, phoneNum=010-1234-4565]
UserVO [name=박길동6, age=29, phoneNum=010-1234-4566]
UserVO [name=박길동7, age=30, phoneNum=010-1234-4567]
UserVO [name=박길동8, age=31, phoneNum=010-1234-4568]
UserVO [name=박길동9, age=32, phoneNum=010-1234-4569]
[출력 5]
UserVO [name=박길동0, age=23, phoneNum=010-1234-4560]
UserVO [name=박길동1, age=24, phoneNum=010-1234-4561]
UserVO [name=박길동2, age=25, phoneNum=010-1234-4562]
UserVO [name=박길동3, age=26, phoneNum=010-1234-4563]
UserVO [name=박길동4, age=27, phoneNum=010-1234-4564]
UserVO [name=박길동5, age=28, phoneNum=010-1234-4565]
UserVO [name=박길동6, age=29, phoneNum=010-1234-4566]
UserVO [name=박길동7, age=30, phoneNum=010-1234-4567]
UserVO [name=박길동8, age=31, phoneNum=010-1234-4568]
UserVO [name=박길동9, age=32, phoneNum=010-1234-4569]
[출력 6]
UserVO [name=박길동0, age=23, phoneNum=010-1234-4560]
UserVO [name=박길동1, age=24, phoneNum=010-1234-4561]
UserVO [name=박길동2, age=25, phoneNum=010-1234-4562]
UserVO [name=박길동3, age=26, phoneNum=010-1234-4563]
UserVO [name=박길동4, age=27, phoneNum=010-1234-4564]
UserVO [name=박길동5, age=28, phoneNum=010-1234-4565]
UserVO [name=박길동6, age=29, phoneNum=010-1234-4566]
UserVO [name=박길동7, age=30, phoneNum=010-1234-4567]
UserVO [name=박길동8, age=31, phoneNum=010-1234-4568]
UserVO [name=박길동9, age=32, phoneNum=010-1234-4569]
[출력 7]
[UserVO [name=박길동0, age=23, phoneNum=010-1234-4560],
UserVO [name=박길동1, age=24, phoneNum=010-1234-4561],
UserVO [name=박길동2, age=25, phoneNum=010-1234-4562],
UserVO [name=박길동3, age=26, phoneNum=010-1234-4563],
UserVO [name=박길동4, age=27, phoneNum=010-1234-4564],
UserVO [name=박길동5, age=28, phoneNum=010-1234-4565],
UserVO [name=박길동6, age=29, phoneNum=010-1234-4566],
UserVO [name=박길동7, age=30, phoneNum=010-1234-4567],
UserVO [name=박길동8, age=31, phoneNum=010-1234-4568],
UserVO [name=박길동9, age=32, phoneNum=010-1234-4569]]
"본 인터넷 사이트 내의 모든 이미지, 문구, 콘텐츠, 내용 등에 대한 저작권은 76beny에게 있습니다.
이를 무단으로 도용, 복사, 전재, 재배포, 2차 변형 등을 할 경우
민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."