2013-12-23 61 views
1

所以我想創建一個boxclient做出開箱點具有下列文件:實際的和正式的參數列表的長度不同,但它們實際上是相同的

import java.awt.Point; 

public class boxclient{ 

    public static void main(String[] args){ 
    Point o = new Point(5,5); 
    Point t = new Point(5,5); 
    Point r = new Point(5,5); 
    Point f = new Point(5,5); 

    Box one = new Box(o,t,r,f); 
    } 

    } 

那是我的客戶,這是我的框類:

import java.awt.Point; 


public class Box{ 
private int x,y; 
private int rot; 
private int width, height; 

private Point[] my = new Point[4]; 
private Box[] conto = new Box[100]; 
private int concount = 0; 

public void Box(Point topleft, Point topright, Point botleft, Point botright){ 
    this.my[0] = topleft; 
    this.my[1] = topright; 
    this.my[2] = botleft; 
    this.my[3] = botright; 
    } 

而且我得到這個錯誤沒有明顯的原因:

1發現錯誤: 文件:C:\用戶\喬治\桌面\ 2dShooter \ boxclie nt.java [line:11] 錯誤:類Box中的構造函數Box不能應用於給定的類型; 要求:無參數 發現:java.awt.Point中,java.awt.Point中,java.awt.Point中,java.awt.Point中 原因:實際的和正式的參數列表長度

任何想法有什麼不同?我嘗試重新啓動我的drjava並保存並編譯並重寫爲幾次相同的名稱。

回答

1

你弄糊塗了與構造方法。方法有至少返回類型void。但構造函數不要有任何返回類型。他們只是創建了新實例

所以,

public void Box(Point topleft, Point topright, Point botleft, Point botright){ 

表示方法聲明,它不會被識別爲一個構造函數。這就是錯誤被拋出的原因。

你有沒有返回類型申報構造,就像下面

public Box(Point topleft, Point topright, Point botleft, Point botright){ 

了一個現在,構造具有Point類型的正確參數列表。現在不會有任何錯誤。希望你能理解!

7
public void Box(Point topleft, Point topright, Point botleft, Point botright){ 

這不是聲明構造函數的正確方法。替換成:

public Box(Point topleft, Point topright, Point botleft, Point botright){ 
+1

對特定錯誤消息的解釋是,缺少聲明的構造函數會導致編譯器生成零參數構造函數,該構造函數無法用四個參數調用。 –

0

您需要添加一個構造函數。你只在這裏調用一個方法。

相關問題