[27] 연관 관계에 대한 문제

3654 단어 문제JavaJava

1. 수강 신청과 수강 취소를 하는 프로그램을 만들자.

: 학생이 과목명을 찾아서, 수강신청을 한다.
: 학생과 과목명은 연관 관계에 있다.
: 학생이 수강한 과목명들은 수강과목으로 만들어야한다.

- public class Course 클래스

package kosta.relation1;

public class Course {
	
	// 하나의 과목명을 표현하는 클래스이다.
	// ex) 전산학개론
	private String name; // 과목명
	
	public Course() {}

	public Course(String name) {
		super();
		this.name = name;
	}

	public String getName() {
		return name;
	}

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

- public class Student 클래스

package kosta.relation1;

import java.util.ArrayList;
import java.util.List;

public class Student {
	
	// 수강신청, 수강취소 구현.
	// 연관 관계 - Student 객체가 Course 객체를 가지게 된다.
	// 그러므로 Course 클래스를 먼저 만들어야 한다.
	
	// 필드
	private String name; // 사람이름
	
	// 어레이 리스트는 신축성 있는 배열이다!!!
	// private List <Course> courses 여러 과목 정의 가능 < 어레이 리스트 >
	// private Course courses 한 과목만 정의 가능
	private List <Course> courses; // 수강과목. 
	
	// 생성자
	public Student() {}
	
	// 수강신청을 학생만 생성할 수 있게 만든다. (학생만 할 수 있게 한다.)
	public Student(String name) {
		super();
		this.name = name;
		courses = new ArrayList<Course>();  // ArrayList 선언하는 방법  < 객체를 생성한게 아니다.>
	}
	
	// 수강신청하는 메서드
	// add 연산자를 사용하면, course에 과목명을 신청할 때마다 하나씩 들어간다.
	// Course 클래스에 있는 수강과목 하나의 name을 Student 클래스에 있는  courses의 어레이 리스트에 차근차근 넣는다.
	public void register(Course course) { // 수강신청할 때마다 register() 메서드를 사용하면 된다.
		courses.add(course);   // 과목명을 하나씩 넣어서, 수강과목이라는 하나의 배열을 만드는 코드이다.
	}
	
	// 수강취소하는 메서드
	// courses에서 contains 자바 API를 사용하여 course에 문자열이 있는지 확인한다.
	// remove는 해당 문자열이 있으면 삭제하는 자바 API이다.
	public void dropCourse(Course course) {
		if (courses.contains(course)) {    
			courses.remove(course);
		}
	}
	
	public void printMember() {
		System.out.println("학생이름 : " + name);
		for (Course course : courses) {        // 향상된 for문으로 입력된 데이터를 모두  출력한다.
			System.out.println("수강과목 : " + course.getName());
		}
	}

	public String getName() {
		return name;
	}

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

	public List<Course> getCourses() {
		return courses;
	}

	public void setCourses(List<Course> courses) {
		this.courses = courses;
	}
	
}

- public class Main 메인

package kosta.relation1;

public class Main {

	public static void main(String[] args) {
		// 수강 신청과 수강 취소를 하는 프로그램을 만들자.
		// 수강 신청을 할 수 있는 과목
		// Course 클래스에서 3과목을 객체로 만들었다.
		Course c1 = new Course("전산학개론");
		Course c2 = new Course("기초통계학");
		Course c3 = new Course("빅데이터개론");
		
		// 수강 신청을 하는 사람
		// Student 클래스에서 1명의 사람을 객체로 만들었다.
		Student s1 = new Student("홍길동");
		
		// 수강 신청
		s1.register(c1);
		s1.register(c2);
		s1.register(c3);
		
		// 수강 취소
		s1.dropCourse(c1);
		
		// 출력
		s1.printMember();
	}
}
  • 결과값
    학생이름 : 홍길동
    수강과목 : 기초통계학
    수강과목 : 빅데이터개론

좋은 웹페이지 즐겨찾기