По существу расширение абстрактного класса для распечатки периметра, площади и теоремы Пифагора о треугольнике. Я, кажется, продолжаю получать 0 за периметр и площадь. GeometricObject
- это родительский класс, а внутри RightTriangle
- это то, где у меня возникают проблемы. Я чувствую, как будто ответ очень прост, и я перебираю его, но это растоптало меня. На данный момент я игнорирую остальную информацию от GeometricObject
за исключением области и периметра. Я попытался создать новый объект внутри RightTriangle
как Triangle
, и все, кажется, работает нормально, за исключением того, что я не получаю значение. Я думаю, что это должно что-то делать с моими формулами.
package GeoObj;
public abstract class GeometricObject {
private String color;
private boolean filled;
private java.util.Date dateCreated;
protected GeometricObject() {
this ("white", false);
}
protected GeometricObject (String color, boolean filled) {
this.color = color;
this.filled = filled;
this.dateCreated = new java.util.Date();
}
public String getColor () {
return color;
}
public boolean getFilled () {
return filled;
}
public java.util.Date getDateCreated () {
return dateCreated;
}
public void setColor (String color) {
this.color = color;
}
public void setFilled (boolean filled) {
this.filled = filled;
}
public String toString () {
return "created on " + dateCreated + "\nColor: " + color + " and filled: " + filled;
}
public abstract double getArea ();
public abstract double getPerimeter ();
}
package GeoObj;
import java.util.Scanner;
public class RightTriangle extends GeometricObject {
private double base;
private double height;
private double hypotenuse;
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
System.out.println("Please enter the base");
double base = scan.nextDouble();
//double base = Double.parseDouble("" + scan.nextDouble());
System.out.println("Please enter the height");
double height = scan.nextDouble();
//double height = Double.parseDouble("" + scan.nextDouble());
System.out.println("Please enter the hypotenuse");
double hypotenuse = scan.nextDouble();
//double hypotenuse = Double.parseDouble("" + scan.nextDouble());
scan.close();
RightTriangle triangle = new RightTriangle(base,height,hypotenuse);
System.out.println("The perimeter of triangle is " + triangle.getPerimeter());
System.out.println("The area of triangle is " + triangle.getArea());
System.out.println("The pyragotherom of triangle is " + triangle.getHypotenuse());
}
RightTriangle(){
double height;
double base;
double hypotenuse;
}
RightTriangle(double height, double base, double hypotenuse){
height = this.height;
base = this.height;
hypotenuse = this.hypotenuse;
}
RightTriangle(String color, boolean filled){
this.setColor(color);
this.setFilled(filled);
}
@Override
public double getPerimeter() {
// System.out.println("The perimeter of triangle is " + triangle.getPerimeter());
return base + height + hypotenuse;
//return perimeter;
}
@Override
public double getArea() {
return 0.5 * base * height;
//return area;
}
public double getHypotenuse() {
return Math.sqrt(Math.pow(base,2) + Math.pow(height,2));
//return hypotenuse;
}
public double getBase() {
return base;
}
public double getHeight() {
return height;
}
public void setBase(double base) {
this.base = base;
}
public void setHeight(double height) {
this.height = height;
}
public void setHypotenuse(double hypotenuse) {
this.hypotenuse = hypotenuse;
}
}