[JAVA]/07. 객체지향

24_2. [강의] 객체배열

76beny 2022. 5. 28. 23:01
 

 

정보담을 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차 변형 등을 할 경우

민, 형사상 법적 조치 등 저작권법에 의거하여 처벌 받을 수 있습니다."