jAVA EE NZ2001 java EE學習總結 第三週(包含思維導圖)

第三週 (2.17-2.23)

Day11

二維數組的補充

  • 二維數組的創建語法

    • 先聲明,再分配空間

      • 數據類型[][] 數組名;數組名 =new 數據類型[高維長度][低維長度] ;
    • 先聲明並分配空間

      • 數據類型[][] 數組名 = new 數據類型[高維長度][低維長度];
    • 聲明並賦值(繁)

      • 數據類型[][] 數組名 = new 數據類型[高維長度][] ;//不規則數組,自行new 低維數組
    • 聲明並賦值(簡)

      • 數據類型[] 數組名 = {{v1,v2,v3},{v4,v5},{v6,v7,v8,v9}};//顯示初始化

對象

  • 概念:一切客觀存在的事物都是對象,萬物皆對象

    • 特徵:稱爲屬性,一般爲名詞,代表對象有什麼
    • 行爲:稱爲方法,一般爲動詞,代表對象能做什麼
  • 一切客觀存在的事物都是對象,萬物皆對象

  • 任何對象,一定具有自己的特徵和行爲

  • 程序中,必須具有和現實中相同的對象,用以模擬現實世界

    • 使用程序中的對象代表現實中的對象,並執行操作,進而解決現實問題
  • 對象的創建 :

    public class TestCreateObject{
    public static void main(String[] args){

    Dog myDog = new Dog();
    myDog.breed =“莎魔”;
    myDog.age=2;
    myDog.sex=“公”;
    myDog.fuColor=“白色”;
    System.out.println(myDog.breed+"\t"+myDog.age+"\t"+myDog.sex+"\t"+myDog.fuColor);

    myDog.eat();
    myDog.sleep();

    }

    }

    • 對象的創建過程

      • 內存中開闢對象空間
      • 爲各個屬性賦予初始值
      • 執行構造方法中的代碼
      • 將對象的地址賦值給變量

