標籤:unit oid ant 建立 string str div ack 構造
static:靜態,可以聲明 欄位,方法,和代碼塊[稱為靜態代碼塊],這樣在一個 這個類的執行個體將可以共用他們[共產社會主義好]
並且該類也可以直接使用它,無須執行個體化。和final一起使用時,被聲明的欄位為常量,必須初始化,且不能被修改,被聲明的
方法不能被重寫。
package com.m01.teststatic;import java.util.HashMap;import java.util.Map;public class Person { public Map map=null; public String name; public static int velt; public static final int trunk=10;//常量,不可修改 //trunk=12; public static void eat(){ Person p=new Person(); System.out.println(p.velt); } public final static void drink(){ Person p=new Person(); System.out.println(p.velt); } public Person(){ System.out.println("無參構造器"); } public Person(int velt){ this.velt=velt; System.out.println("有參構造器"); } static{ //map=new HashMap(); Map map=new HashMap(); System.out.println("靜態代碼塊在執行個體化對象之前執行" + "可以建立對象,但是只能操作本類中的靜態變數"); velt=1; System.out.println("velt="+velt); }}
測試
package com.m01.teststatic;public class TestStatic { @org.junit.Test public void test(){ Person p=new Person(); System.out.println(p.velt); System.out.println(Person.velt); Person.velt=1; System.out.println(p.velt); System.out.println(Person.velt); } @org.junit.Test public void teststaticMethod(){ Person p=new Person(); p.eat(); Person.eat(); } @org.junit.Test public void teststaticBlock(){ Person p=new Person(3); System.out.println(p.velt); System.out.println(Person.velt); } @org.junit.Test public void testConstant(){ Person p=new Person(3); p.drink(); Person.drink(); System.out.println(p.trunk); System.out.println(Person.trunk); }}
java,關鍵字static