无参构造函数

当类中,没有定义类的构造函数时,系统会有默认的无参构造函数
特别注意,当定义了构造函数时,默认的无参构造函数就不存在了,要用的话,就需要显示的定义,例如,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;
    }
}

posted @ 2025-02-07 18:00  f-52Hertz  阅读(41)  评论(0)    收藏  举报