- 학생을 관리할 수 있는 management program을 작성하시오.
- 입력은 이름, 학번, 성별, 핸드폰번호, 성적을 입력 받아 객체를 만든 후 배열로 관리하시오.
- management program에는 학생 등록, 조회, 삭제, 종료 4가지 메뉴가 있음.
<style>
package studentManage;
public class Student {
private String name;
private int stdID;
private String gender;
private String phone;
private int pors;
private int cons;
public Student(String name, int stdID, String gender, String phone) {
super();
this.name = name;
this.stdID = stdID;
this.gender = gender;
this.phone = phone;
this.pors = 0;
this.cons = 0;
}
}
</style>
- 필드값과 필드값을 지정하여 만들 수 있는 객체 생성자 클래스 생성
<style>
package studentManage;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Student> stuList = new ArrayList<Student>();
System.out.println("==Students Managements Program==");
stuManage: while (true) {
System.out.println("===========Select menu===========");
System.out.println("==1.input 2.search 3.delete 4.system out");
int choice = sc.nextInt();
switch (choice) {
case (1):
System.out.println("========input========");
System.out.print("name : ");
String name = sc.next();
System.out.print("Student ID : ");
int stdID = sc.nextInt();
System.out.print("Gender : ");
String gender = sc.next();
System.out.print("Phone Number : ");
String phone = sc.next();
Student student = new Student(name, stdID, gender, phone);
stuList.add(student);
System.out.println("=======complete=======");
break;
case (2):
System.out.println("======input======");
System.out.print("Student ID : ");
int stuid = sc.nextInt();
for (int i = 0; i < stuList.size(); i++) {
if (stuList.get(i).getStdID() == stuid) {
System.out.println(stuList.get(i));
} else {
System.out.println("===no row searched===");
}
}
break;
case (3):
System.out.println("======delete======");
System.out.print("Student ID : ");
int stuID = sc.nextInt();
for (int i = 0; i < stuList.size(); i++) {
if (stuList.get(i).getStdID() == stuID) {
stuList.remove(i);
System.out.println("=====deleted=====");
} else {
System.out.println("=== no row searched===");
}
}
break;
case (4):
System.out.println("======system off======");
break stuManage;
}
}
}
}
</style>
- 여기서 핵심은 stuList.get(i)가 객체를 순서대로 가져온다는 것.
- stuList는 각 student 객체를 index로 참조하고 있고 비록 data 값들의 이름은 같지만 주소값이 다르기에 stuList.get(i)로 각각의 독립적이 객체에 접근하여 getStdID()라는 객체 메서드를 이용하여 필드에 접근이 가능하도록 한 프로그램이다.