[JAVA] Write codes using Type 1 Inner Classes (All outer classes are implicitly
ID: 3803727 • Letter: #
Question
[JAVA]
Write codes using Type 1 Inner Classes (All outer classes are implicitly static). This means that all the classes created for this program will be created inside a single Outer class.
(Triangle class) Design a new Triangle class that extends the abstract GeometricObject class. Draw the UML diagram for the classes Triangle and GeometricObject and 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.
(Please don't use ArrayList class!)
all variables declared in class must be private. provide getter/setter methods. always add a print() for debugging add a default constructor.
Explanation / Answer
import java.util.Scanner;
public class OuterClass {
public static abstract class GeoMetricObject {
public abstract double area(double side1, double side2, double side3);
public abstract double perimeter(double side1, double side2, double side3);
}
public static class Triangle extends GeoMetricObject {
@Override
public double area(double side1, double side2, double side3) {
double s4 = (side1 + side2 + side3 )/ 2 ;
double area = Math.sqrt(s4 * (s4 - side1) * (s4 - side2) * (s4 - side3));
return area;
}
@Override
public double perimeter(double side1, double side2, double side3) {
double perimeter = side1 + side2 + side3;
return perimeter;
}
public static void main(String[] args) {
double side1,side2,side3, area, perimeter;
String color;
boolean isFilled = false;
Scanner sc = new Scanner(System.in);
System.out.println("Please enter first side of triangle: ");
side1 = sc.nextDouble();
System.out.println("Please enter second side of triangle: ");
side2 = sc.nextDouble();
System.out.println("Please enter third side of triangle: ");
side3 = sc.nextDouble();
System.out.println("Please enter triangle color: ");
color = sc.next();
System.out.println("Do you want to fill trianlge with color : Y/N");
if(sc.next().equalsIgnoreCase("Y")) {
isFilled = true;
}
GeoMetricObject geoMetricObject = new OuterClass.Triangle();
area = geoMetricObject.area(side1, side2, side3);
perimeter = geoMetricObject.perimeter(side1, side2, side3);
System.out.println("Area of triangle is: "+area);
System.out.println("Perimeter of triangle is: "+perimeter);
if(isFilled) {
System.out.println("Triangle is filled with "+ color + " color");
} else {
System.out.println("Triangle is not filled with "+ color + " color");
}
}
}
}
Related Questions
drjack9650@gmail.com
Navigate
Integrity-first tutoring: explanations and feedback only — we do not complete graded work. Learn more.