單例設計模式和訪問權限的理解

一個類只允許有一個對象,保證所有引用的對象都是同一個對象。
        因爲只允許存在一個對象,則不允許在外面直接new出新的對象,所以應該把構造器設爲private,。
        在類內定義一個公開的靜態方法,讓使用者進行調用,通過該方法去獲得一個實例。
        例:
                public calss Singleton{
                        private static Singleton s;
                        private Singleton(){}
                        public static Singleton newInstance(){
                                if ( s == null)
                                        s = new Singleton();
                                return s;
                        }
                }       
               
修飾符final:不允許改變,可以修飾變量、方法、類
        final修飾變量:
                被fianl修飾的變量就會變成常量,一旦賦值不能改變
                常量可以在初始化時直接賦值,也可以在構造方法裏賦值,只能在這兩種方法裏二選一,不能不爲常量賦值
                常量不會有默認初始值
                鎖定棧,使棧中的數據不可以改變
                靜態常量只能在初始化時直接賦值
               
        final修飾方法:
                被final修飾的方法將不能被其子類覆蓋,保持方法的穩定不能被覆蓋
       
        final修飾類:
                被final修飾的類將不能被繼承
                final類中的方法也都是final的
       
        注意:
                final不能用來修飾構造方法
               
訪問權限控制:       
        private:
                本類內部可以訪問
                不能繼承到子類
        default:
                本類內部可以訪問,同包其他類也可以訪問。
                同包可繼承
        protected:
                本類內部可以訪問,不同包的子類也可以訪問,同包/ 其他類也可以訪問。
                能繼承到子類
        public:
                任何地方都可以訪問  
                能繼承到子類
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章