Java 静态构造函数
public class Data { private int id; public static Data() {}}
静态属于类,构造函数属于对象
静态块 / 方法无法访问非静态变量
public static void main(String args []){ System.out.println(this.id);}
静态构造函数将破坏继承
package com.journaldev.util;class Data { Data() { System.out.println("Data Constructor"); }}public class DataChild extends Data{ public DataChild() { super(); //JRE calls it explicitly, calling here for explanation System.out.println("DataChild Constructor"); } public static void main(String args[]) { DataChild dc = new DataChild(); }}
Data ConstructorDataChild Constructor
Java静态构造方法替代
class Data { public static int count; static { count = 0; } Data(int c) { //not recommended since the count is class variable //and shared among all the objects of the class count=c; }}总结