当前位置: 代码迷 >> J2SE >> 构造函数调用的一点小疑点
  详细解决方案

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

热度:207   发布时间:2016-04-24 02:32:10.0
构造函数调用的一点小问题
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;
}
}

  相关解决方案