使用java的笛卡尔平面,找不到符号错误

时间:2013-07-15 18:40:59

标签: java

我知道其他人对我有一个非常类似的问题,我试图将这些答案应用到我的代码中,但它仍然无效,所以我希望你的一个人能够看看我的代码并解释我出错的地方......

这是我的代码:

public class Square extends Rectangle{
String Colour;

    public Square (int x, int y, int h, int w, String Co){
    super (x,y,h,w);
    Colour=Co;
    System.out.println("Constructing a Square now");
    }
        public void showColour(){
        System.out.println("The colour of the square is " + Colour);
        }
}

第二部分:

public class InheritProgram {
public static void main (String [] args){
Square One= new Square (10,20, 15, 15, "blue");

Square colour =new Square();
colour.showColour();

//GeometricShape center= new displayCenter();

}
}

这就是我得到的错误:

C:\Users\Karen\Documents\Java\Lab8-1\InheritProgram.java:5: error: constructor Square in class Square cannot be applied to given types;
Square colour =new Square();
               ^
  required: int,int,int,int,String
  found: no arguments
  reason: actual and formal argument lists differ in length
1 error

Tool completed with exit code 1

非常感谢任何帮助

2 个答案:

答案 0 :(得分:5)

在这一行:

Square colour =new Square();

...您正在尝试为Square调用无参数构造函数 - 但您尚未声明一个。您只使用5个参数声明了构造函数,因此您必须使用该参数来创建新实例。

目前尚不清楚为什么要创建第二个实例 - 为什么不在showColour上拨打One

(顺便说一句,我强烈敦促你开始遵循Java命名约定,并使你的字段也是私有的。如果你的缩进与问题中的缩进相符,那么也要修复它 - 它'这将使您的代码更容易阅读。大多数IDE允许您非常轻松地格式化代码。)

答案 1 :(得分:0)

除了上面的答案,你应该注意到堆栈跟踪,它说明了一切。

Square colour =new Square();
required: int,int,int,int,String
found: no arguments

它说它需要(只)构造函数使用params int,int,int,int,String,但是你已经调用了一个no-arg构造函数。