java的构造器(构造方法)

概念

构造方法是一种特殊的方法,它是一个与类同名且没有返回值类型的方法。
构造方法的主要功能就是完成对象创建或者初始化。
当类创建对象(实例化)时,就会自动调用构造方法。
构造方法与普通方法一样也可以重载。

他的形式如下:

//方法名与类名相同
修饰符 方法名([参数列表]){
    代码。。。
}

默认构造器

如果没有定义构造器,则会默认一个无参构造器,这就是为什么你定义了一个对象,比如 people,没有定义任何构造器却可以new这个对象,比如 new people() 。如果自定义了构造器,则会覆盖默认构造器。

禁止对象被外部创建

直接将构造器的修饰符改为 private 即可,这样就不能在外部通过new来创建这个对象了。

package com.cnblogs;
/*
本类用于实现
 */
public class application {
    public static void main(string[] args) {
        //实例化一个对象
        //有参
        name getna = new name("柒");
        //无参
        name namege = new name();

        system.out.println(getna.name);//柒
        system.out.println(namege.name);//null

    }
}

package com.cnblogs;

public class name {
    string name;
    //有参构造
    public name(string name) {
        this.name = name;
    }

    //无参构造
    public name(){

    }
    //构造器的重载
    public name(int a){

    }



}

构造器的继承

定义父类构造器,由于该构造器自定义了一个带参构造器,覆盖了默认的无参构造器,所以不能直接 new persion() 调用了,除非再定义一个无参构造器。

package com.cnblogs;
//父类
public class persion {
    //有参构造
    public persion(string name) {

    }

    //无参构造
    public persion(){

    }
}

package com.cnblogs;
//子类
public class student extends persion{
    //有参构造:super加形参必不可少
    public student(string name) {
        super(name);
    }

    //无参构造:父类为默认构造器或者public persion(){  }  以下代码可以不写
    public student() {
        super();
    }
}