Java Initializer Block

Initializer Block เป็นการเขียน Block ของโค๊ดขึ้นมาธรรมดาทั่วไป และไม่มี state หรือ behavier ใดๆมานำหน้า แต่หากหากความสามารถนั้นไม่ธรรมดา การสร้าง Initializer Block นั้นจะมีอยู่สองแบบ คือ

Static Initializer Block ซึ่งมีลักษณะการเขียนเป็น

public class SomeClass{
	static{
		//Code
	}
}

static initializer block เป็น initializer block ที่ใช้สำหรับ static context

Initializer Block(ไม่มี static นำหน้า) ซึ่งมีลักษณะการเขียนเป็น

public class SomeClass{
	{
		//Code
	}
}

ความสามารถของ initializer block คือการ initial ค่าต่างๆให้กับ Constructor ได้เพราะว่ามันจะถูกเรียกก่อน Constructor ซึ่งมักนิยมใช้ share การทำงานที่ซ้ำซ้อนเมื่อ Class นั้นมีหลาย Constructor

ตัวอย่างโค๊ดที่แสดงด้านล่างเป็นตัวอย่างในการ initial ค่่าให้กับ Constructor

public class A {

    private static int initialValue;
    private int count;

    public A() {
        System.out.println("Number Of New Class A : " + count);
    }
    
    public A(int plus) {
        System.out.println("Number Of New Class A : " + (count+plus));
    }

    static {
        initialValue = 0;
    }

    {
        count = ++initialValue;
    }

    public int getCount() {
        return count;
    }
}
public class B {
    public static void main(String[] args) {
        A a1 = new A();
        A a2 = new A();
        A a3 = new A(10);
        A a4 = new A(20);
    }
}

ผลลัพธ์ที่ได้จากการ run Class B คือ

Number Of New Class A : 1
Number Of New Class A : 2
Number Of New Class A : 13
Number Of New Class A : 24


me on google plus+Jirawong Wongdokpuang

สร้าง Wireless Access Point บน Windows

หลายๆคนอาจไม่ทราบว่า Windows มี feature ในการสร้าง Wireless Access Point มาให้ด้วยในตัวโดยเราไม่ต้องซื้ออุปกรณ์เพิ่มเติมหากเครื่องเรามี Wireless อยู่แล้ว (Notebook,netbook ปัจจุบันคงมีกันทุกเครื่องแล้ว) โดย feature นี้จะเป็นการสร้าง Microsoft Hosted Network Virtual Adapter ขึ้นมา

Continue reading