Java面向物件關鍵字static
阿新 • • 發佈:2018-12-13
當一個變數需要初始化載入或者經常呼叫的時候,可以加上static!
static 關鍵字修飾成員,包括成員變數和方法,被修飾的成員變數和方法叫做類成員,其中成員變數叫類成員,成員方法叫類方法
使用static修飾的叫類成員,沒有使用的是例項成員;
被修飾的成員具有以下特點:
隨著類的載入而載入;優先於物件存在;被所有物件所共有;可以直接被類名呼叫。
注意事項:
靜態方法只能訪問靜態成員;靜態方法中不可以使用this,super關鍵字;主方法是靜態的(所以可以直接被類名呼叫)。
/** * Created by Administrator on 2018/9/30. * 下面是建立普通例項變數、方法以及類變數和方法 */ public class Student { String name="zhzang"; static int age=3; public void putong(){ //普通方法可以呼叫類方法以及類成員; leichengyuan(); System.out.println(name+age); } public static void leichengyuan(){ //類方法不可以呼叫例項方法以及例項成員; System.out.println(age); } } //呼叫執行結果,例項方法需要物件名.方法名呼叫;類方法是用類名.方法名呼叫; public static void main(String[] args) { Student student=new Student(); student.putong(); Student.leichengyuan(); }
區別總結:
1、所有該類物件共享類方法和例項方法
2、類方法使用類名.方法名呼叫;例項方法使用物件名.方法名呼叫
3、例項方法可以呼叫類方法以及類變數,類方法不能直接呼叫例項方法以及變數,要訪問他們必須使用物件引用;
4、類方法不能使用this關鍵字,因為麼用this的例項供使用;
static靜態程式碼塊
通常用於為類的程式碼塊做初始化執行
/** * Created by Administrator on 2018/9/30. */ public class Student { private static int age;// 靜態變數 private int high;// 例項變數 static { Student.age = 3; System.out.println(age); Student student = new Student(); student.te(); student.high= 110; System.out.println(student.high); } static { Student.age = 10; System.out.println(age); } public void te() { System.out.println("ceshisihishi..."); } /**執行結果 * 3 * ceshisihishi... * 110 * 10 */ } //呼叫執行程式碼塊 public static void main(String[] args) { Student student=new Student(); }