Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)
11th Edition
ISBN: 9780134670942
Author: Y. Daniel Liang
Publisher: PEARSON
bartleby

Videos

Textbook Question
Book Icon
Chapter 13, Problem 13.1PE

(Triangle class) Design a new Triangle class that extends the abstract GeometricObject class. Draw the UML diagram for the classes Triangle and GeometricObject then implement the Triangle class. Write a test program that prompts the user to enter three sides of the triangle, a color, and a Boolean value to indicate whether the triangle is filled. The program should create a Triangle object with these sides, and set the color and filled properties using the input. The program should display the area, perimeter, color, and true or false to indicate whether it is filled or not.

Expert Solution & Answer
Check Mark
Program Plan Intro

Program to create Triangle class

Program Plan:

  • Include a class name named “Exercise_13_01”.
    • Include the scanner package.
    • Declare the main() function.
    • Create a scanner object.
    • Prompt the user to enter three sides of the triangle.
    • Prompt the user to enter a color.
    • Prompt the user to enter a Boolean value on whether the triangle is filled.
    • Create triangle object with the entered user input.
    • Set color and set filled in the triangle.
    • Print the output.
    • Close the main() function.
    • Close the class “Exercise_13_01”.
  • Include an abstract class “GeometricObject”.
    • Declare all the data types of the variables.
    • Construct a default geometric object.
    • Construct a geometric object with color and filled value.
    • Assign color and fill to the object.
    • Set a new color.
    • Define an isFilled method returns filled and since filled is Boolean; the get method is named isFilled.
    • Set a new filled and getDateCreated method.
    • Override toString function to return output.
    • Define Abstract method getArea.
    • Define Abstract method getPerimeter.
    • Close class.
  • Include a class “Triangle” that extends the class GeometricObject.
    • Declare the three sides of the triangle.
    • Include a triangle constructor.
    • Assign values to all three sides of the triangle.
    • Assign triangle values to all attributes.
    • Return side1 and Set side1 to a new length.
    • Return side2 and Set side2 to a new length.
    • Return side3 and Set side3 to a new length.
    • Create a Function to return area of the Triangle.
    • Create a function to return a string description of the object.
    • Close class.
Program Description Answer

The java code to design a new Triangle class that extends the abstract GeometricObject class and to design a test program   that prompts the user to enter three sides of the triangle, a color, and a Boolean value to indicate whether the triangle is filled or not.

Explanation of Solution

Program:

File name: Exercise_13_01.java

//package to have user input

import java.util.Scanner;

//class Definition

public class Exercise_13_01

{

// Main method

public static void main(String[] args)

{

// Create a Scanner object

Scanner input = new Scanner(System.in);

/* Prompt the user to enter three sides of the triangle */

System.out.print("Enter three side of the triangle: ");

double side1 = input.nextDouble();

double side2 = input.nextDouble();

double side3 = input.nextDouble();

// Prompt the user to enter a color

System.out.print("Enter a color: ");

String color = input.next();

/*Prompt the user to enter a boolean value on whether the triangle is filled*/

System.out.print("Is the triangle filled (true / false)? ");

boolean filled = input.nextBoolean();

/* Create triangle object with the entered user input */

Triangle triangle = new Triangle(side1, side2, side3);

// set color

triangle.setColor(color);

// set filled

triangle.setFilled(filled);

// print the output

System.out.println(triangle.toString());

System.out.println("Area: " + triangle.getArea());

System.out.println("Perimeter: " + triangle.getPerimeter());

System.out.println("Color: " + triangle.getColor());

System.out.println("Triangle is" + (triangle.isFilled() ? "" : " not ")

+ "filled");

}

}

Filename: GeometricObject.java

//abstract class GeometricObject definition

public abstract class GeometricObject

{

//data type declaration

private String color = "while";

private boolean filled;

private java.util.Date dateCreated;

// Construct a default geometric object

protected GeometricObject()

{

dateCreated = new java.util.Date();

}

/* Construct a geometric object with color and filled value */

protected GeometricObject(String color, boolean filled)

{

dateCreated = new java.util.Date();

//assign color and fill

this.color = color;

this.filled = filled;

}

// Return color

public String getColor()

{

return color;

}

// Set a new color

public void setColor(String color)

{

this.color = color;

}

/* isFilled method returns filled and Since filled is boolean,the get method is named isFilled */

public boolean isFilled()

{

return filled;

}

// Set a new filled

public void setFilled(boolean filled)

{

this.filled = filled;

}

// Get dateCreated

public java.util.Date getDateCreated()

{

return dateCreated;

}

//override toString function to return output

@Override

public String toString()

{

return "created on " + dateCreated + "\ncolor: " + color +

" and filled: " + filled;

}

// define Abstract method getArea

public abstract double getArea();

//Define Abstract method getPerimeter

public abstract double getPerimeter();

}

