我收到以下错误,这些是我的课程。
形状类:
public abstract class Shape implements Triangle{
protected static final double DEFAULT_SIZE = (double) 1.0;
protected static final String DEFAULT_NAME = "Unknown";
private String shapeName;
public Shape(){
this.shapeName = DEFAULT_NAME;
}
public Shape(String name) {
setShapeName(name);
}
protected void setShapeName(String name) {
if( name.trim().length() == 0 )
shapeName = DEFAULT_NAME;
else
shapeName = new String ( name );
}
public String getShapeName() {
//name
return shapeName;
}
public abstract double getSurfaceArea();
public abstract double getPerimeter();
public String toString{
return String.format("%s %s\nshape name: %s",getShapeName());
}
}
矩形类:
public class Rectangle extends Shape implements Triangle {
private double length;
private double heigth;
public Rectangle() {
super("Rectangle");
setLength( super.DEFAULT_SIZE );
setHeight( Shape.DEFAULT_SIZE );
}
public Rectangle(double theLength, double theHeight ){
super("Rectangle");
if ( theLength < 0 )
setLength( Shape.DEFAULT_SIZE );
else setLength( theLength );
if ( theHeight < 0)
setHeight( Shape.DEFAULT_SIZE );
else setHeight( theHeight );
}
public double getSurfaceArea() {
return this.length * this.heigth;
}
public double getPeremeter() {
return 2 * this.length + 2 * this.length;
}
public double getLength(){
return this.length;
}
public double getHeight(){
return this.heigth;
}
public void setLength( double theLength ){
if ( theLength <= 0 )
return;
this.length = theLength;
}
public void setHeight( double theHeight ){
if (theHeight <= 0 )
return;
this.heigth = theHeight;
}
public String toString(){
return String.format("%s: \n%s: %s (%s) \n%s: %d \n%s: $%,.2f",
"Rect Surface Area ", "Rect Peremeter", getSurfaceArea(), getPeremeter());
}
public double getSizeAmount(){
}
}
圈子类:
public class Circle extends Shape {
private double radius;
public Circle( double theRadius ){
super( "Circle" );
if ( theRadius <= 0.0 )
setRadius( Shape.DEFAULT_SIZE );
else
setRadius( theRadius );
}
public Circle(String string, String string2, String string3, String string4) {
// TODO Auto-generated constructor stub
}
public double getSurfaceArea(){
return this.radius * this.radius * Math.PI;
}
public double getPeremeter(){
;
return 2 * this.radius + Math.PI;
}
public double getRadius(){
return this.radius;
}
public void setRadius( double theRadius ) {
if( theRadius <= 0 )
return;
this.radius = theRadius;
}
@Override
public double getPerimeter() {
// TODO Auto-generated method stub
return 0;
public double getSizeAmount(){
}
public String toString(){
return String.format("%s: \n%s: %s (%s) \n%s: %d \n%s: $%,.2f",
"Circle Surface Area ", "Circle Peremeter", getSurfaceArea(), getPeremeter());
}
}
}
三角类:
//triangle interface decleration
public interface Triangle {
double getSizeAmount(); //calculate sizes of triangle; no implementation
}//end interface triangle
主要课程:
import javax.swing.JOptionPane;
public class ShapeApp {
//public static void main(String args[])
public static void main(String[] args) {
Triangle triangleObjects[] = new Triangle[ 4 ];
triangleObjects[ 0 ] = new Rectangle("3.5", "4.6","42");
triangleObjects[ 1 ] = new Rectangle("3", "2","34");
triangleObjects[ 2 ] = new Circle("Circle", "Rectangle","0808","0808");
triangleObjects[ 3 ] = new Circle("Circle","Rectangle","2334","2423");
System.out.println( "List of all Shapes:\n" );
for( Triangle currentTriangle : triangleObjects ){
System.out.printf("%s \n%s: $%,.2f\n\n",
currentTriangle.toString(),
"ovo testiramo", currentTriangle.getSizeAmount());
}
}
}
这是我得到的错误:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
The constructor Rectangle(String, String, String) is undefined
The constructor Rectangle(String, String, String) is undefined
at ShapeApp.main(ShapeApp.java:14)
答案 0 :(得分:3)
错误信息非常明确:
The constructor Rectangle(String, String, String) is undefined
at ShapeApp.main(ShapeApp.java:14)
您正在创建具有3个参数的Rectangle对象。
new Rectangle("3.5", "4.6","42");
但是你的Rectangle类只有两个构造函数
1)具有零args的构造函数2)具有2个args的构造函数
public Rectangle() {
......
}
public Rectangle(double theLength, double theHeight )
{ ....
}
您需要在Rectangle
类中添加带有3个参数的构造函数(或)将对象创建更改为两个args构造函数。