Part13 - package

uglyduck.dev·2020년 9월 27일
0

예제로 알아보기 👀

목록 보기
13/22
post-thumbnail
post-custom-banner

com.mywork.controll

StudentManager.java

package com.mywork.control;
import java.util.Scanner;
import com.mywork.data.Student;
/*
패키지 (Package)
    1. 클래스들을 구분해서 저장하기 위한 디렉토리(폴더) 구조이다.
    2. 기본 3 단계 이상으로 구분하는 것이 일반적이다.
        예)
        com.naver.project
        kr.co.naver
    3. 개발자가 패키지를 생성하지 않으면 "디폴트 패키지"에 클래스가 생성된다.
    4. 패키지에 저장된 클래스 사용 방법
        1) import 를 이용한다.
        2) import 없이 패키지.클래스 방식으로 사용한다.
*/
public class StudentManager {
	
	// Field
	Student[] arr;
	int idx;
	int studentNum;
	
	Scanner scanner = new Scanner(System.in);
	
	// Constructor
	public StudentManager(int numOfStudents){
		arr = new Student[numOfStudents];
		for(int i = 0; i < arr.length; i++) {
			arr[i] = new Student();
		}
	}
	
	// Method
	public Student input() {
		System.out.print("학생 성명 >> ");
		String name = scanner.nextLine();
		System.out.print("학생 학과 >> ");
		String dept = scanner.nextLine();
		System.out.print("중간 점수 >> ");
		String score1 = scanner.nextLine();
		System.out.print("기말 점수 >> ");
		String score2 = scanner.nextLine();
		return new Student(name, dept, score1, score2);
	}
	public void addNewStudent(Student student) {
		arr[idx++] = student;
	}
	public void outputAllStudents() {
		for(int i = 0; i < idx; i++) {
			System.out.println((i + 1) + "번째 학생 정보 ----------");
			arr[i].output();
		}
	}
	public void outputAverage() {
		double total = 0;
		for(int i = 0; i < idx; i++) {
			total += arr[i].getAverage();
		}
		System.out.println("학생" + idx + "명의 총 평균은 " + (total / idx) + "입니다.");
	}
	public Student findStudent(){
		System.out.print("찾을 학생 이름 입력 >> ");
		String name = scanner.nextLine();
		for(int i = 0; i < idx; i++) {
			if(name.equals(arr[i].name)) {
				return arr[i];
			}
		}
		return null;
	}
	public void output(Student student) {
		if(student != null) {
			student.output();
		}else{
			System.out.println("찾는 학생이 존재하지 않습니다.");
		}
	}
}

com.mywork.data

Student.java

package com.mywork.data;

public class Student {

	// Field
	public String name;
	public String dept;
	public String score1;
	public String score2;
	public double average;
	public boolean isPass;
	
	// Constructor
	public Student(){}
	public Student(String name, String dept, String score1, String score2){
		this.name = name;
		this.dept = dept;
		this.score1 = score1;
		this.score2 = score2;
		this.average = getAverage();
		this.isPass = getPass();
	}
	
	// Method
	public double getAverage() {
		double a = Double.parseDouble(score1);
		double b = Double.parseDouble(score2);
		return (a + b) / 2;
	}
	public boolean getPass() {
		return getAverage() >= 80 ? true : false;
	}
	public void output() {
		System.out.println("이름 : " + name);
		System.out.println("학과 : " + dept);
		System.out.println("평균 : " + average);
		System.out.println("합격 유무 : " + (isPass ? "합격" : "불합격"));
	}
}

com.mywork.run

StudentMain.java

package com.mywork.run;

import com.mywork.control.StudentManager;

public class StudentMain {

	public static void main(String[] args) {
		StudentManager manager = new StudentManager(3);
		
		//Student student = manager.input();
		//manager.addNewStudent(student);
		
		manager.addNewStudent(manager.input());
		manager.addNewStudent(manager.input());
		manager.addNewStudent(manager.input());
		
		manager.outputAllStudents();
		
		manager.outputAverage();
		
		manager.output(manager.findStudent());
		// 찾을 학생의 이름 >> 나길동
		// 나길동 정보 출력
		
	}

}
profile
시행착오, 문제해결 그 어디 즈음에.
post-custom-banner

0개의 댓글