无参构造函数
当类中,没有定义类的构造函数时,系统会有默认的无参构造函数
特别注意,当定义了构造函数时,默认的无参构造函数就不存在了,要用的话,就需要显示的定义,例如,Dog(){}
public class ConstructorDetail {
public static void main(String[] args) {
person1 p1=new person1("xiaoming",18);
person1 p2= new person1("xiaoli");
System.out.println("p1.name="+p1.name);
System.out.println("p1.age="+p1.age);
System.out.println("p2.name="+p2.name);
//默认的无参构造函数
Dog d1=new Dog();
}
}
class person1{
String name;
int age;
//第一个构造器
public person1(String pName,int pAge){
name=pName;
age=pAge;
}
//第二个构造器
public person1(String pName){
name=pName;
}
}
class Dog{
String name;
int age;
}
javap,反编译命令,用于对.class字节码文件中的代码进行反编译
/*
练习:
创建两个构造函数,一个是无参,设置年龄默认值为18,;第二个是有两个参数的构造函数
分别给这两个函数创建对象
*/
public class ConstructorExercise {
public static void main(String[] args) {
Person2 p3 = new Person2();
Person2 p5 = new Person2();
Person2 p4 = new Person2("xiaoming",23);
System.out.println(p3.name+" "+p3.age);
System.out.println(p4.name+" "+p4.age);
System.out.println(p5.name+" "+p5.age);
}
}
class Person2 {
String name;//默认值为null
int age;//默认值为0
public Person2(){//无参构造函数
age=18;
}
//带两个形参的构造函数
public Person2(String dname, int dage){
age=dage;
name=dname;
}
}
浙公网安备 33010602011771号