天天看點

Java 權限修飾符、static 和 final 關鍵字

權限修飾符

        private:私有權限,可以修飾成員、構造方法(可修飾内部類),被private修飾的成員隻能夠在本類中通路

        public:公共權限,可以修飾成員和類,被 public 修飾的類可以跨包使用(被public修飾的類儲存時檔案名必須和類保持一緻),若要跨包使用該類的成員,則該類的成員也要用 public 修飾。

        default:預設權限,不寫任何權限修飾符為預設權限,可以修飾成員和類,被該權限修飾的修飾成員和類隻能在本包中使用。

        protected:受保護權限,可以修飾成員(不能修飾類),在本包中和 default 權限一樣,但是子類可以跨包使用父類中被 protected 修飾的成員.

        final 關鍵字

       修飾類:被修飾的類不能被繼承

       修飾變量:被修飾的變量不能被重新指派

       成員變量

            類變量(static 修飾):在靜态構造代碼塊、聲明變量時指定該類變量的值,而且隻能二者選其一

            執行個體變量:隻能在構造代碼塊、構造方法、聲明變量時指定該執行個體變量的值,而且隻能三者選其一

       局部變量

           可以在聲明變量時指定值,也可以在後面代碼中指定值,但隻能指定一次。

       注意:

           被 final 修飾的變量系統不會對其進行初始化,需要程式員顯示指定。final 修飾基本變量,則該變量不能被重新指派。如果修飾的是引用變量,則該引用的位址不能改變,但是引用對象的内容可以改變。

       修飾方法:被修飾的方法不能被重寫

static 關鍵字:

        修飾變量:靜态變量(類變量),靜态變量是共享的,即該類的多有對象公用該變量

        修飾方法:靜态方法,靜态方法不能通路非靜态變量

        修飾代碼塊:靜态代碼塊,在加載類的時候運作,可以為靜态變量指派

        修飾内部類:靜态内部類,被修飾的内部類不能通路外部類的非靜态成員,并且其他類生成該内部類的方式也不一樣了:Outer.Inneroi = newOuter.Inner();

        注意:靜态成員既可以用對象調用,也可以用類名調用