构造函数调用的一点小问题
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; }} 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;
}
}