好的,下面是代码:
public class MyClass {
long var;
public void MyClass(long param)
{
var=param; //st1
}
public static void main(string args[])
{
MyClass a,b;
a=new MyClass(); //st2
b=new MyClass(5); //st3
}
}
为什么错误发生在st3而不是st2行?
答案 0 :(得分:2)
此:
public void MyClass(long param)
声明一个名为MyClass
的方法,而我怀疑你想要一个构造函数。删除返回类型:
public MyClass(long param)
那时我怀疑你会得到你期望的行为。
我个人认为Java 允许你声明一个与包含类型同名的方法是一个设计缺陷,但这是另一回事。
另请注意
main(string args[])
应该是
main(String args[])
传统上或更多:
main(String[] args)