代码如下:
//构造函数测试
package firstPackage;public class Person
{
private String name;
private int age;
private boolean bl;
// public Person(String n)
// {
// name=n;
// // TODO Auto-generated constructor stub
// }
// public Person() {
// // TODO Auto-generated constructor stub
// }
// public Person(String n, int a)
// {
// name=n;
// age=a;
// }
public void Person(String n)
{
name=n;
}
public void Person(String n,int a)
{
name=n;
age=a;
} public static void main(String[] args)
{
// TODO Auto-generated method stub
Person Pa=new Person();
System.out.println("Pa.name="+Pa.name+" Pa.age="+Pa.age+" Pa.bl="+Pa.bl);
Person Pb=new Person("honey");
System.out.println("Pb.name="+Pb.name+" Pb.age="+Pb.age+" Pb.bl="+Pb.bl);
Person Pc=new Person("honey",23);
System.out.println("Pc.name="+Pc.name+" Pc.age="+Pc.age+" Pc.bl="+Pc.bl);
}}
当用运行这段代码的时候,会提示没有对应的构造函数。
当把当前这段构造函数用注释部分的构造函数替换掉,就正常了两部分构造函数唯一的差别就是void,这个是什么原因导致的,在别程序直接用void没有出现异常,请大侠解释
小弟最近在看java。
//构造函数测试
package firstPackage;public class Person
{
private String name;
private int age;
private boolean bl;
// public Person(String n)
// {
// name=n;
// // TODO Auto-generated constructor stub
// }
// public Person() {
// // TODO Auto-generated constructor stub
// }
// public Person(String n, int a)
// {
// name=n;
// age=a;
// }
public void Person(String n)
{
name=n;
}
public void Person(String n,int a)
{
name=n;
age=a;
} public static void main(String[] args)
{
// TODO Auto-generated method stub
Person Pa=new Person();
System.out.println("Pa.name="+Pa.name+" Pa.age="+Pa.age+" Pa.bl="+Pa.bl);
Person Pb=new Person("honey");
System.out.println("Pb.name="+Pb.name+" Pb.age="+Pb.age+" Pb.bl="+Pb.bl);
Person Pc=new Person("honey",23);
System.out.println("Pc.name="+Pc.name+" Pc.age="+Pc.age+" Pc.bl="+Pc.bl);
}}
当用运行这段代码的时候,会提示没有对应的构造函数。
当把当前这段构造函数用注释部分的构造函数替换掉,就正常了两部分构造函数唯一的差别就是void,这个是什么原因导致的,在别程序直接用void没有出现异常,请大侠解释
小弟最近在看java。
package firstPackage;public class Person
{
private String name;
private int age;
private boolean bl;
public void Person()
{
}// public Person(String n)
// {
// name=n;
// // TODO Auto-generated constructor stub
// }
// public Person() {
// // TODO Auto-generated constructor stub
// }
// public Person(String n, int a)
// {
// name=n;
// age=a;
// }
// public void Person(String n)
// {
// name=n;
// }
// public void Person(String n,int a)
// {
// name=n;
// age=a;
// } public static void main(String[] args)
{
// TODO Auto-generated method stub
Person Pa=new Person();
System.out.println("Pa.name="+Pa.name+" Pa.age="+Pa.age+" Pa.bl="+Pa.bl);
// Person Pb=new Person("honey");
// System.out.println("Pb.name="+Pb.name+" Pb.age="+Pb.age+" Pb.bl="+Pb.bl);
// Person Pc=new Person("honey",23);
// System.out.println("Pc.name="+Pc.name+" Pc.age="+Pc.age+" Pc.bl="+Pc.bl);
}}这个带void 的Person()就没有报错,
这是为什么?
//构造函数测试
package firstPackage;public class Person
{
private String name;
private int age;
private boolean bl;
public void Person()
{}// public Person(String n)
// {
// name=n;
// // TODO Auto-generated constructor stub
// }
// public Person() {
// // TODO Auto-generated constructor stub
// }
// public Person(String n, int a)
// {
// name=n;
// age=a;
// }
// public void Person(String n)
// {
// name=n;
// }
// public void Person(String n,int a)
// {
// name=n;
// age=a;
// }public static void main(String[] args)
{
// TODO Auto-generated method stub
Person Pa=new Person();
System.out.println("Pa.name="+Pa.name+" Pa.age="+Pa.age+" Pa.bl="+Pa.bl);
// Person Pb=new Person("honey");
// System.out.println("Pb.name="+Pb.name+" Pb.age="+Pb.age+" Pb.bl="+Pb.bl);
// Person Pc=new Person("honey",23);
// System.out.println("Pc.name="+Pc.name+" Pc.age="+Pc.age+" Pc.bl="+Pc.bl);
}}这个带void 的Person()就没有报错,编译运行都能通过
这是为什么?