[KOSTA] Spring 기반 Cloud 10일차 - OOP실습(의존관계,연관관계)

JUNBEOM PARK·2022년 2월 11일
0
post-thumbnail

🎲 비디오 대여

내용: 4개의 클래스를 만들어 비디오 대여 프로그램 작성
GeneralMember : 회원 과 관련된 클래스
Video : 비디오 정보와 관련된 클래스
Member : 회원이 대여한 비디오 정보 클래스
Main : 메인 클래스

📃 풀이

GeneralMember.java

package kosta.video;

public class GeneralMember {
	private String id;
	private String name;
	private String address;
	private Video rental; // 대여한 비디오
	
	public GeneralMember() {
		
	}
	
	public GeneralMember(String id, String name, String address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}
	
	public void print() {
		System.out.println("회원의 아이디 :" + id);
		System.out.println("회원의 이름 :" + name);
		System.out.println("회원의 주소 :" + address);
		rental.print();
		System.out.println("=============================");
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

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

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}

	public Video getRental() {
		return rental;
	}

	public void setRental(Video rental) {
		this.rental = rental;
	}

	
	
	
	
}

Video.java

package kosta.video;

public class Video {
	private String videoNo;
	private String title;
	private String actor;
	
	public Video() {
		
	}
	
	public Video(String videoNo, String title, String actor) {
		super();
		this.videoNo = videoNo;
		this.title = title;
		this.actor = actor;
	}
	
	public void print() {
		System.out.println("회원이 대여한 비디오 번호 : " + videoNo);
		System.out.println("회원이 대여한 비디오 제목 : " + title);
		System.out.println("회원이 대여한 비디오 주인공 : " + actor);
	}

	public String getVideoNo() {
		return videoNo;
	}

	public void setVideoNo(String videoNo) {
		this.videoNo = videoNo;
	}

	public String getTitle() {
		return title;
	}

	public void setTitle(String title) {
		this.title = title;
	}

	public String getActor() {
		return actor;
	}

	public void setActor(String actor) {
		this.actor = actor;
	}
	
	
	
}

Member.java

package kosta.video;

public class Member {
	private String id;
	private String name;
	private String address;
	
	public Member() {
		
	}

	public Member(String id, String name, String address) {
		super();
		this.id = id;
		this.name = name;
		this.address = address;
	}
	
	public void rentalVideo(Video video) {
		video.print();
		
	}

	public String getId() {
		return id;
	}

	public void setId(String id) {
		this.id = id;
	}

	public String getName() {
		return name;
	}

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

	public String getAddress() {
		return address;
	}

	public void setAddress(String address) {
		this.address = address;
	}
	
}

Main.java

package kosta.video;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
//		Video v1 = new Video("1","경관의피","조진웅");
//		Video v2 = new Video("2","기생충","송강호");
		
		Video videos[] = {
				 new Video("1","경관의피","조진웅"),
				 new Video("2","기생충","송강호")
		};
		
		GeneralMember members[] = {
				new GeneralMember("aaa","홍길동","가산"),
				new GeneralMember("bbb","박길동","서울")
		};
		
		
		for(int i = 0; i < members.length; i++) {
			members[i].setRental(videos[i]);
			members[i].print();
		}
		GeneralMember m = new GeneralMember("aaa","홍길동","가산");
		m.setRental(v1);
		m.print();
        
        Member m = new Member("3","김길동","동탄");
		m.rentalVideo(videos[1]);
	}

}

🎲 수강 신청

내용 : 3개의 클래스를 만들어 수강 신청 프로그램 작성


결과
1. 한 학생의 수강신청 목록을 조회
2. 과목을 신청한 학생의 목록을 조회


Course : 과목 과 관련된 클래스
Student : 학생 과 관련된 클래스
Main : 메인 클래스

📃 풀이

Course.java

package kosta.relation1;

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

public class Course {// 수강 과목 관련 내용
	private String title;//과목명
	private List<Student> students;//수강신청한 학생명단
	
	public Course() {
		
	}

	public Course(String title) {
		super();
		this.title = title;
		students = new ArrayList<Student>();
	}
	
	public void addStudent(Student student) {
		students.add(student);
		
	}
	
	public void removeStudent(Student student) {
		students.remove(student);
	}
	
	public void printCourse() {
		System.out.println("과목명 :"+title);
		for(Student student : students) {
			System.out.println("학생명 : "+ student.getName());
		}
	}
	
	public void show() {
		System.out.println("과목명 :"+title);
	}

	public String getTitle() {
		return title;
	}

	public void setSub(String sub) {
		this.title = sub;
	}
	
}

Student.java

package kosta.relation1;

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

public class Student {
	private String name;
	private List<Course> courses; //학생이 수강신청 과목들
	
	public Student() {
		
	}
	
	public Student(String name) {
		this.name = name;
		courses = new ArrayList<Course>();
	}
	
	public void register(Course course) {
		courses.add(course);//학생이 수강과목을 등록
		course.addStudent(this);//수강과목에 학생을 등록
	}
	
	public void dropCourse(Course course) {
		if(courses.contains(course)) {
			courses.remove(course);
			course.removeStudent(this);
		}
	}
	
	public void printMember() {
		System.out.println("학생 이름 : " + name);
		for(Course course : courses ) {
			System.out.println("수강 과목 : " + course.getTitle());
		}
	}

	public String getName() {
		return name;
	}

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

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

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

Main.java

package kosta.relation1;

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		
		Course c1 = new Course("전산학개론");
		Course c2 = new Course("기초통계학");
		Course c3 = new Course("빅데이터개론");
		
		Student s1 = new Student("홍길동");
		Student s2 = new Student("박길동");
		
		s1.register(c1);
		s1.register(c2);
		
		s1.register(c3);
		s2.register(c3);
		
		s1.dropCourse(c1);
		
		s1.printMember();
		c3.printCourse();
		
		

	}
}
profile
DB 엔지니어👍

0개의 댓글