Filename: Triangle.Java

/*Class definition of Triangle that extends the class GeometricObject */

public class Triangle extends GeometricObject

{

//declare the three sides of the triangle

private double side1;

private double side2;

private double side3;

//triangle constructor

public Triangle()

{

}

//assign values to all three sides of the triangle

public Triangle(double side1, double side2, double side3)

{

this.side1 = side1;

this.side2 = side2;

this.side3 = side3;

}

//assign triangle values to all attributes

public Triangle(double side1, double side2, double side3, String color, boolean filled)

{

this(side1, side2, side3);

setColor(color);

setFilled(filled);

}

// Return side1

public double getSide1()

{

return side1;

}

// Set side1 to a new length

public void setSide1(double side1)

{

this.side1 = side1;

}

// Return side2

public double getSide2()

{

return side2;

}

// Set side2 to a new length

public void setSide2(double side2)

{

this.side2 = side2;

}

// Return side3

public double getSide3()

{

return side3;

}

// Set side3 to a new length

public void setSide3(double side3)

{

this.side3 = side3;

}

// Function to Return area of the Triangle

@Override

public double getArea()

{

double s = (side1 + side2 + side3) / 2;

return Math.sqrt(s * (s - side1) * (s - side2) * (s - side3));

}

/* override function to Return perimeter of the triangle */

@Override

public double getPerimeter()

{

return side1 + side2 + side3;

}

/*override function to Return a string description of the object*/

@Override

public String toString()

{

return super.toString() + "\nArea: " + getArea() + "\nPerimeter: " + getPerimeter();

}

}

UML Diagram:

Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition), Chapter 13, Problem 13.1PE

Explanation:

  • Here, GeometricObject is an abstract class that extends the triangle class which is represented using an arrow. The triangle class then contains a rectangle that represents the objects used to input the three sides of the triangle.
  • The remaining part is used to represent all the methods and functions used in the triangle class.
  • The Triangle() method creates a triangle with default sides.  The method Triangle(side1:double, side2; double,side3;double) creates a triangle of the specified sides.
  • Then the respective sides of the triangles are returned using getSide() methods.
  • Then the method getArea() returns the area of the triangle and the method getPerimeter() returns the perimeter of the triangle and the function toString() returns a string description of the object.
Sample Output

Enter three side of the triangle: 3

4

5

Enter a color: red

Is the triangle filled (true / false)? false

created on Sun Jul 08 13:24:03 IST 2018

color: red and filled: false

Area: 6.0

Perimeter: 12.0

Area: 6.0

Perimeter: 12.0

Color: red

Triangle is not filled

Want to see more full solutions like this?

Subscribe now to access step-by-step solutions to millions of textbook problems written by subject matter experts!
Students have asked these similar questions
S A B D FL I C J E G H T K L Figure 1: Search tree 1. Uninformed search algorithms (6 points) Based on the search tree in Figure 1, provide the trace to find a path from the start node S to a goal node T for the following three uninformed search algorithms. When a node has multiple successors, use the left-to-right convention. a. Depth first search (2 points) b. Breadth first search (2 points) c. Iterative deepening search (2 points)
We want to get an idea of how many tickets we have and what our issues are. Print the ticket ID number, ticket description, ticket priority, ticket status, and, if the information is available, employee first name assigned to it for our records. Include all tickets regardless of whether they have been assigned to an employee or not. Sort it alphabetically by ticket status, and then numerically by ticket ID, with the lower ticket IDs on top.
Figure 1 shows an ASM chart representing the operation of a controller. Stateassignments for each state are indicated in square brackets for [Q1, Q0].Using the ASM design technique:(a) Produce a State Transition Table from the ASM Chart in Figure 1.(b) Extract minimised Boolean expressions from your state transition tablefor Q1, Q0, DISPATCH and REJECT. Show all your working.(c) Implement your design using AND/OR/NOT logic gates and risingedgetriggered D-type Flip Flops. Your answer should include a circuitschematic.

Chapter 13 Solutions

Introduction to Java Programming and Data Structures, Comprehensive Version (11th Edition)

