Write out inheritance hierarchy and UML diagram for CampingSite and GroupSite cl
ID: 3694763 • Letter: W
Question
Write out inheritance hierarchy and UML diagram for CampingSite and GroupSite classes as specified in 2 and 3 below.
2. Write a program CampingSite.java to implement a CampingSite class for camping
site reservation system with the following components,
• Instance variable:
o campSite: string to indicate Site name
o dailyRate : daily charge for the site
o days: number of days booked
• One argument constructor: takes campSite, calls the 3-argument constructor
• 3-argument constructor
• Other standard and useful methods including totalCharge method
3. Write a subclass GroupSite.java with the following,
• GroupSite is a subclass of class CampingSite
• Instance variable:
o surCharge: amount of extra cleaning charge for group site per day
• 4-argument constructor
• Other standard and useful methods
4. Write a program SiteReservation.java to test the CampingSite and GroupSite classes
• Create a CampingSite object with “A5 ” as camp site name.
• Use set methods to put in dailyRate: $25, and days: 4
• Create another CampingSite object with “B6”, dailyRate of $20 for 3 days
• Create a GroupSite object with “G1” with dailyRate = $50, days= 2, surcharge=$20
• Put all three sites in an array.
• Polymorphically print out the site information including total charge.
Sample output:
Site: A5 Daily Rate: $25.00 Number of Days: 4
Total Charge: $100.00
Site: B6 Daily Rate: $20.00 Number of Days: 3
Total Charge: $60
Site: G1 Daily Rate: $50.00 Number of Days: 2
Surcharge per day: $20
Total Charge: $140
Grand Total for these reservations: $300
Explanation / Answer
class CampingSite{ String campSite; double dailyRate; int days; public CampingSite(String campSite, double dailyRate, int days) { this.campSite = campSite; this.dailyRate = dailyRate; this.days = days; } public CampingSite(String campSite) { new CampingSite(campSite, 0.0, 0); } public double totalCharge(){ return dailyRate*days; } public String getCampSite() { return campSite; } public void setCampSite(String campSite) { this.campSite = campSite; } public double getDailyRate() { return dailyRate; } public void setDailyRate(double dailyRate) { this.dailyRate = dailyRate; } public int getDays() { return days; } public void setDays(int days) { this.days = days; } @Override public String toString() { return "Site: "+campSite+" Daily Rate: $"+dailyRate+" Number of Days: "+days+" " + "Total Charge: $"+totalCharge()+" "; } } class GroupSite extends CampingSite{ double surCharge; public GroupSite(double surCharge, String campSite, double dailyRate, int days) { super(campSite, dailyRate, days); this.surCharge = surCharge; } public double getSurCharge() { return surCharge; } public void setSurCharge(double surCharge) { this.surCharge = surCharge; } } class SiteReservation{ public static void main(String[] args) { CampingSite A5 = new CampingSite("A5"); A5.setDailyRate(25); A5.setDays(4); CampingSite B6 = new CampingSite("B6",20,3); GroupSite G1 = new GroupSite(20,"G1",50,2); Object arr[] = new Object[3]; arr[0] = A5; arr[1] = B6; arr[2] = G1; for(Object o : arr){ System.out.println(o.toString()); } } }
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.