我在Java博士中收到一条错误消息,说我的构造函数未定义为String,int,int,尽管我的构造函数具有这些参数(按相同顺序)并且所有内容都是大小写匹配。它也不是一个类的问题,如同另一个线程所暗示的那样过时了。
这是我的“Mall”类,构造函数接受一个字符串int和一个int
public class Mall{
//declare variables
private String name;//name of the mall
private int length; //length of the mall = # of columns of stores array
private int width; //width of the mall = # of rows of stores array
public void Mall(String name, int length, int width){
//this is the constructor I want to use
this.name=name;
this.length=length;
this.width=width;
}
}
这是我的主要方法
public class Test1{
public static void main(String[] args){
Mall m = new Mall("nameOfMall", 3, 3); //here is where the error happens
}
}
我已经尝试创建一个没有参数的构造函数,然后在我的对象创建语句中不传递任何参数,虽然这不会导致任何编译错误,但它也没有将其设置为正确的值。我也可以在Mall类中调用其他方法,这让我相信它是我的创建语句的问题,而不是Mall类中的任何内容。我认为这是对的吗?导致错误的原因是什么?
答案 0 :(得分:4)
你有一个方法而不是一个构造函数。构造函数没有void
。
这是一种方法:
public void Mall(String name, int length, int width){
this.length=length;
this.width=width;
}
这是一个构造函数:
public Mall(String name, int length, int width)
{
this.length = length;
this.width = width;
}
答案 1 :(得分:2)
从构造函数中删除返回类型void
。
有关构造函数的更多详细信息是:Here
答案 2 :(得分:0)
删除void
Mall(String name, int length, int width){
//this is the constructor I want to use
this.name=name;
this.length=length;
this.width=width;
}