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
반응형
'Java > 기본 개념 및 클래스' 카테고리의 다른 글
[Java] 44. 다형성 활용: 스타크래프트 소스 코드 수정하기 (0) | 2024.04.24 |
---|---|
[Java] 43. 다형성과 캐스팅 (0) | 2024.04.24 |
[Java] 41. 연관 관계와 의존 관계 (0) | 2024.04.23 |
[Java] 40. 메서드 오버로딩, 상속 응용: 유닛에 마린, 질럿, 저글링 상속시키기 (0) | 2024.04.23 |
[Java] 39. 포함 관계 (0) | 2024.04.23 |