FireDrago

[java] 회원정보 입력 , 출력 (ArrayList 활용) 본문

프로그래밍/Java

[java] 회원정보 입력 , 출력 (ArrayList 활용)

화이용 2023. 5. 8. 17:23

<원하는 기능>

1. 회원의 이름, 나이, 연봉을 객체로 담는다.

2. 정의한 객체를 ArrayList에 담고, 출력한다.  

    (데이터  > 객체  > ArrayList )

 

가장 먼저 해야할 것은 무엇일까? 데이터를 저장하기위한 클래스를 만든다.

class Person { //데이터 저장 클래스
	
	private String name;
	private int age;
	private int pay;
	
	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;
	}

Person 클래스의 멤버변수 name , age, pay 는 저장될 데이터를 의미한다. ArrayList는 이 Person 객체를 저장한다.

 

 

다음으로 Main 클래스를 만든다.

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		while (true) {
			System.out.println("종료 : 0");
			System.out.println("사원입력 : 1");
			System.out.println("사원 조회 : 2");

			int ans = sc.nextInt();

			if (ans == 1) {
				Input.generate();
			} else if (ans == 2) {
				Print.print();
			} else if (ans == 0) {
				break;
			} else continue;
		}
	}
}

사용자에게 숫자 0, 1, 2 셋중 하나를 입력받아  그 수에따라 데이터 입력, 데이터 출력, 다시 입력을 구현하도록 만든다.

 

 

데이터 입력을 담당하는 Input 클래스를 만든다. 

class Input {
	private static ArrayList<Person> al = new ArrayList<Person>();
	// private으로 캡슐화
	
	static ArrayList<Person> getarr() {
		return al; 
	} // get 메서드로 ArrayList 참조값 받아오기

	static void generate() {
		Scanner ss = new Scanner (System.in);
		Scanner sc = new Scanner (System.in);
		Person ps = new 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.setAge(pay);
		           // 데이터를 객체의 멤버변수에 담기
		al.add(ps);// 만들어진 객체를 ArrayList에 담기
	}
}

 

마지막으로 ArrayList 출력을 위한 Print 클래스를 만든다. 출력은 생성의 역순으로 꺼내어 출력한다.

class Print {
	static void print () {
	ArrayList<Person> pl = Input.getarr();
	
	for (int i=0; i<pl.size(); i++) {
		Person tmp = pl.get(i);
		System.out.println(tmp.getName());
		System.out.println(tmp.getAge());
		System.out.println(tmp.getPay());
	}
	}
}