JAVA基礎學習總結,day11(final、權限修飾符、內部類、枚舉)

final: 終態的意思 不可變

可以修飾成員變量、成員方法

修飾類:

          格式:
               public final class 類名{
               }
          例子:public final class stringfinal修飾的類,不能被繼承,但是該類可以繼承別的類

     修飾方法:
          格式:
               修飾符 final 返回值類型 方法名(參數類型 參數名,..){
               }
             被final修飾的方法不能被重寫

修飾變量:

  • 局部變量:被final修飾的變量會變成一個常量,只能賦值一次
    格式:
    • final 數據類型 變量名 = 值;
    • final 數據類型 變量名;變量名 = 值;
  • 成員變量:被final修飾的成員變量會變成一個常量,只能賦值一次
    • 顯示賦值:final 數據類型 變量名 = 值;
    • 構造方法賦值:必須保證所有構造方法都會給該常量賦值
    • 常量規範:一般常量名都是全部大寫

權限修飾符:

  • public:公共的(整個項目)
  • protected:受保護的(本類和子類)
  • default:默認的(同一個包)
  • private:私有的 (本類)

publIc > protected > default > private
public 具有最大權限,private則是最小權限

編寫代碼時,如果沒有特殊考慮,建議這樣使用權限:

  • 成員變量使用private,隱藏細節
  • 構造方法使用public,方便創建對象
  • 成員方法使用public,方便調用方法
  • 不加權限修飾符,其訪問能力與default修飾符相同

內部類:
概述:類A中包含B 類A就是外部類 類B就是內部類
成員內部類:定義在類中方法外的類

格式:
              public class 外部類名{
                  public class 內部類名{

                   } 
              }

訪問特點:

  • 內部類可以直接訪問外部類的成員,包括私有成員
  • 外部類要訪問內部類的成員,必須要建立內部類的對象

創建內部類對象的格式:

  • 外部類名.內部類名 對象名 = new 外部類名().new 內部類名()
  • 內部類訪問外部類中的成員變量
  • 外部類名.this.變量名

內部類仍是一個獨立的類,在編譯之後會內部類會被編譯成獨立的.class文件,但是前面冠以外部類的類名和&符合
比如:Person$Heart.class

匿名內部類(重點)

本質:繼承了一個類的子類(實現了一個接口的實現類) 的匿名對象
繼承了一個類的匿名子類的對象
匿名內部類必須繼承一個父類或者實現一個父接口。
匿名內部類可以作爲抽象類的匿名對象,也可以作爲接口的匿名對象

格式:
new 類名\接口名(){
實現抽象方法
};

例如:new Animal(){
              @Override
                 public void eat(){
                     System.out.println("匿名內部類的eat方法"); 
                 }
            };

引用類型用法的總結:
       數組作爲方法的參數
       數組作爲方法的返回值
       數組作爲類的成員變量

       類作爲方法的參數
       類作爲方法的返回值
       類作爲類的成員變量
       
       接口作爲方法的參數  可以接收該接口的所有實現類的對象
       接口作爲方法的返回值 可以返回改接口的所有實現類的值
       接口作爲類的成員變量

       String[] arr;//成員變量 數組作爲類的成員變量

       String name;//類作爲類的成員變量
       
       A a;//接口作爲類的成員變量
        public static void main(String[] args){
}
       

枚舉:enumeration
概述:枚舉也是一種引用數據類型
作用:其實就是用來儲存固定的值

     格式:
            public enum 枚舉名{
                    枚舉值1,
                    枚舉值2,
                    枚舉值3...
               }
     使用:枚舉名.枚舉值
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章