(Die Dreieck-Klasse) Entwerfen Sie eine Klasse namens " Dreieck extends GeometricObject
Enthält die Klasse:
-
Drei Doppel - Daten-Felder mit dem Namen side1, Seite 2, und side3 mit default-Werten 1.0 zu bezeichnen drei Seiten des Dreiecks
-
Einen no-arg-Konstruktor, erzeugt ein Dreieck mit den angegebenen side1, Seite 2,und side3.
-
Werden die accessor-Methoden für alle drei Felder.
-
Einer Methode namens " getArea() zurückgibt, wenn dieses Dreieck.
-
Einer Methode namens " getPerimeter() liefert den Umfang dieses Dreiecks.
*Einer Methode mit dem Namen toString (), die gibt einen string zurück Beschreibung für das Dreieck.
Für die Formel zur Berechnung der Fläche eines Dreiecks, siehe ProgrammingExercise 2.15( in Eine Einführung in die java-Programmierung, 9. Auflage)
Die toString() Methode ist wie folgt implementiert:
return "Dreieck: side1 =" + side1 + "Seite 2 =" + Seite 2 + "side3" + side3;
Zeichnen der UML-Diagramme für die Klassen Dreieck und GeometricObject und implementieren Sie die Klassen. Schreiben Sie ein test-Programm, dass der Benutzer aufgefordert wird, geben Sie drei Seiten des Dreiecks, eine Farbe und einen booleschen Wert, um anzugeben, ob das Dreieck ausgefüllt ist. Das Programm sollte eine Dreieck Objekt mit diesen Seiten und legen Sie die Farbe und gefüllt Eigenschaften, die mit der Eingabe. Das Programm sollte anzeigen, Bereich, Umfang, Farbe und true oder false, um anzugeben, ob es gefüllt ist oder nicht.
Den Teil der übung, die ich habe Mühe mit dem test-Programm.
Wenn Ihr mir helfen könntet, indem ich mir die Zeiger zu, wie ich machen kann das Dreieck von input wäre ich sehr dankbar.
Den code habe ich im moment dieses :
Die GeometricObject
public class GeometricObject {
private String color = " white ";
private boolean filled;
private java.util.Date dateCreated;
public GeometricObject() {
dateCreated = new java.util.Date();
}
public GeometricObject(String color, boolean filled) {
dateCreated = new java.util.Date();
this.color = color;
this.filled = filled;
}
public String getColor() {
return color;
}
public void setColor(String color) {
this.color = color;
}
public boolean isFilled() {
return filled;
}
public void setFilled(boolean filled) {
this.filled = filled;
}
public java.util.Date getDateCreated() {
return dateCreated;
}
public String toString() {
return "Created on " + dateCreated + "\n color: " + color + " and filled ";
}
}
Das Dreieck Programm
public class Triangle extends GeometricObject {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public Triangle() {
}
public Triangle(double side1, double side2, double side3) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
}
public double setSide1() {
return side1;
}
public double setSide2() {
return side2;
}
public double setSide3() {
return side3;
}
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side2;
}
public double getArea() {
return (side1 + side2 + side3) / 2;
}
public double getPerimeter() {
return side1 + side2 + side3;
}
public String toString() {
return " Triangle: Side 1 = " + side1 + " Side 2 = " + side2
+ " Side 3 = " + side3;
}
}
Das Testprogramm.
import java.util.Scanner;
public class TestTriangle {
private double side1 = 1.0;
private double side2 = 1.0;
private double side3 = 1.0;
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the Triangle");
double side1 = input.nextDouble();
double side2 = input.nextDouble();
double side3 = input.nextDouble();
System.out.println("Enter the color of the Triangle");
String color = input.next();
System.out.println(" Is the Triangle filled? Reply with 'True' or 'False' ");
String filled = input.next();
}
{
new Triangle(side1, side2, side3);
//How do i get the information into theTriangle?
System.out.println("The Triangle Sides are \n side 1: " + side1 + "\n Side 2: " + side2 + "\n Side 3: " + side3);
System.out.println("The Triangle's Area is " + (side1 + side2 + side3) / 2);
System.out.println("The Triangle's Perimeter is "
+ (side1 + side2 + side3));
System.out.println("The Triangle's Color is " + //what goes here?);
System.out.println("Is the Triangle filled? " + //what goes here?);
}
}
new Triangle(side1, side2, side3)
?- Ok, vielen Dank für die schnelle Antwort. Ich habe den code, den Sie vorgeschlagen, jetzt bin ich näher an mein Ziel!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Müssen Sie erstellen eine neue
Triangle
Objekt wie dieses, so dass du eine ReferenzMüssen Sie auch legen Sie es
filled
undcolor
EigenschaftenDann können Sie die Methoden aufrufen wie diesem:
Sind Sie in der Lage, den Zugriff auf die
GeometricObject
'sisFilled()
,setFilled()
,getColor()
, undsetColor()
weil einTriangle
ist einGeometricObject
(extends
), so erbt alle Ihre Methoden.Durch die Art und Weise, das ist nicht, wie zur Berechnung der Fläche eines Dreiecks:
Schauen Sie sich dieses link für die richtige Formel,
Edit: ein weiteres problem mit dem code
Edit: Dreieck Formel
Triangle triangle = new Triangle(side1, side2, side3); triangle.setFilled(filled); triangle.setColor(color);
Auch alletriangle.getSide())
in `System.aus.println("Das Dreieck, die Seiten sind \n Seite 1:" + Dreieck.getSide1() + "\n-Seite 2: "+ Dreieck.getSide2() + "\n Seite 3: "+ Dreieck.getSide3())getColor()
,setColor()
,isFilled()
,setFilled()
ausGeometricObject
wenn ich brauche, um das Dreieck basiert auf der Eingabe?System.out.println("The Triangle Sides are \n side 1: " + triangle.getSide1() + "\n Side 2: " + triangle.getSide2() + "\n Side 3: " + triangle.getSide3());
- Die Methode getSide1() ist nicht definiert für den Typ Triangle - Die Methode getSide2() ist nicht definiert für den Typ Dreieck Die Methode getSide3() ist nicht definiert für den Typ DreieckSIX
set
Methoden in Ihrer Dreieck-Klasse. Drei von Ihnen solltenget
Methoden. Das sollte Ihr problem lösen. Bitte akzeptieren Sie diese Antwort.get
Methodenpublic double getArea() { return (side1 + side2 + side3) / 2;
aberpublic double getArea() { return Math.sqrt(side1 * side2 * side3) / 2;
?public double getArea() { return Math.sqrt(getPerimeter() / 2) * (getPerimeter() / 2) - side1 * (getPerimeter() / 2) - side2 * (getPerimeter() / 2) - side3;
GeometricObject
Dreieck