2012-12-06 42 views
0

我声明了一个新的“世界”对象另一个类,如下所示:爪哇 - 构造显然缺失,运营商超载

fray.World world = new fray.World(); 

Java编译器是抱怨无法找到构造函数(这是罚款该课程在fray包中的位置)。

我已经在fray.World类的构造函数如下:

World() { 
     this(100, 100, 100); 
    } 

    World(int width) { 
     this(width, 100, 100); 
    } 

    World(int width, int length) { 
     this(width, length, 100); 
    } 

    World(int width, int length, int height) { 
     this.x = new int[width]; 
     this.y = new int[length]; 
     this.z = new int[height]; 

     this.entities = new Entity[0]; 
    } 

这是怎么回事?

+0

从那里,你想将类实例?同样的软件包'fray'还是来自不同的软件包? – Chan

+0

当前未打包的类。 – gossfunkel

回答

3

您应该更改构造函数的可见性,以便您可以在其他包中使用它们,它们当前具有包级别访问权限。你可以尝试制作它们public

+0

我想了一会儿会解决它,但不幸的是,错误仍在发生。 – gossfunkel

1

除非Worldstatic inner class,你将需要使用:

fray.World world = new fray().new World(); 
+0

fray是一个包,而不是一个类 - 所以编译器只是抱怨它无法找到fray类。 – gossfunkel

+0

拼写的爆炸和完整的类可能有点大 - 这是World.java http://pastebin.com/NuskJeps – gossfunkel

+0

我编译这个类与Eclipse和与'javac'从一个unpackaged类,并没有得到编译错误。 – Reimeus