OOP - 학생성적 산출 프로그램

devdo·2022년 1월 6일
0

Java

목록 보기
27/59

java ArrayList 활용, 객체 협력이 어떻게 이뤄지는지 '학생성적 산출 프로그램' 으로 확인.

Student, Subject 객체

행위를 정리하면

Student : 성적 입력, 성적정보 출력
성적 입력 - addSubject(name, score)
성적정보 출력 - showStudentInfo()
Subject : 행위(메서드)가 없다. 그냥 그자체로 Student가 사용할 배열객체.-> Student가 ArrayList에 담을 것임.


구현소스

Student

package SocreProgram;
import java.util.ArrayList;

public class Student {
    private int studentId;
    private String studentName;

    ArrayList<Subject> subjectList;

    public Student(int studentId, String studentName) {
        this.studentId = studentId;
        this.studentName = studentName;
        subjectList = new ArrayList<>();
    }

// 성적 입력
    public void addSubject(String name, int score) {
        Subject subject = new Subject();
        subject.setName(name);
        subject.setScorePoint(score);

        subjectList.add(subject);
    }
// 자신의 성적정보 출력
    public void showStudentInfo()
    {
        int total = 0;

        for(Subject s : subjectList){

            total += s.getScorePoint();
            System.out.println("학생 " + studentName + "의 " + s.getName() + " 과목 성적은 " +
                    s.getScorePoint() + "입니다.");
        }

        System.out.println("학생 " + studentName + "의 총점은 " + total + " 입니다.");
    }

}

Subject

package SocreProgram;

public class Subject {

    private String name;
    private int scorePoint;

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public int getScorePoint() {
        return scorePoint;
    }

    public void setScorePoint(int scorePoint) {
        this.scorePoint = scorePoint;
    }
}

main

package SocreProgram;

public class ScoreProgrameTest {
    public static void main(String[] args) {

        Student studentLee = new Student(1001, "Lee");
        studentLee.addSubject("국어", 100);
        studentLee.addSubject("수학", 35);
        studentLee.addSubject("영어", 75);


        Student studentDo = new Student(1002, "Do");
        studentDo.addSubject("국어", 34);
        studentDo.addSubject("수학", 78);

        studentLee.showStudentInfo();
        System.out.println("============================");
        studentDo.showStudentInfo();

    }
}

결과

학생 Lee의 국어 과목 성적은 100입니다.
학생 Lee의 수학 과목 성적은 35입니다.
학생 Lee의 영어 과목 성적은 75입니다.
학생 Lee의 총점은 210 입니다.
============================
학생 Do의 국어 과목 성적은 34입니다.
학생 Do의 수학 과목 성적은 78입니다.
학생 Do의 총점은 112 입니다.

출처

https://github.com/mooh2jj/stu_score_prac.git

profile
배운 것을 기록합니다.

0개의 댓글