類:

  • 概念:定義了對象應具有的特徵和行爲,類是對象的模板

  • 類的定義:

    例子

    public class Dog{
    String breed ;//品牌
    int age ;//年齡
    String sex;//性別
    String furColor;//毛色

    public void eat(){
    System.outy.println(“Eating …”);
    }
    public void sleep(){

    System.out.println(“Sleeping…”);
    }

    }

    • 屬性的定義

      • 屬性:通過變量表示,又稱實例變量
      • 語法: 數據類型 屬性名;
      • 位置:類的內部,方法的外部
    • 方法的定義

      • 方法:通過函數表示,又稱實例方法
      • 語法: public 返回值類型 方法名(形參){//方法的主體}
      • 不再書寫static

類和對象的聯繫

  • 類:定義了對象應具有的 特徵和行爲,類是對象的模板
  • 對象:擁有多個特徵和行爲的實體,對象是類的實例

實例變量和局部變量的區別

  • 局部變量

    • 定義位置:方法或方法內的結構當中
    • 默認值:無默認值
    • 使用範圍:從定義到包含其結構結束
    • 命名衝突:不允許重名
  • 成員變量

    • 類的內部,方法的外部
    • 默認值:字面值(與數組相同)
    • 使用範圍:本類有效
    • 命名衝突:可與局部變量重名,局部變量優先

實例方法:對象的實例方法包含兩部分:方法的聲明和方法的實現

  • 方法的聲明:代表對象能做什麼

    • 組成: 修飾符 返回值類型 方法名(形參列表)
  • 方法的實現:代表對象怎麼做:即如何實現對象對應的功能

    • 組成 : []

方法的重載:對象的 同一種行爲可能存在多種實現的過程

  • 重載:一個類中定義多個相同的名稱的方法
  • 要求:方法名稱相同 參數列表不同(類型、個數、順序) 與返回修飾符,返回值類型無關
  • 調用帶有重載方法時,需要根據傳入的實參方法去找到與之匹配的方法
  • 好處:屏蔽使用差異,靈活、方便

代碼調錯

  • 兩個方法的方法名稱和參數列表都相同,只是參數名稱不一樣,編譯報錯
  • 注意:只是參數名稱不同,並不能構成方法的重載

構造方法:類的特殊方法,主要用於創建對象

  • 特點

    • 名稱和類名完全相同
    • 沒有返回值類型
    • 創建對象時。能觸發構造方法的調用,不可通過句點手動調用
  • 注意:如果沒有在類中顯示定義構造方法,則編譯器默認提供無參構造方法

構造方法的重載:構造方法也可以重載,遵循重載規則

構造方法爲屬性賦值:

  • 創建對象的同時,將值傳入構造方法

Day12

關鍵字

  • this

    • 類是模板,可服務於此類的所有對象 this 是類中的默認引用,代表當前實例;當類服務於某個對象時,this 則指向這個對象

    • 用法一: this 第一種用法:調用實例屬性、實例方法。如 this.name 、this.sayHi()

    • 當實例變量和局部變量重名時,優先訪問局部變量;此時,如需訪問實例變量,需要增加this.前綴 不存在重名時,則可省略this

    • 用法二:this 第二種用法 :調用本類中的其他的構造方法。如 this() this (實參)

      • 在構造方法中,調用本類的其他構造方法,即可複用構造方法中的邏輯代碼
      • 注意:this() :調用無參構造 this(實參):調用有參構造法:必須在構造方法的首行
      • 有參構造將接收到的實參直接傳遞給 有參構造進行賦值
  • super關鍵字

    • 在子類中,可直接訪問從父類繼承到的屬性和方法,但如果父類的屬性或方法存在重名(屬性遮蔽、方法覆蓋)時,需要加以區分,纔可專項訪問

    • 用法:使用 super. 的形式訪問父類的方法 進而完成在子類中的複用 ,再疊加額外的功能代碼,組成新的功能

    • super的訪問屬性 :父子類的同名屬性不存在覆蓋關係,兩個空間同時存在(子類遮蔽父類屬性)需使用不同前綴進行訪問

    • super調用父類無參構造

      • super()表示調用父類無參構造方法。如果沒有顯示書寫。 隱式存在於子類構造方法的首行
    • 注意:如果子類構造方法中,沒有顯示定義super() 或super(實參) 則默認提供super() 同一個子類構造方法中,super() this () 不可同時存在

  • instanceof 關鍵字

    • 向下轉型前,應判斷引用中的對象真實類型,保證類型轉換的正確性
    • 語法:引用 instanceof ;類型 // 返回boolean 類型的結果

三 大特性

  • 封裝

    • 在對象的外部,爲對象的屬性賦值,可能存在非法數據的錄入
    • 概念:儘可能隱藏對象的內部實現細節,控制對象的修改及訪問的權限
    • 訪問修飾符:private (可將屬性修飾爲私有,僅本類可見)
  • 公共訪問方法

    • 提供公共訪問方法,以保證數據的正常錄入

      • 命名規範

        命名規範:

        賦值 setXXX()//使用方法參數實現賦值

        取值: getXXX() // 使用方法返回值實現取值

  • 繼承

    • 類與類之間特性和行爲的一種贈與或獲得

    • 父類的抽象:在一組相同或類似的類中,抽取出共性的特徵和行爲,定義在父類中,實現重用

    • 語法: class 子類 extends 父類{} //定義子類時,顯示繼承父類

    • 應用:產生繼承關之後,子類可以使用父類中的屬性和方法,也可以定義子類特有的屬性和方法

    • 繼承中的創建:

      • 在具有繼續關係的對象的創建中,構建子類對象會先構建父類對象

      • 由父類的共性內容,疊加子類的獨有內容吧,組合成完整的子類對象

      • 創建過程

        • 構建子類對象時,先構建父類對象
        • 1、分配空間 2、構建父類對象 3、初始化屬性 4、執行構造方法代碼
    • 好處:既提高代碼的複用性,又提高代碼的可擴展性

    • 注意:java爲單繼承,一個類只能有一個直接父類,但可以有多級繼承,屬性和方法逐級疊加

    • 不可繼承

      • 構造方法:類中的構造方法,只負責創建本類對象,不可繼承
      • private修飾的屬性和方法:訪問修飾符的一種,僅本類可見
      • 父子類不在同一個package 中時,default 修飾的屬性和方法:訪問修飾符的一種,僅同包可見
  • 訪問修飾符

    • private

      • 本類可訪問。同包。非同包子類,其他都不可以訪問
    • default

      • 本類,同包可以訪問。非同包子類,其他不可以訪問
    • protected

      • 本類,同包,非同包子類可以訪問。其他不可以訪問
    • public

      • 本類、同包、非同包子類、其他都可以訪問
  • 方法的覆蓋

    • 方法覆蓋原則

      • 方法名稱、參數列表、返回值類型必須與父類相同
      • 訪問修飾符可與父類相同或是比父類更寬泛
    • 方法覆蓋的執行

      • 子類覆蓋父類方法後,調用時優先執行子類覆蓋後的方法
  • 多態

    例子:

    父類引用
    (引用類型) Animal a = new Dog(); 子類對象(對象類型)

    • 概念:

      • 父類指向子類對象,從而產生多種形態
    • 二者具有直接或間接的繼承關係時,父類引用可指向子類對象,即形成多態

    • 父類引用僅可調用父類所聲明的屬性和方法,不可調用子類獨有的屬性和方法

    • 多態的應用

      • 方法的重載可以解決接收不同對象參數的問題,但其缺點也比較明顯
      • 場景一:使用父類作爲方法形參實現多態,使方法參數的類型更爲寬泛
      • 場景二:使用父類作爲方法返回值實現多態,使方法可以返回不同子類對象
    • 向上轉型(裝箱

      • 父類引用中保存真實子類對象,稱爲向上轉型(即多態核心概念)
      • 注意:僅可調用 Animal 中所聲明的屬性和方法
    • 向下轉型(拆箱)

      • 將父類引用中的真實子類對象強轉回子類本身類型,稱爲向下轉型
      • 注意:只有轉換回子類真實類型,纔可調用子類獨有的屬性和方法
    • 類型轉換異常

      • 向下轉型時,如果父類引用中的子類對象類型和目標類型不匹配,則會發生類型轉換異常

Day13

三個修飾符

  • 抽象類 應用 : abstract 修飾類,此類不能new 對象

    • 被abstract 修飾的類,稱爲抽象類。抽象類意爲不完整的類、不夠具體的類,抽象類對象無法獨立存在,即不能new 對象

    • 作用:

      • 可被子類繼承,提供共性屬性和方法
      • 可聲明爲引用,強制使用多態
    • 經驗:抽象父類,可作爲子類的組成部分,依附與子類對象的存在,由父類共性+子類獨有組成完整的子類對象

    • 抽象方法:被abstract修改的方法,稱爲抽象方法,只有方法聲明,沒有方法實現({} 的部分)意爲不完整的方法,必須包含在抽象類中

    • 產生繼承關係後,子類必須覆蓋父類中所有的抽象方法,否則子類還是抽象類

    • 總結

      abstract 修飾類,不能new對象 ,但可以聲明引用
      abstract 修飾方法:只有方法聲明,沒有方法實現。(需包含在抽象類中)
      抽象類中不一定有抽象方法,但有抽象方法的類一定是抽象類
      子類繼承抽象類後,必須覆蓋父類所有的抽象方法,否則子類還是抽象類

  • static

    • 實例屬性:實例屬性是每個對象各自持有的獨立空間(多份),對象單方面修改,不會影響其他對象

    • 靜態屬性:靜態屬性是整個類共同持有的共享空間(一份),任何對象修改,都會影響其他對象

    • 靜態

      • 靜態可以修飾屬性和方法
      • 稱爲靜態屬性(類屬性)、靜態方法(類方法)
      • 靜態成員是全類所有對象共享的成員
      • 在全類中只有一份,不因創建多個對象而產生多份
      • 不必創建對象,可直接通過類名訪問
    • 靜態方法

      • 已知靜態方法

        • Arrays.copyOf()
        • Arrays.sort()
        • Math.random()
        • Math.sqrt();
        • 均使用類名直接調用
    • 靜態的特點

      • 靜態方法允許直接訪問靜態成員
      • 靜態方法不能直接訪問非靜態成員
      • 靜態方法中不允許使用this 或是 super關鍵字
      • 靜態方法可以繼續,不能重寫,沒有多態
    • 靜態代碼塊

      public class TestStaticBlock(){
      public static void main(Stirng[] args){

      MyClass.method();

      }
      ]
      class MyClass{

      static String sField ="靜態屬性“;

      static {

      System.out.println(sField);
      System.out.println("靜態代碼塊“);

      ]

      public static void method(){

      }

      }

      • 類加載時,觸發靜態代碼塊的執行(僅一次)。執行地位:靜態屬性初始化之後。 作用: 可爲靜態屬性賦值,或必要的初始化行爲
    • 總結

  • final

    • 概念:最後的,不可更改的

    • final可修飾的內容:

      • 類(最終類)

        • final修飾類,此類不能被繼承
        • 注: String 、Math、System均爲final修飾的類,不能被繼承
      • 方法(最終方法)

        • final修飾方法:此方法不能被覆蓋
        • 意爲最終方法,不支持子類以覆蓋的形式修改
      • 變量(最終變量)

        • final修飾變量:此變量值不能被改變(常量)
        • 實例常量不再提供默認值,必須手動賦值初始值。賦值時機:顯示初始化、動態代碼塊、構造方法
        • 注意:如果在構造方法中爲實例常量賦值。必須保證所有的構造方法都能對其正確賦值
      • 靜態常量

        • 靜態常量不再提供默認值,必須手動賦予初始值。賦值時機:顯示初始化、靜態代碼塊
      • 對象常量

        • final 修飾基本類型:值不可變
        • final 修飾引用類型:地址不可變
      • 總結

Day14

修飾符

ABC電子商務系統

Day15

總結一週知識點

ABC電子商務系統代碼

學習思維導圖

在這裏插入圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章