1. 程式人生 > 實用技巧 >Java static 關鍵字

Java static 關鍵字

static 關鍵字詳解

  1. java static 關鍵字:

    靜態方法在當前類中可直接進行呼叫或者通過“類名.方法名”呼叫

    非靜態方法需要例項化物件進行呼叫

    非靜態方法可以呼叫靜態方法

  2. 例項:
    package oop.demo11;
    
    /**
     * static關鍵字詳解
     * 靜態方法在當前類中可直接進行呼叫或者通過“類名.方法名”呼叫
     * 非靜態方法需要例項化物件進行呼叫
     * 非靜態方法可以呼叫靜態方法
     */
    public class Student {
    
        private static int age; //靜態變數
        private double score; //
    非靜態變數 public void run(){ go(); //非靜態方法可以呼叫靜態方法 } public static void go(){ System.out.println("go"); } public static void main(String[] args) { Student student = new Student(); System.out.println(Student.age); System.out.println(student.age); System.out.println(student.score); student.run();
    //非靜態方法需要例項化物件進行呼叫 go(); //靜態方法在當前類中可直接進行呼叫或者通過“類名.方法名”呼叫,如Student.go(); } }

靜態匯入包

  1. 靜態匯入包

    import static java.lang.Math.random;
    import static java.lang.Math.PI;
    靜態匯入包可省略Math,可直接呼叫方法:
       System.out.println(random());
       System.out.println(PI);
       否則:
          System.out.println(Math.random());
          System.out.println(Math.PI);
  2. 例項:
    package oop.demo11;
    
    /**
     * 靜態匯入包
     * import static java.lang.Math.random;
     * import static java.lang.Math.PI;
     * 靜態匯入包可省略Math,可直接呼叫方法:
     *    System.out.println(random());
     *    System.out.println(PI);
     *    否則:
     *       System.out.println(Math.random());
     *       System.out.println(Math.PI);
     */
    
    import static java.lang.Math.random;
    import static java.lang.Math.PI;
    
    public class Test {
    
        public static void main(String[] args) {
    
            //隨機數Math.random: System.out.println(Math.random());
            System.out.println(random()); //靜態匯入包可省略Math,可直接呼叫方法
    
            //π:3.141592653589793
            System.out.println(PI); //靜態匯入包可省略Math,可直接呼叫方法
        }
    
    }

類中方法執行順序

  1. 類中方法執行順序

    1、靜態程式碼塊:類載入就執行,永久只執行一次,方便載入一些初始化的東西

    2、匿名程式碼塊:賦初始值~

    3、構造器

  2. 例項:
    package oop.demo11;
    
    /**
     * 類中方法執行順序
     * 1.靜態程式碼塊:類載入就執行,永久只執行一次,方便載入一些初始化的東西
     * 2.匿名程式碼塊:賦初始值~
     * 3.構造器
     */
    public class Person {
    
        {
            //2.匿名程式碼塊:賦初始值~
            System.out.println("匿名程式碼塊");
        }
    
        static {
            //1.靜態程式碼塊:類載入就執行,永久只執行一次,方便載入一些初始化的東西
            System.out.println("靜態程式碼塊");
        }
    
        //3.構造器
        public Person() {
            System.out.println("構造方法");
        }
    
        //執行順序:1.靜態程式碼塊(只執行一次) 2.匿名程式碼塊 3.構造方法
        public static void main(String[] args) {
            Person person1 = new Person();
            System.out.println("-------------- 分隔符 ---------------");
            Person person2 = new Person();
        }
    
    }