자바(Java) - 벡터 클래스와 캡슐화 활용 예제

안녕하세요

이번 시간에는 저번 시간에 활용했던 백터(Vector)와 캡슐화를 활용한 예제를 올려봅니다.

package testtest;

import java.util.Enumeration;
import java.util.Iterator;
import java.util.Vector;

class Person{
private String name;
private int age;

public Person(){

}

public Person(String name, int age){
this.name=name;
this.age=age;
}

public void setName(String name){
this.name=name;
}

public String getName(){
return name;
}

public void setAge(int age){
this.age=age;
}

public int getAge(){
return age;
}

}

public class test {

public static void main(String[] args) {
//[1]Person 객체 3개 생성하기
Person p1 = new Person("할아버지",78);
Person p2 = new Person("할머니", 74);
Person p3 = new Person("아버지", 55);
p1.setName("할아버님"); p1.setAge(79);

//[2]위에 생성한 객체를 저장할 Vector생성하기
Vector<Person> v1=new Vector<Person>();

//[3]Vector에 Person객체 저장하
v1.add(p1); v1.add(p2); v1.add(p3);

//[4] v1에 저장된 Person을 꺼내서 이름, 나이 출력하기
for(int i=0;i<v1.size();i++){
System.out.println("이름 : "+v1.get(i).getName() + " 나이 : "+v1.get(i).getAge());
}

System.out.println("--확장 for 루프--");

//확장 for루프
for(Person str:v1){
System.out.println("이름 : " + str.getName() + " 나이 : " + str.getAge());
}

//Vector의 메소드
//[1] void copyInto(Object[] anArray)
//벡터에 저장된 객체를 배열에 카피해준다.

Person arr[]=new Person[v1.size()];
v1.copyInto(arr);

for(Person ps : arr){
System.out.println(ps.getName()+"#");
}

//[2] Enumeration<E> elements()
/* 벡터에 저장된 객체들을 한꺼번에 꺼내오고자 할 때 사용하는 메소드
* Enumeration과 Iterator인터페이스는 객체들을 집합체로 관리하게 해주는 인터페이스이다.
* 이들 인터페이스에서는 각각의 객체들을 한 순간에 하나씩 처리할 수 있는 메소드를 제공한다.
*
* # Enumeration의 경우
* boolean hasMoreElements(): 논리적 커서(첫번째 요소 직전에 위치) 이후에 요소들이 있는지 물어서 있으면 true를 반환 하고 없으면 false를 반환한다.
* E nextElement() : 논리적 커서를 다음 요소로 이동하고 현재 가리키고 있는 요소를 반환한다.
*
* #Iterator의 경우
* boolean hasNext()
* E next()
* */

Enumeration<Person> en=v1.elements();
while(en.hasMoreElements()){
Person ps=en.nextElement();
System.out.println(ps.getName()+"@"+ps.getAge());
} // false면 while문을 빠져나감

//[3] Iterator<E> iterator()
//v의 iterator()메소드를 이용해 v에 저장된 객체 꺼내와 이름 나이 출력하세요.

Iterator<Person> it=v1.iterator();
for(int i=1;it.hasNext();i++){
Person ps=it.next();
System.out.println(i+": "+ps.getName());
}

}
}


댓글 없음:

댓글 쓰기