Create a class RightTriangle which implements the API exactly as described in the following JavadocLinks to an external site..
Don't forget - you will need to use the Pythagorean theorem (Links to an external site.) to find the hypotenuse (and therefore the perimeter) of a right triangle. You can find the area of a right triangle by multiplying the base and height together, then dividing this product by 2.
Use the runner_RightTriangle file to test the methods in your class; do not add a main method to your RightTriangle class.
Hint 1 - Javadoc only shows public methods, variables and constructors. You will need to add some private member variables to your RightTriangle class to store the necessary information. Think carefully about what information actually needs to be stored and how this will need to be updated when methods change the state of a RightTriangle object.
Hint 2 - As in the previous lesson's exercise it's helpful to add your method/constructor headers and any dummy returns needed before implementing each one properly. This will allow you to test your code using the runner class as you go along.
This is the runner code:
import java.util.Scanner;
public class runner_RightTriangle{
public static void main(String[] args){
Scanner scan = new Scanner(System.in);
RightTriangle t = new RightTriangle();
String instruction = "";
while(!instruction.equals("q")){
System.out.println("Type the name of the method to test. Type c to construct a new triangle, q to quit.");
instruction = scan.nextLine();
if(instruction.equals("getArea")){
System.out.println(t.getArea());
}
else if(instruction.equals("getBase")){
System.out.println(t.getBase());
}
else if(instruction.equals("getHeight")){
System.out.println(t.getHeight());
}
else if(instruction.equals("getHypotenuse")){
System.out.println(t.getHypotenuse());
}
else if(instruction.equals("getPerimeter")){
System.out.println(t.getPerimeter());
}
else if(instruction.equals("toString")){
System.out.println(t);
}
else if(instruction.equals("setBase")){
System.out.println("Enter parameter value:");
double arg = scan.nextDouble();
t.setBase(arg);
scan.nextLine();
}
else if(instruction.equals("setHeight")){
System.out.println("Enter parameter value:");
double arg = scan.nextDouble();
t.setHeight(arg);
scan.nextLine();
}
else if(instruction.equals("equals")){
System.out.println("Enter base and height:");
double bs = scan.nextDouble();
double ht = scan.nextDouble();
RightTriangle tOther = new RightTriangle(bs, ht);
System.out.println(t.equals(tOther));
scan.nextLine();
}
else if(instruction.equals("c")){
System.out.println("Enter base and height:");
double bs = scan.nextDouble();
double ht = scan.nextDouble();
t = new RightTriangle(bs, ht);
scan.nextLine();
}
else if(!instruction.equals("q")){
System.out.println("Not recognized.");
}
}
}
}
My code so far:
class RightTriangle{
private double base;
private double height;
public RightTriangle(){
base = 1.0;
height = 1.0;
}
public RightTriangle(double ds, double ht){
base=ds;
height=ht;
}
public boolean equals​(RightTriangle other){
if(base==other.base && height==other.height ){
return true;
}
else
{
return false;
}
}
public double getArea()
{
return (base*height)/2;
}
public double getBase(){
return base;
}
public double getHeight()
{
return height;
}
public double getHypotenuse()
{
return Math.sqrt((base*base)+(height*height));
}
public double getPerimeter()
{
return base+height+Math.sqrt((base*base)+(height*height));
}
void setBase (double bs)
{
if(bs==0){
System.exit(0);
}
else{
base=bs;
}
}
public void setHeight(double ht){
if(ht==0){
System.exit(0);
}
height=ht;
}
public java.lang.String toString()
{
return "base: "+base+" hegiht: "+height+" hypothesis: "+ Math.sqrt((base*base)+(height*height));
}
}
MY CODE SAYS THAT THE setHeight and setBase and toString METHODS ARE INCORRECT.