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
반응형