BCS 345 Lab 9 CRN 21177, 25160 JLi Spring 2020 ------------------------------------------------------------------------------------------------------------------------ Objectives: Get hands-on...

BCS 345 Lab 9 CRN 21177, 25160 JLi Spring 2020 ------------------------------------------------------------------------------------------------------------------------ Objectives: Get hands-on experience on Java abstract classes and interfaces. Understand polymorphism and dynamic binding.

Tasks: In this lab, we will use the Rectangle class in Lab 8 and make a new class Circle, an abstract class Shape, and an interface Drawable. The Shape class is the superclass of Rectangle and Circle. Both Rectangle and Circle classes implement the Drawable interface.


Create a new project with the main class called BCS345Lab9. Copy Rectangle.java from Lab 8 and place them in the src directory of the new project.


1. Create a new class called Circle that has the following private field and public methods: private double radius; 1) setRadius method to set the radius according to the parameter. The valid value for the radius is non-negative, otherwise use 0. 2) getRadius method to return the value of radius. 3) A default constructor to create a Circle object and initialize the radius to 0. 4) An overloaded constructor to create a Circle object and initialize radius according to the parameter. The valid value must be non-negative. If a value is negative, use 0 instead. 5) A copy constructor to create a Circle object and instantiate it with an existing Circle object. 6) Override the toString method to output the radius of a Circle object. 7) equals method to check if two Circle objects have the same radius value. Return true if they do; otherwise, return false.


2. Create an abstract class called Shape which includes an abstract method getArea which returns a floating-point value. Let class Rectangle and Circle extend the abstract class Shape.


3. Define the getArea method in the Circle class. (The Rectangle class has a getArea method already.) 4. Update the toString method in the Rectangle and Circle class so that the area is also displayed.


5. Define an interface Drawable which includes an abstract void method draw. Let class Rectangle and Circle implement the interface Drawable.


6. Define the draw method in the Rectangle class to display a message “Draw a rectangle”.


7. Define the draw method in the Circle class to display a message “Draw a circle”.


8. In the client program BCS345Lab9.java, create an array of Shape of size 4 and instantiate it with the following objects:


A Rectangle object with length 10 and width 20, A Rectangle object with length 3 and width -5 (to test data validation), A Circle object with radius -1. A Circle object with radius 3.3. Use a loop to call the toString method to display the contents of the above objects. Explain the output.


Declare an array of Drawable of size 4 and instantiate it with the same values as in 8. Use a loop to call the draw method with each object. Explain the output.





May 18, 2022
SOLUTION.PDF

Get Answer To This Question

Submit New Assignment

Copy and Paste Your Assignment Here