2013-07-15 2 views
0

Я знаю, что у кого-то была очень похожая проблема, и я попытался применить эти ответы к моему коду, но он все еще не работает, поэтому я надеялся, что один из ваших парней будет иметь возможность взглянуть на мой код, и объяснить, где я пошло не так ...Картезианская плоскость, использующая 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(); 

} 
} 

и это есть ошибка Im g Эттинг:

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 

Любая помощь будет очень признателен

+0

Почему ваш квадратный конструктор имеет высоту и ширину, высота квадратов всегда = его ширина. Проблема возникает из-за того, что вы должны создавать значения при создании нового квадрата, как вы здесь: Square One = new Square (10,20, 15, 15, «blue»); вы также должны здесь: Квадратный цвет = новый Square(); – w4etwetewtwet

ответ

5

В этой строке:

Square colour =new Square(); 

... вы пытаетесь вызвать конструктор без параметров для Square - но вы не объявили. Вы только объявили конструктор с 5 параметрами, так что это тот, который вы должны использовать для создания нового экземпляра.

Непонятно, почему вы создаете второй экземпляр в любом случае - почему бы вам просто не позвонить showColour по телефону One?

(Кстати, я бы сильно призываю вас присоединиться к Java именования, и делая ваши поля частного, так Если отступ совпадает, что в вопросе, исправить это тоже. - это сделает ваш код намного легче читать. Большинство IDE позволяют очень легко форматировать код.)

+0

Jon Skeet Огромное вам спасибо, что я так долго смотрел на него, даже не видя, что было так явно неправильно, что я даже этого не заметил ... Абсолютно люблю тебя прямо сейчас: D –

0

В дополнение к ответу выше вы должны заметить stacktrace, в котором говорится все.

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

он говорит, что это требует (только) конструктор PARAMS INT, INT, INT, INT, String, но вы назвали конструктор без аргументов.

Смежные вопросы