java基础-构造器

或许你也曾经疑问,java的类是怎样new出来的

那么就与本文的构造器有关,构造器也就是构造方法

new的原理就是通过类的构造方法,而我们写类的时候如果没有写构造器,java会自动生成构造器,并且与类名是一致的

比如很简单的一个demo

public class demo {
    private int age;
    public void printAge(){
        System.out.println(age);
    }

其实它的构造函数已经有了,就是下面这种形式

public class demo {
    public demo(){};  //自动生成的
    private int age;
    public void printAge(){
        System.out.println(age);
    }

public的demo类构造就是public的demo默认构造方法

而class T0这只无修饰符的呢 ?     它就是默认T0(){};

所以默认的构造方法与类的修饰符一致,与类名一致

当然最常见的就是手动写构造那定义功能(默认构造就会无效)。如下

(也可通过编辑器的IDEA等工具自动生成)

public class demo {
    public demo(int age) {
        this.age = age;
    }

    private int age;

这样的好处就是在new的时候就能给属性赋不同的值,如

package yichang;

public class demo {
    public demo(int age) {
        this.age = age;
    }

    private int age;
    public void printAge(){
        System.out.println(age);
    }

}
package yichang;

public class test1 {
    public static void main(String[] args) {
        demo p =new demo(5);
        p.printAge();
    }
}

可以不用set一样可以了

或者 直接赋值,这样写的话new出来的对象就是直接有值的

public class demo {
    public demo() {
        age=6;
    }

    private int age;

既然现在已经了解了构造方法了

既然是方法,那么肯定也能重载(重载就是同名的方法,不同的参数)

package yichang;

public class demo {
    public demo(){}

    public demo(int age) {
        this.age = age;
    }

    public demo(int age, String name) {
        this.age = age;
        this.name = name;
    }

    private int age;
    private String name;



}

这样的好处是什么呢,就是对象创建的时候可以考虑不同的参数。

方便调用,提供多个对象模板。

猜你喜欢

转载自www.cnblogs.com/yangj-Blog/p/12964006.html