Please Explain this code public class CollegeCourse { String departmentName; int
ID: 3862747 • Letter: P
Question
Please Explain this code
public class CollegeCourse {
String departmentName;
int courseNumber, numberOfCredits, courseFee;
public CollegeCourse() {
// TODO Auto-generated constructor stub
}
/**
* @param departmentName
* @param courseNumber
* @param numberOfCredits
*/
public CollegeCourse(String departmentName, int courseNumber,
int numberOfCredits) {
this.departmentName = departmentName;
this.courseNumber = courseNumber;
this.numberOfCredits = numberOfCredits;
this.courseFee = numberOfCredits * 120;
}
/**
* @return the departmentName
*/
public String getDepartmentName() {
return departmentName;
}
/**
* @param departmentName
* the departmentName to set
*/
public void setDepartmentName(String departmentName) {
this.departmentName = departmentName;
}
/**
* @return the courseNumber
*/
public int getCourseNumber() {
return courseNumber;
}
/**
* @param courseNumber
* the courseNumber to set
*/
public void setCourseNumber(int courseNumber) {
this.courseNumber = courseNumber;
}
/**
* @return the numberOfCredits
*/
public int getNumberOfCredits() {
return numberOfCredits;
}
/**
* @param numberOfCredits
* the numberOfCredits to set
*/
public void setNumberOfCredits(int numberOfCredits) {
this.numberOfCredits = numberOfCredits;
}
/**
* @return the courseFee
*/
public int getCourseFee() {
return courseFee;
}
/**
* @param courseFee
* the courseFee to set
*/
public void setCourseFee(int courseFee) {
this.courseFee = courseFee;
}
public void Display() {
System.out.println("Department name " + departmentName
+ ", Course number " + courseNumber + ", Number of credits "
+ numberOfCredits + " Course fee :$" + courseFee);
}
}
public class LabCourse extends CollegeCourse {
public LabCourse() {
// TODO Auto-generated constructor stub
}
public LabCourse(String departmentName, int courseNumber,
int numberOfCredits) {
super(departmentName, courseNumber, numberOfCredits);
// TODO Auto-generated constructor stub
this.courseFee = (numberOfCredits * 120) + 50;
}
public void Display() {
System.out.println("course is a lab course:");
System.out.println("Department name " + departmentName
+ ", Course number " + courseNumber + ", Number of credits "
+ numberOfCredits + " Course fee :$" + courseFee);
}
}
import java.util.Scanner;
public class UseCourse {
public static void main(String[] args) {
Scanner scanner = null;
try {
scanner = new Scanner(System.in);
String departmentName;
int courseNumber, numberOfCredits;
CollegeCourse collegeCourse = null;
System.out.print("Enter the Deparment Name:");
departmentName = scanner.next();
System.out.print("Enter the Course Number:");
courseNumber = scanner.nextInt();
System.out.print("Enter the Number Of Credits:");
numberOfCredits = scanner.nextInt();
if (departmentName.equalsIgnoreCase("BIO")
|| departmentName.equalsIgnoreCase("CHEM")) {
collegeCourse = new LabCourse(departmentName, courseNumber,
numberOfCredits);
} else {
collegeCourse = new CollegeCourse(departmentName, courseNumber,
numberOfCredits);
}
collegeCourse.Display();
} catch (Exception e) {
// TODO: handle exception
} finally {
scanner.close();
}
}
Explanation / Answer
This is very simple example of Inheretence
you have defined two class named CollegeCourse and LabCourse( LabCourse is extending the CollegeCourse for defining extra functionality for Lab classes)
and you have defined UseCourse class for main method
1) CollegeCourse is parent class of LabCourse class
in this class you have ddefined some instance variable for class
like
departmentName;
courseNumber,
numberOfCredits,
courseFee;
you have defined parameterized constructor for intalizaing the instance variable by console input that you defined in your main method in UseCourse class
in addition to this you have defined Getter and Setter method for getting and setting values
2) LabCourse Class
LabCourse class is just enhanchment of CollegeCourse only diffrence is that you are increasing the fee in LabCourse class
so we extend CollegeCourse class and for additionqal functionality for fee increasing is defined in counstrucotr
public LabCourse(String departmentName, int courseNumber,
int numberOfCredits) {
super(departmentName, courseNumber, numberOfCredits);
// TODO Auto-generated constructor stub
this.courseFee = (numberOfCredits * 120) + 50;
}
3) UseCourse class
This is the main class where we are making a object of the previous class and then use the functionality by whatever input we get from console , the input given bu user
BUT
here if you enter department name as BIO or CHEM
we are calling the object of LabCourse class cause BIO and CHEM are labClasses