cihm / javaGuidelines

javaGuidelines
0 stars 1 forks source link

Static #7

Open cihm opened 9 years ago

cihm commented 9 years ago
  1. global variable will be initial automatically, int -> 0 , object -> null , boolean -> false
  2. variable in method must be initial

    static block


public class StaticExample{
    static {
        System.out.println("This is first static block");
    }

    public StaticExample(){
        System.out.println("This is constructor");
    }

    public static String staticString = "Static Variable";

    static {
        System.out.println("This is second static block and "
                                                + staticString);
    }

    public static void main(String[] args){
        StaticExample statEx = new StaticExample();
        StaticExample.staticMethod2();
    }

    static {
        staticMethod();
        System.out.println("This is third static block");
    }

    public static void staticMethod() {
        System.out.println("This is static method");
    }

    public static void staticMethod2() {
        System.out.println("This is static method2");
    }
}

output


This is first static block
This is second static block and Static Variable
This is static method
This is third static block
This is constructor
This is static method2

test


import java.util.HashMap;

public class testLeoStatic {

    int a1 = 0;
    static int a2 = 0;

    HashMap h1 = new HashMap();
    static HashMap h2 = new HashMap();

    public void fun1()
    {
        display();
    }

    public static void fun2()
    {
        display();
    }

    public static void display()
    {
        if(a1==0)System.out.println("t");
        else System.out.println("f");

        if(a2==0)System.out.println("t");
        else System.out.println("f");

        if(h1==null)System.out.println("t");
        else System.out.println("f");

        if(h2==null)System.out.println("t");
        else System.out.println("f");
    }

    public static void main(String[] args) {

        fun2();
        (new testLeoStatic()).fun1();
    }

}
cihm commented 9 years ago

成員 (member) 宣告時若使用關鍵字 static 修飾,該成員變成屬於類別 (class) 而非物件 (object) ,因此使用 static 就不需要先建立物件 http://www.jusfortechies.com/java/core-java/static-blocks.php http://www.oreilly.com.tw/column_sleepless.php?id=j021