读书人

构造函数调用的一点小疑点

发布时间: 2011-12-28 22:45:21 作者: rapoo

构造函数调用的一点小问题

Java code
public class Gouzao1{  public static void main(String[] args)  {    Shili1 L1=new Shili1();    L1.Shili1();    Shili1 L2=new Shili1(5,"sdf");//加入这个后就出错了       }}class Shili1{  int a;  String b;  String c;  void Shili1()  {    System.out.println("我是没有参数的哦!");  }  void Shili1(int a,String b)  {    this.a=a;    this.b=b;  }  void Shili1(int a,String b,String c)  {    this.b=b;    this.c=c;  }} 




[解决办法]
构造函数没有返回类型
Java code
public Shilil(int a,String s){  //...}
[解决办法]
Shili1 L1=new Shili1();//没有明确定义构造函数,调用默认构造函数
L1.Shili1();
Shili1 L2=new Shili1(5,"sdf");//加入这个后就出错了 ----你根本没有定义这个参数的构造函数。



[解决办法]
你定义的是三个方法 而不是重载的三个构造函数
第一个调用的是默认的构造函数
而你并没有定义其他的构造函数
[解决办法]
构造方法是没有返回值的,不然会被认为是普通方法
所以应该是
public class Gouzao1
{
public static void main(String[] args)
{
Shili1 L1=new Shili1();
L1.Shili1();
Shili1 L2=new Shili1(5,"sdf");//加入这个后就出错了


}
}
class Shili1
{
int a;
String b;
String c;
void Shili1()
{
System.out.println("我是没有参数的哦!");
}
Shili1(int a,String b)
{
this.a=a;
this.b=b;
}
Shili1(int a,String b,String c)
{
this.b=b;
this.c=c;
}
}

读书人网 >J2SE开发

热点推荐