problem solving 2 abstract classes interfaces and exception handling n.
Download
Skip this Video
Loading SlideShow in 5 Seconds..
Problem Solving 2 Abstract Classes, Interfaces and Exception Handling PowerPoint Presentation
Download Presentation
Problem Solving 2 Abstract Classes, Interfaces and Exception Handling

Loading in 2 Seconds...

play fullscreen
1 / 18

Problem Solving 2 Abstract Classes, Interfaces and Exception Handling - PowerPoint PPT Presentation


  • 74 Views
  • Uploaded on

Problem Solving 2 Abstract Classes, Interfaces and Exception Handling. ICS-201 Introduction to Computing II Semester 071. Abstract Classes.

loader
I am the owner, or an agent authorized to act on behalf of the owner, of the copyrighted work described.
capcha
Download Presentation

PowerPoint Slideshow about 'Problem Solving 2 Abstract Classes, Interfaces and Exception Handling' - sancha


An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript
problem solving 2 abstract classes interfaces and exception handling

Problem Solving 2 Abstract Classes, Interfaces and Exception Handling

ICS-201 Introduction to Computing II

Semester 071

abstract classes
Abstract Classes
  • Design and implement an abstract class called SolidObject. A SolidObject has a surface area and volume which can be calculated. Provide the following methods in your class:
    • public abstract double getVolume()
    • public abstract double getSurfaceArea()
    • public String toString()

//prints the Surface Area and the Volume

solution
Solution

abstract class SolidObject

{

public abstract double getSurfaceArea();

public abstract double getVolume();

public String toString() {

return "Surface Area " + getSurfaceArea()

+ " Volume " + getVolume();

}

}

interfaces
Interfaces
  • Design and implement an interface called Usable. A Usable interface has only one method
    • public void use()

//This method will print the use of a solid object.

solution1
Solution:

interface Usable

{

public void use();

}

modify the abstract class
We may modify our abstract class to implement the interface Usable. Note that since the use() method is abstract, we need not provide an implementation for use() at this stage.

abstract class SolidObject implements Usable

{

public abstract double getSurfaceArea();

public abstract double getVolume();

public String toString() {

return "Surface Area " +

getSurfaceArea() +

" Volume " + getVolume();

}

}

Modify the abstract class
the cube class
The Cube Class
  • Design and implement a class called Cube which is a subclass of SolidObject. A cube has only one instance variable side representing its side and has the following formulae:
    • Surface Area: 6 side*side
    • Volume: side*side*side
    • Cubes are used as dice. Use the use() method to print the message “Used as dice”.
solution2
Solution

class Cube extends SolidObject implements Usable

{

private double x;

public Cube(double side) { x = side; }

public double getSurfaceArea() { return 6 * x * x; }

public double getVolume() { return x * x * x; }

public void use() { System.out.println("Used as dice"); }

public String toString() {

return "Cube " + super.toString();

}

}

the sphere class
The Sphere Class
  • Design and implement a class called Sphere which is a subclass of SolidObject. A sphere has only one instance variable radius representing its radius and has the following formulae:
    • Surface Area: 4 π radius2
    • Volume: 4/3 π radius3
    • Spheres are used as balls. Use the use() method to print the message “Used as balls”.
solution3
Solution:

class Sphere extends SolidObject implements Usable

{

private double r;

public Sphere(double radius) { r = radius; }

public double getSurfaceArea() { return 4*Math.PI*r*r; }

public double getVolume() { return 4.0/3.0*Math.PI*r*r*r; }

public void use() { System.out.println("Used as a ball"); }

public String toString() {

return "Sphere " + super.toString(); }

}

negativevalueexception class
NegativeValueException class
  • Design and implement a class NegativeValueException which generates an exception with a message “Negative value”. The purpose of this class is not to allow an initialization of a SolidObject with a negative value.
solution4
Solution:

class NegativeValueException extends Exception

{

public NegativeValueException(String message)

{

super(message);

}

public NegativeValueException() {

this("Negative Value, Solid cannot be initialized");

}

}

throwing exceptions
Throwing Exceptions
  • Modify your classes Cube and Sphere so that their constructor throws a NegativeValueException. Use the constructor of these classes to throw the NegativeValueException with the appropriate argument.
modified cube class
Modified Cube Class

class Cube extends SolidObject implements Usable

{

private double x;

public Cube(double side) throws NegativeValueException

{

x = side;

if(x < 0)

throw(new NegativeValueException("Negative

Side Length for the Cube!"));

}

//..Rest of the class is the same.

modified sphere class
Modified Sphere Class

class Sphere extends SolidObject implements Usable

{

private double r;

public Sphere(double rad) throws NegativeValueException

{

r = rad;

if(r < 0)

throw(new NegativeValueException("Negative

Value for the Sphere"));

}

//..Rest of the class is the same.

test class
Test Class
  • Write a test class that creates two Usable objects, a Cube and a Sphere. It handles (catches) the NegativeValueException generated by these two classes if an attempt is made to initialize these objects with a negative value.
the test class
The Test Class

public class SolidObjectTest {

public static void main(String[] args) {

Usable mycube, mysphere;

try {

mycube = new Cube(6);

mysphere = new Sphere(-7);

System.out.println(mycube); mycube.use();

System.out.println(mysphere); mysphere.use();

}

catch(NegativeValueException e) {

System.out.println(e.getMessage());

System.exit(0);

}

}

}

output
Output

Cube Surface Area 216.0 Volume 216.0

Used as dice

Sphere Surface Area 615.7521601035994 Volume 1436.755040241732

Used as a ball