package chapter11;
import java.util.Scanner;
public class ch11_03 {
// ArrayList를 활용해 사원 입력, 조회 메뉴 만들기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choice = 0;
while(true) {
System.out.println("0:종료 / 1:사원 입력 / 2:사원 조회");
choice = sc.nextInt();
if(choice == 1) {
System.out.println("사원 입력 실행");
} else if(choice == 2) {
System.out.println("사원 조회 실행");
} else if(choice == 0) {
System.out.println("종료");
break;
} else {
System.out.println("잘못 입력했습니다.");
continue;
}
}
}
}
사원 입력을 위한 Input 클래스 작성
package chapter11;
public class Person_ch11 {
private String name;
private int age;
private int pay;
// 외부에서 접근 불가능한 private 변수이므로 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 int getPay() {
return pay;
}
public void setPay(int pay) {
this.pay = pay;
}
}
package chapter11;
import java.util.Scanner;
import java.util.ArrayList;
public class Input_ch11 {
// 미리 생성하고 계속 하나만 사용할 것이기 때문에 static 처리
private static ArrayList<Person_ch11> arr = new ArrayList<Person_ch11>();
// Person 타입의 객체를 저장할 ArrayList arr 생성
// arr는 직접 수정 불가능하게 외부로부터 보호해야 할 ArrayList이므로 싱글턴 패턴 적용
static ArrayList<Person_ch11> get_arr() {
return arr;
}
// arr을 다른 클래스(Printer)에서 사용할 때는 get_arr() 메서드를 호출해야 함
static Scanner sc = new Scanner(System.in);
static Scanner ss = new Scanner(System.in);
// 내용을 입력받기 위해 scanner 객체 2개 생성
public static void input_person() {
Person_ch11 ps = new Person_ch11();
// 정보를 입력받아 person 인스턴스 생성
System.out.println("이름을 입력하세요.");
String name = ss.nextLine();
ps.setName(name);
System.out.println("나이를 입력하세요.");
int age = sc.nextInt();
ps.setAge(age);
System.out.println("연봉을 입력하세요.");
int pay = sc.nextInt();
ps.setPay(pay);
arr.add(ps);
// 생성한 ps를 ArrayList arr에 추가
}
}
package chapter11;
import java.util.ArrayList;
public class Printer_ch11 {
// 미리 생성하고 계속 하나만 사용할 것이기 때문에 static 처리
static void printer_person() {
ArrayList<Person_ch11> arr_pt = Input_ch11.get_arr();
// get_arr() 메서드로 Input에서 만들어진 ArrayList 객체 가져오기
for(int i=0; i<arr_pt.size(); i++) {
// arr_pt의 길이 (size())만큼 반복
// Person 클래스의 getter 메서드를 사용하기 위해 Person 타입으로 돌려줘야 함
Person_ch11 ps = arr_pt.get(i);
// List이름.get(i) : 리스트에서 인덱스 i에 있는 요소 반환
System.out.println("------");
System.out.println("이름: "+ps.getName());
System.out.println("나이: "+ps.getAge());
System.out.println("연봉: "+ps.getPay());
// Person의 getter 메서드 호출해 정보 출력
}
}
}
package chapter11;
import java.util.Scanner;
public class ch11_03_02 {
// ArrayList를 활용해 사원 입력, 조회 메뉴 만들기
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int choice = 0;
while(true) {
System.out.println("0:종료 / 1:사원 입력 / 2:사원 조회");
choice = sc.nextInt();
if(choice == 1) {
Input_ch11.input_person();
} else if(choice == 2) {
Printer_ch11.printer_person();
} else if(choice == 0) {
System.out.println("종료");
break;
} else {
System.out.println("잘못 입력했습니다.");
continue;
}
}
}
}
💻 실행 결과