Ch. 13.4 - How do you create a Calendar object for the...Ch. 13.4 - For a Calendar object c, how do you get its year,...Ch. 13.5 - Prob. 13.5.1CPCh. 13.5 - Prob. 13.5.2CPCh. 13.5 - Prob. 13.5.3CPCh. 13.5 - Prob. 13.5.4CPCh. 13.6 - Prob. 13.6.1CPCh. 13.6 - Prob. 13.6.2CPCh. 13.6 - Can the following code be compiled? Why? Integer...Ch. 13.6 - Prob. 13.6.4CPCh. 13.6 - What is wrong in the following code? public class...Ch. 13.6 - Prob. 13.6.6CPCh. 13.6 - Listing 13.5 has an error. If you add list.add...Ch. 13.7 - Can a class invoke the super.clone() when...Ch. 13.7 - Prob. 13.7.2CPCh. 13.7 - Show the output of the following code:...Ch. 13.7 - Prob. 13.7.4CPCh. 13.7 - What is wrong in the following code? public class...Ch. 13.7 - Show the output of the following code: public...Ch. 13.8 - Prob. 13.8.1CPCh. 13.8 - Prob. 13.8.2CPCh. 13.8 - Prob. 13.8.3CPCh. 13.9 - Show the output of the following code: Rational r1...Ch. 13.9 - Prob. 13.9.2CPCh. 13.9 - Prob. 13.9.3CPCh. 13.9 - Simplify the code in lines 8285 in Listing 13.13...Ch. 13.9 - Prob. 13.9.5CPCh. 13.9 - The preceding question shows a bug in the toString...Ch. 13.10 - Describe class-design guidelines.Ch. 13 - (Triangle class) Design a new Triangle class that...Ch. 13 - (Shuffle ArrayList) Write the following method...Ch. 13 - (Sort ArrayList) Write the following method that...Ch. 13 - (Display calendars) Rewrite the PrintCalendar...Ch. 13 - (Enable GeometricObject comparable) Modify the...Ch. 13 - Prob. 13.6PECh. 13 - (The Colorable interface) Design an interface...Ch. 13 - (Revise the MyStack class) Rewrite the MyStack...Ch. 13 - Prob. 13.9PECh. 13 - Prob. 13.10PECh. 13 - (The Octagon class) Write a class named Octagon...Ch. 13 - Prob. 13.12PECh. 13 - Prob. 13.13PECh. 13 - (Demonstrate the benefits of encapsulation)...Ch. 13 - Prob. 13.15PECh. 13 - (Math: The Complex class) A complex number is a...Ch. 13 - (Use the Rational class) Write a program that...Ch. 13 - (Convert decimals to fractious) Write a program...Ch. 13 - (Algebra: solve quadratic equations) Rewrite...Ch. 13 - (Algebra: vertex form equations) The equation of a...

Additional Engineering Textbook Solutions

Find more solutions based on key concepts
10.5" Balance the angles in Problem 9.22 El. Compute the preliminary azimuths for each course.

Elementary Surveying: An Introduction To Geomatics (15th Edition)

BankAccount and SavingsAccount Classes Design an abstract class named BankAccount to hold the following data fo...

Starting Out with Java: From Control Structures through Objects (7th Edition) (What's New in Computer Science)

Summarize the booting process.

Computer Science: An Overview (13th Edition) (What's New in Computer Science)

Explain the difference between overloading a function and redefining a function.

Starting Out with C++ from Control Structures to Objects (9th Edition)

Knowledge Booster
Background pattern image
Computer Science
Learn more about
Need a deep-dive on the concept behind this application? Look no further. Learn more about this topic, computer-science and related others by exploring similar questions and additional content below.
Similar questions
SEE MORE QUESTIONS
Recommended textbooks for you
Text book image
EBK JAVA PROGRAMMING
Computer Science
ISBN:9781337671385
Author:FARRELL
Publisher:CENGAGE LEARNING - CONSIGNMENT
Text book image
Microsoft Visual C#
Computer Science
ISBN:9781337102100
Author:Joyce, Farrell.
Publisher:Cengage Learning,
Text book image
C++ Programming: From Problem Analysis to Program...
Computer Science
ISBN:9781337102087
Author:D. S. Malik
Publisher:Cengage Learning
Text book image
C++ for Engineers and Scientists
Computer Science
ISBN:9781133187844
Author:Bronson, Gary J.
Publisher:Course Technology Ptr
Text book image
Programming Logic & Design Comprehensive
Computer Science
ISBN:9781337669405
Author:FARRELL
Publisher:Cengage
Text book image
Programming with Microsoft Visual Basic 2017
Computer Science
ISBN:9781337102124
Author:Diane Zak
Publisher:Cengage Learning
Call By Value & Call By Reference in C; Author: Neso Academy;https://www.youtube.com/watch?v=HEiPxjVR8CU;License: Standard YouTube License, CC-BY