1. 예제 시나리오
1001학번 Lee와 1002학번 Kim, 두 학생이 있습니다.
Lee 학생은 국어와 수학 2과목을 수강했고, Kim 학생은 국어, 수학, 영어 3 과목을 수강하였습니다.
Lee 학생은 국어 100점, 수학 50점입니다.
Kim 학생은 국어 70점, 수학 85점, 영어 100점입니다.
Student와 Subject 클래스를 만들고 ArrayList를 활용하여 두 학생의 과목 성적과 총점을 출력하세요
StudentTest.java
package ch24;
public class StudentTest {
public static void main(String[] args) {
Student studentLee = new Student(1001, "Lee");
studentLee.addSubject("국어", 100);
studentLee.addSubject("수학", 50);
Student studentKim = new Student(1002, "Kim");
studentKim.addSubject("국어", 70);
studentKim.addSubject("수학", 85);
studentKim.addSubject("영어", 100);
studentLee.showStudentInfo();
System.out.println("======================================");
studentKim.showStudentInfo();
}
}
Student.java
package ch24;
import java.util.ArrayList;
public class Student {
String studentName;
int studentID;
ArrayList <Subject> subjectlist; //참조 자료형 변수 대신 ArrayList에 과목들을 넣자
//여기서 바로 new 해서 ArrayList를 만들 수 있지만, 인스턴스가 생길 때마다 배열을 만들자
public Student(int studentNumber,String studentName) {
this.studentID=studentNumber;
this.studentName=studentName;
subjectlist=new ArrayList<Subject>();
}
public void addSubject(String name,int score) { //학생마다 자기가 수강한 과목 수대로 메소드가 불릴 것이며, 배열도 그만큼 늘어날 것이다.
Subject subject = new Subject();
subject.setName(name);
subject.setScore(score);
subjectlist.add(subject);
}
public void showStudentInfo() {
int total=0;
for (Subject s : subjectlist) { //subjectlist가 가지고 있는 자료형이 Subject이고, 하나씩 s로 꺼낼 것이다
total+=s.getScore();
System.out.println("학생"+studentName+"의"+s.getName()+"과목 성적은 "+s.getScore()+"입니다.");
}
System.out.println("학생"+studentName+"의 총점은"+total+"입니다.");
}
}
Subject.java
package ch24;
public class Subject {
private String name;
private int score;
public String getName() {
return name;
}
public int getScore() {
return score;
}
public void setName(String name) {
this.name = name;
}
public void setScore(int score) {
this.score = score;
}
}
'JAVA' 카테고리의 다른 글
3-2.객체 지향 핵심 - 상속을 활용한 멤버십 클래스 구현 (0) | 2022.01.14 |
---|---|
3-1.객체 지향 핵심 - 객체 간의 상속 (0) | 2022.01.13 |
2-18.객체 지향 - 객체 배열 클래스 ArrayList (0) | 2022.01.12 |
2-17.객체 지향 - 2차원 배열 (0) | 2022.01.12 |
2-16.객체 지향 - 객체 배열 (0) | 2022.01.12 |