Java
[Java] 42. 연관 관계 활용: 학생과 학급 클래스 만들기
Song hyun
2024. 4. 24. 09:41
728x90
반응형
[Java] 연관 관계 활용: 학생과 학급 클래스 만들기
도전 문제 - 학생과 학급은 어떤 관계로 바라볼 수 있을까?
Classroom 객체와 Student 객체는 연관 관계를 형성하고 있습니다.
단 Classroom 안에 Student[ ] 배열을 가지고 있지만 단순히 저장하는 용도 이며
Student 필드를 가지고 있지 않습니다. 이는 직접 적인 포함 관계를 나타내지 않습니다.
1. 각각의 Student, ClassRoom 클래스 만들기
- 이 때, ClassRoom 의 변수로 student[]를 선언한다.
2. ClassRoom 클래스에서 showStudent를 만들어, student[]의 객체들을 출력하는 메서드를 만들기
3. ClassRoom 객체 내부의 Student형 배열에 객체를 넣는 메서드 만들기
(1) Student 클래스
package basic.ch19;
public class Student {
private String name;
private int age;
public Student(String name, int age) {
this.name = name;
this.age = age;
}
public String getName() {
return this.name;
}
public int getAge() {
return this.age;
}
}
(2) ClassRoom 클래스
package basic.ch19;
public class ClassRoom {
private String className;
private Student[] students;//Student를 담을 수 있는 메모리 공간=배열
private int studentCount;
private final int MAX_STUDENT=30;
public ClassRoom(String className) {
this.className=className;
students=new Student[MAX_STUDENT];
this.studentCount=0;
}
// 학생을 추가하는 메서드
public void addStudent(Student student) {
if(studentCount<MAX_STUDENT) {
students[studentCount]=student;
studentCount++;
}
else {
System.out.println("정원 초과입니다.");
}
}
// 학급의 속한 모든 학생정보를 출력하는 메서드를 만드시오.
public void showStudents() {
for(int i=0; i<students.length; i++) {
if(students[i]!=null) {
System.out.println(students[i].getAge()+"살 입니다.");
System.out.println(students[i].getName()+" 입니다.");
}
System.out.println("출력 완료");
break;
}
}
public static void main(String[] args) {
}
}
728x90
반응형