Static Field/Method, Initialization Block Cont. (After compile)
package com.foo; import java.io.PrintStream; import org.apache.commons.lang.builder.ReflectionToStringBuilder; public class BaseObject { │ │ private static long second = 0L; │ private String name; │ │ public BaseObject() { │ name = ""; │ System.out.println("I am class block initialization."); │ second++; │ System.out.println("I am constructor."); │ } │ │ public BaseObject(String name) { │ [[http://this.name/][this.name]] = ""; │ System.out.println("I am class block initialization."); [[http://this.name/][ this.name]] = name; │ second++; │ } │ │ public String getName() { return name; } │ │ public void setName(String name) { │ [[http://this.name/][this.name]] = name; │ } │ │ public static long getSecond() { return second; } │ │ public static void setSecond(long second) { second = second; } │ │ public String toString() { return ReflectionToStringBuilder.toString(this); } │ │ public static void main(String args[]) { │ System.out.println(getSecond()); │ BaseObject bo1 = new BaseObject("First One"); │ BaseObject bo2 = new BaseObject("Seconde One"); │ BaseObject bo3 = new BaseObject("Third One"); │ System.out.println((new StringBuilder()) │ │ │ │ │ │ │ .append(bo1) │ │ │ │ │ │ │ .append("__") │ │ │ │ │ │ │ .append(getSecond()) │ │ │ │ │ │ │ .toString()); │ System.out.println((new StringBuilder()) │ │ │ │ │ │ │ .append(bo2) │ │ │ │ │ │ │ .append("__") │ │ │ │ │ │ │ .append(getSecond()) │ │ │ │ │ │ │ .toString()); │ System.out.println((new StringBuilder()) │ │ │ │ │ │ │ .append(bo3) │ │ │ │ │ │ │ .append("__") │ │ │ │ │ │ │ .append(getSecond()) │ │ │ │ │ │ │ .toString()); │ } │ │ static { System.out.println("I am static block initialization."); } }