java中的關鍵字static(靜態變量)和final定義常量


package point;

class Point {
    
    int x = 0;
    int y = 0;
    static int z = 100; // 定義靜態變量z,類變量
    static final double PI = 3.1415926;// final定義常量,它的值在運行時不能被改變

    Point(int a, int b) {
        //PI=3.1415926;
        /*
         * 當使用靜態常量的時候,不能在構造函數中初始化, 因為靜態時,常量已經變成類的常量了
         */
        x = a;
        y = b;
    }

    Point() {
        this(1, 1); // 必須作為構造函數的第一條語句
    }

    static void output() {
        System.out.println("hello,output() called");
        // System.out.println(x);//此時尚未給x,y分配內存空間,
        /*
         * Point2.java:16: non-static variable x cannot be referenced from a
         * static context System.out.println(x); ^ 1 error
         */
        System.out.println(z);
    }

    
    @SuppressWarnings("static-access")
    public static void main(String[] args) {
        
        Point.output();
        /*
         * 當聲明output為靜態方法(static)時,直接使用類名Point, 來調用output()方法,
         * 因為這樣一個靜態方法只屬於類本身, 而不屬於某個對象,把這種方法稱為類方法 而對於非靜態方法,稱之為實例方法,即對象的方法
         */
        Point pt2 = new Point();
        pt2.output();
        // 當然也可以使用類的實例,即對象pt2,使用pt2來調用靜態方法
        Point pt3 = new Point();
        Point pt4 = new Point();
        pt3.z = 5;
        System.out.println(pt3.z);// 顯示的是5,因為z是靜態變量,類的變量
        pt4.z = 1000;
        System.out.println(pt3.z);// 顯示的是1000,因為z是靜態變量,類的變量
        System.out.println(pt4.z);// 48句賦予了z新的值

    }
}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM