In: Computer Science
Use composition relationship. What is composition? You will find out what composition in object oriented programming.
Based on the bedroom package below please create your own classroom package.
After completing entire package, you will write about your package specification in Readme.txt and also explain how you apply composition to your project.
package Bedroom;
public class Bedroom {
private String name;
private Wall wall1;
private Wall wall2;
private Wall wall3;
private Wall wall4;
private Ceiling ceiling;
private Bed bed;
private Lamp lamp;
public Bedroom(String name, Wall wall1, Wall wall2, Wall wall3,
Wall wall4, Ceiling ceiling, Bed bed, Lamp lamp){
this.name = name;
this.wall1 = wall1;
this.wall2 = wall2;
this.wall3 = wall3;
this.wall4 = wall4;
this.ceiling = ceiling;
this.bed = bed;
this.lamp = lamp;
}
public Lamp getLamp(){
return this.lamp; //return lamp
}
public void makeBed(){
System.out.println("Bedroom --> I am making my bed. ");
bed.make();
make();
}
public void make(){
straightenSheet();
fluffPillow();
}
public void straightenSheet(){
System.out.println("Straighten Sheet");
}
public void fluffPillow(){
System.out.println("Fluff pillow");
}
}
/*****************************Classroom.java**************************/
public class Classroom {
/*
* This is the composition because each class room must
have class name , students, and teachers
*/
private String className;
private Student student1;
private Student student2;
private Student student3;
private Student student4;
private Teacher teacher1;
private Teacher teacher2;
/*
* Creating class room
*/
public Classroom(String className, Student student1,
Student student2, Student student3, Student student4,
Teacher
teacher1, Teacher teacher2) {
this.className = className;
this.student1 = student1;
this.student2 = student2;
this.student3 = student3;
this.student4 = student4;
this.teacher1 = teacher1;
this.teacher2 = teacher2;
}
public String getClassName() {
return className;
}
public Student getStudent1() {
return student1;
}
public Student getStudent2() {
return student2;
}
public Student getStudent3() {
return student3;
}
public Student getStudent4() {
return student4;
}
public Teacher getTeacher1() {
return teacher1;
}
public Teacher getTeacher2() {
return teacher2;
}
public void arrangeClassRoom() {
System.out.println("Arranging
class room");
}
public void takeAttendance() {
System.out.println("Attendance
Taken");
}
//print class room
@Override
public String toString() {
return "Class Room: " + className +
"\nStudents: " + student1.toString() + "" + "\n" +
student2.toString()
+ "\n" + student3.toString() + "\n" +
student4.toString() + "\nTeachers: " + teacher1.toString() +
"\n"
+ teacher2.toString();
}
}
/**********************************Student.java****************************/
public class Student {
private String name;
private String major;
public Student(String name, String major) {
this.name = name;
this.major = major;
}
public String getName() {
return name;
}
public String getMajor() {
return major;
}
public void read() {
System.out.println("Reading
Book");
}
@Override
public String toString() {
return "Name: " + name + "\nMajor:
" + major + "\n";
}
}
/************************************Teacher.java**************************/
public class Teacher {
private String name;
private String spec;
public Teacher(String name, String spec) {
this.name = name;
this.spec = spec;
}
public String getName() {
return name;
}
public String getSpec() {
return spec;
}
public void teach() {
System.out.println("Teaching");
}
@Override
public String toString() {
return "Name: " + name +
"\nSpecification: " + spec + "\n";
}
}
/**********************************TestClassroom.java**************************/
public class TestClassroom {
public static void main(String[] args) {
//creating classroom using
composition
Classroom c1 = new Classroom("Java
class", new Student("JKS", "CS"), new Student("Virat",
"ECE"),
new Student("MS", "ELE"), new Student("Vijay",
"CS"), new Teacher("Raj", "CS"),
new Teacher("Ajay", "ECE"));
System.out.println(c1.toString());
}
}
/*********************output***********************/
Class Room: Java class
Students: Name: JKS
Major: CS
Name: Virat
Major: ECE
Name: MS
Major: ELE
Name: Vijay
Major: CS
Teachers: Name: Raj
Specification: CS
Name: Ajay
Specification: ECE
Please let me know if you have any doubt or modify the answer, Thanks :)