Java中构造器的初始化

  1. 概述
  2. 初始化的顺序

概述

当一个对象被创建时候,构造方法用来初始化该对象,给对象的成员变量赋初始值。

无论你与否自定义构造方法,所有的类都有构造方法,因为Java自动提供了一个无参数构造方法,
一旦自己定义了构造方法,Java自动提供的默认无参数构造方法就会失效(自定义有参构造后仍需要无参构造要记得自己定义哦O(∩_∩)O)。

组合快捷键 Alt+Insert 可以快速生成全参构造和无参构造。


初始化的顺序

class Window {
    Window(int marker) {
        System.out.println("Window(" + marker + ")");
    }
}

class House {
    Window w1 = new Window(1); // Before constructor

    House() {
        // Show that we're in the constructor:
        System.out.println("House()");
        w3 = new Window(33); // Reinitialize w3
    }

    Window w2 = new Window(2); // After constructor

    void f() {
        System.out.println("f()");
    }

    Window w3 = new Window(3); // At end
}

public class OrderOfInitialization {
    public static void main(String[] args) {
        House h = new House();
        h.f(); // Shows that construction is done
    }
}
//代码来源:On Java 8》

输出:

Window(1)
Window(2)
Window(3)
House()
Window(33)
f()

从输出结果可以看出,虽然几个 Window 对象位置不同,但都先于 House 类的构造方法执行。
印证了“构造方法用来初始化该对象,给对象的成员变量赋初始值”。(在House类中,Window对象就是变量,在使用之前,先初始化变量)


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 1401362462@qq.com

文章标题:Java中构造器的初始化

字数:346

本文作者:百xiao生

发布时间:2020-11-19, 20:52:49

最后更新:2020-12-07, 15:08:22

原始链接:https://baixiaoshengzjj.top/2020/11/19/Java%E4%B8%AD%E6%9E%84%E9%80%A0%E5%99%A8%E7%9A%84%E5%88%9D%E5%A7%8B%E5%8C%96/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。