Dev/Java

Java - 클래스 이용 학생 관리 연습

surimi🍥 2020. 8. 14. 10:04
반응형
// Student의 필드 : 이름, 나이, 국어, 영어, 수학
// Student의 메소드 : 총점, 평균, getter/setter, equals, toString()

public class Student {
	private String name;
	private int age;
	private int kor;
	private int eng;
	private int math;
	
	//	관리번호는 주로 id라는 필드이름을 가지게 된다.
	private int id;
	private final int SUBJECT_NUMBERS = 3;
	
	
	//getter, setter는 공식이 존재한다.
	// 그렇다면 eclipse가 자동으로 만들어주지 않을까?
	// 소스창 오른쪽 클릭 -> source -> generate getters/setters
	
	public int getId() {
		return id;
	}

	public void setId(int id) {
		this.id = id;
	}

	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 getKor() {
		return kor;
	}

	public void setKor(int kor) {
		this.kor = kor;
	}

	public int getEng() {
		return eng;
	}

	public void setEng(int eng) {
		this.eng = eng;
	}

	public int getMath() {
		return math;
	}

	public void setMath(int math) {
		this.math = math;
	}

	
	
	//총점
	public int sum() {
		
	return kor + eng + math;
	}
	
	
	
	//평균
	public double avg() {
		
		return sum() / (double)SUBJECT_NUMBERS;
	}
	
	
	// toString() 오버라이드
	public String toString() {

		String returnValue = new String();
		returnValue += "이름: " + name;
		returnValue += ", 나이: "+ age;
		returnValue += ", 국어: "+ kor;
		returnValue += ", 영어: "+ eng;
		returnValue += ", 수학: "+ math;
		
		return "['id': " + id + ", 'name': \"" + name + "\", 'korean': " + 
		kor + ", 'english': " + 
		eng + ", 'math': " + math + "]";
		
	}
	
	
	public boolean equals(Object ob) {
		
		if(ob instanceof Student) {
			
			Student st = (Student)ob;
			
			if(id == st.id && name.equals(st.name)) {
				return true;
			}
		}
		return false;
		
	}
	
	
}



	

import java.util.ArrayList;
import java.util.Scanner;

public class StudentEx {
	
	public static void main(String[] args) {
		
		ArrayList<Student> list = new ArrayList<>();
		
//		System.out.println("list 크기 : " + stlist.size());
		
		Scanner scanner = new Scanner(System.in);
		
		while(true) {
			System.out.println("감자고 성적 관리 프로그램");
			System.out.println("1.입력  2.출력  3.종료");
			System.out.println(">");
			
			int choice = scanner.nextInt();
			
			if(choice == 1) {
				
				//정보를 담을 Student 객체 생성
				Student s = new Student();
				
				//setter를 통안 데이터 입력.
				System.out.println("학생 번호 : ");
				s.setId(scanner.nextInt());
				
				System.out.println("학생이름 : ");
				scanner.nextLine();
				s.setName(scanner.nextLine());
				
				System.out.println("국어 : ");
				s.setKor(scanner.nextInt());
				
				System.out.println("영어 : ");
				s.setEng(scanner.nextInt());
				
				System.out.println("수학 : ");
				s.setMath(scanner.nextInt());
				
				//이렇게 데이터가 담긴 객체를 list에 추가해주면 된다.
				list.add(s);
				
				
			}
			else if(choice == 2) {
				
				// 만약 리스트가 비어있으면 아무것도 출력 안하고
				// 뭔가 있으면 전체를 출력한다.
				
				if(list.size() == 0) {
					System.out.println("출력할 내용이 없습니다.");
				}
				else {
					for(int i = 0; i < list.size(); i++) {
						System.out.println(list.get(i));
					}
				}
				
				
				
			}
			else if(choice == 3) {
				System.out.println("이용해주셔서 감사합니다.");
				break;
			}
		}
		
		
		
		scanner.close();
		

	}

}

 두 클래스는 같은 패키지 안에 들어있어야 함.

반응형

'Dev > Java' 카테고리의 다른 글

Java - BufferReader, InputStreamReader 이용 입력 예제  (0) 2020.09.04
Java - 주차관리 예제  (0) 2020.08.14
Java - 클래스 이용 차 관리 연습  (0) 2020.08.14
Java - 클래스 ( Class )  (0) 2020.08.14
Java - 예제 ) 별찍기 02  (0) 2020.08.12