UP | HOME

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."); }
}