java static靜態修飾符
阿新 • • 發佈:2022-01-08
java static
靜態屬性:
package com.yuanyu.Oop; public class Student{ private static int age; //靜態變數 private double score; //非靜態變數 public static void main(String[] args) { Student s1 = new Student(); System.out.println(age=10); System.out.println(s1.age=11); System.out.println(Student.age=12); //System.out.println(Student.score=89); //編譯報錯 System.out.println(s1.score=90); //System.out.println(score=91); //編譯報錯 } }
若是static靜態變數推薦使用類名呼叫變數,可以很清楚看出是個靜態變數
靜態變數對於這個類而言在記憶體中只有一個,可以被類中所有的例項共享,常用於多執行緒
靜態方法:
package com.yuanyu.Oop; public class Student{ public void run(){ //非靜態方法 go(); //非靜態方法可以直接訪問類中的靜態方法 System.out.println("run"); } public static void go(){ //靜態方法 System.out.println("go"); } public static void main(String[] args) { //run(); //編譯報錯 靜態方法不能直接呼叫非靜態方法 new Student().run(); Student.go(); go(); } }
非靜態方法可以直接訪問類中的靜態方法
程式碼塊:
package com.yuanyu.Oop; public class Student{ { System.out.println("匿名程式碼塊"); } static { System.out.println("靜態程式碼塊"); } public Student() { System.out.println("構造方法"); } public static void main(String[] args) { Student student1 = new Student(); System.out.println("================================"); Student student2 = new Student(); } }
執行結果:
靜態程式碼塊最先執行且執行一次,其次是匿名程式碼塊、構造方法
因此靜態程式碼塊和匿名程式碼塊都可以用來賦初始值
靜態匯入包:
package com.yuanyu.Oop;
import static java.lang.Math.random;
public class Student{
public static void main(String[] args) {
System.out.println(Math.random()); //0.35021309558598646
System.out.println(random()); //0.07537262741719064
}
}
匯入包中方法時加入static修飾,否則會報錯