package test;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Scanner;
import java.util.Vector;
class Person {
String name;
int age;
String address;
public Person(String name, int age, String address) {
super();
this.name = name;
this.age = age;
this.address = address;
}
// getter & setter
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 getAddress() {
return address;
}
public void setAddress(String address) {
this.address = address;
}
// toString()
@Override
public String toString() {
return "Person [name=" + name + ", age=" + age + ", address=" + address + "]";
}
} // Person class
class PersonManager {
private Scanner scanner;
private List<Person> personList; // 원본데이터
private List<Person> searchList; // 검색데이터
public PersonManager() {
}
public PersonManager(Scanner scanner) {
this.scanner = scanner;
}
public Scanner getScanner() {
return scanner;
}
public void setScanner(Scanner scanner) {
this.scanner = scanner;
}
public List<Person> getPersonList() {
return personList;
}
public void setPersonList(List<Person> personList) {
this.personList = personList;
}
public List<Person> getSearchList() {
return searchList;
}
public void setSearchList(List<Person> searchList) {
this.searchList = searchList;
}
// start()
// 선택 >>
// "1:추가 2:삭제 3:검색 4:목록 0:종료"
public void start() {
Scanner scanner = new Scanner(System.in);
while (true) {
System.out.println("1:추가 2:삭제 3:검색 4:목록 0:종료");
System.out.print(">> ");
int num = scanner.nextInt();
switch (num) {
case 1: add(); break;
// case 2: del(); break;
// case 3: search(); break;
case 4: list(); break;
case 0: System.out.println("프로그램을 종료합니다."); return;
default: System.out.println("없는 명령입니다."); break;
}
} // while
}
// 1번 add() 회원 추가. 리스트에 Person 객체 추가하기
// 이름을 입력하세요:
// 나이를 입력하세요:
// 주소를 입력하세요:
// Person객체생성 후 리스트에 추가
public void add () {
System.out.println("이름을 입력하세요 : ");
String name = scanner.next();
System.out.println("나이를 입력하세요 : ");
int age = scanner.nextInt();
System.out.println("주소를 입력하세요 : ");
String addr = scanner.next();
// 생성자를 통한 값 주입
Person person = new Person(name, age, addr);
personList.add(person);
} // add()
// 2번 del() 회원 삭제. 리스트에 해당번째 Person객체 삭제
// 삭제할 인덱스번호:
// 3번 search() 회원 검색. 검색결과를 검색용리스트에 추가 후 출력
// 4번 list() 회원목록 출력
public void list() {
System.out.println("이름\t나이\t주소");
System.out.println("=========================");
// for (Person p : personList) {
// System.out.println(p.getName() + "\t"
// + p.getAge() + "\t"
// + p.getAddress());
// }
// System.out.println();
Iterator<Person> it = personList.iterator();
while (it.hasNext()) {
Person p = it.next();
System.out.println(p);
}
System.out.println();
} // list()
// 0번 프로그램 종료
}
public class Test9 {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
// PersonManager는 Scanner에 의존하고 있음 -> 포함관계
// 생성자 또는 메소드에 매개변수(인자)로 대입하는 형식으로
// 객체 사이의 의존관계를 주입한다.
PersonManager manager = new PersonManager(scanner); // 생성자를 통한 의존관계 주입 DI
// PersonManager manager = new PersonManager();
// manager.setScanner(scanner); // 메소드를 통한 의존관계 주입 DI
manager.setPersonList(new ArrayList<>());
manager.setPersonList(new Vector<>());
manager.start();
} // main()의 끝
}
'IT > Java' 카테고리의 다른 글
자바 list, vector, generec (0) | 2018.07.31 |
---|---|
자바 arraylist, iterator, scanner를 사용한 회원 추가, 삭제, 검색, 목록, 종료 구현 (0) | 2018.07.30 |
자바 arraylist generic scanner Iterator, 이름 5개 입력받아 출력하기 (0) | 2018.07.29 |
자바 List - ArrayList, 제네릭(generic) 타입, Iterator (0) | 2018.07.25 |
자바 컬렉션 Set, List, Map, Set : HashSet, List : ArrayList, Vector (0) | 2018.07.25 |