当我写“new Triangle();”时,我得到这个错误“没有 oppgave1 类型的封闭实例是可访问的”。我需要一些帮助来解释我在哪里做错了(关于三角形类)。我是java的新起点。谢谢你的提前。
public static void main(String[] args) {
Triangle T1 = new Triangle(1, 1, 1, "green", false);
Scanner input = new Scanner(System.in);
System.out.println("Enter three sides of the triangle: ");
double side1 = input.nextInt();
double side2 = input.nextInt();
double side3 = input.nextInt();
System.out.println("Enter a color: ");
String color = input.nextLine();
System.out.println("Enter true or false (to indicate triangle is filled or no): ");
String isFilled = input.nextLine();
}
public class GeometricObject {
//Data fields
private String color = "blue";
private boolean filled;
//The default geometricObject/constructor
public GeometricObject() {
this("No color", false);
}
//The geometricObject with the specified colour and filled value
public GeometricObject(String color, boolean filled) {
this.color = color;
this.filled = filled;
}
//Returning the colour
public String getColor() {
return color;
}
//Setting a new colour
public void setColor(String color) {
this.color = color;
}
//Returning the filled
public boolean isFilled() {
return true;
}
//Setting a new filled
public void setFilled(boolean filled) {
this.filled = filled;
}
public String toString() {
return (color + " - " + filled + " - ");
}
}
public class Triangle extends GeometricObject {
//Data fields
double side1 = 1.0;
double side2 = 1.0;
double side3 = 1.0;
//no-arg constructor
Triangle(){
this(0.0, 0.0, 0.0, "No color", false);
}
//A constructor that creates a triangle with the specified sides
public Triangle(double side1, double side2, double side3, String color, boolean filled) {
this.side1 = side1;
this.side2 = side2;
this.side3 = side3;
setColor(color);
setFilled(filled);
}
//Returning the sides
public double getside1() {
return side1;
}
public double getside2() {
return side1;
}
public double getside3() {
return side1;
}
//setting the new ones
public void setSide1(double side1) {
this.side1 = side1;
}
public void setSide2(double side2) {
this.side2 = side2;
}
public void setSide3(double side3) {
this.side3 = side3;
}
//getting the rule
/* public void setSide(double side1, double side2, double side3) {
if (((this.side1 + this.side2) > this.side3 ) && ((this.side2 + this.side3) > this.side1)
&& ((this.side1 + this.side3) > this.side2))
System .out.println("The rule (the sum of any two sides is greather"
+ " than the other side) is adhered");
} */
//Returning area
public double getArea() {
double p = ((side1 + side2 + side3) / 2);
double area = Math.sqrt(p * (p - side1) * (p - side2) * (p - side3));
return area;
}
//Returning perimeter
public double getPerimeter() {
return (side1 + side2 + side3);
}
public String toString() {
return (super.toString() + "Triangle: side1 = " + side1 + "side2 = " + side2 + " side3 = " + side3 +'\n'+
"Area i: " + getArea() + '\n' + "Perimeter is: " + getPerimeter()) ;
}
}
}