1. 程式人生 > >JAVA第五周學習總結

JAVA第五周學習總結

.cn 分配內存 指定元素 類圖 互轉 不可 key 空間 uml類圖

  • 本周學習

    • UML類圖

    • 基本類型與引用類型變量

    • 接口

    • 多態

UML圖

1.UML圖中的符號表示

  • private在類圖中用符號-表示;
  • public在類圖中用符號+表示;
  • protected在類圖中用符號#表示。

2.用UML圖表示各類及接口之間的關系

  • 繼承關系(extends):
    空心三角箭頭的實線表示,由子類指向父類,或者由子接口指向父接口。
  • 實現關系(implements):
    空心三角箭頭的虛線表示,從類指向實現的接口。
  • 依賴關系(該類在某方法中使用到某類):
    類A指向類B的帶箭頭虛線表示。
  • 關聯關系(該類引用了某類作為全局變量:
    類A指向被關聯類B的帶箭頭實線表示,在關聯的兩端可以標註關聯雙方的角色和多重性標記。
  • java設計模式—UML類圖

3.UML圖建模工具

  • 推薦五個免費UML建模工具
    • 回到頂端

基本類型與引用類型變量

1.八種基本數據類型+三種引用類型

技術分享圖片

2.補充說明

  • java庫中的幾個類
    • Object :
      • Object是類層次結構的根類,每個類都使用Object作為超類。
      • 所有對象(包括數組)都實現這個類的方法。
      • 用Object可以定義所有的類 。
    • String :
      • String類代表字符串。Java 程序中的所有字符串字面值(如"abc")都作為此類的實例來實現。
      • 檢查序列的單個字符、比較字符串、搜索字符串、提取子字符串、創建字符串副本、在該副本中、所有的字符都被轉換為大寫或小寫形式。
      • string和int的相互轉化。
         String a = "21";int b = Integer.parseInt(a);//String 轉int
         int a = 21; String b = String.valueOf(a);//int轉String
    • Date :
      • Date表示特定的瞬間,精確到毫秒。Date的類一般現在都被Calendar 和GregorianCalendar所有代替 。
    • Void :
      • Void 類是一個不可實例化的占位符類,它保持一個對代表 Java 關鍵字 void 的 Class 對象的引用。
  • java庫中的幾個接口interface
    • List:列表 ,此接口的用戶可以對列表中每個元素的插入位置進行精確地控制。用戶可以根據元素的整數索引 在列表中的位置)訪問元素,並搜索列表中的元素。List 接口提供了兩種搜索指定對象的方法。從 性能的觀點來看,應該小心使用這些方法。在很多實現中,它們將執行高開銷的線性搜索。 List 接 口提供了兩 種在列表的任意位置高效插入和移除多個元素的方法。
      • add() : 在列表的插入指定元素。
      • remove():移除列表中指定位置的元素。
      • get(int index):返回列表中指定位置的元素。
    • Map<K,V>: K - 此映射所維護的鍵的類型 ; V - 映射值的類型 將鍵映射到值的對象。一個映射不能包含重復的鍵;每個鍵最多只能映射到一個值。
      • put(K key,V value):將指定的值與此映射中的指定鍵關聯(可選操作)。如果此映射以前包含一個該鍵的映射關系,則用指定值替換舊值(當且僅當,返回 true 時,才能說映射 m 包含鍵 k 的映射關系)。
      • remove(Object key):如果存在一個鍵的映射關系,則將其從此映射中移除(可選操作)。更確切地講,如果此 映射包含從滿足(key==null ? k==null :key.equals(k))的鍵 k 到值 v 的映射關系,則移除該映射關系。(該映射最多只能包含一個這樣的映射關系。)
      • get(Object key):返回指定鍵所映射的值;如果此映射不包含該鍵的映射關系,則返回 null。

3.區別

  • 從概念上說:
    • 基本數據類型:變量名指向具體的數值;
    • 引用數據類型:變量名指向存數據對象的內存地址,即變量名指向hash值。
  • 從內存構建方面來說:
    • 基本數據類型:變量在聲明之後java就會立刻分配給他內存空間;
    • 引用數據類型:它以特殊的方式(類似C指針)指向對象實體(具體的值),這類變量聲明時不會分配內存,只是存儲了一個內存地址。
  • 從使用方面來說:
    • 基本數據類型:使用時需要賦具體值,判斷時使用“==”號;
    • 引用數據類型:使用時可以賦null,判斷時使用equals方法。
    • 回到頂端

接口

- [java接口|菜鳥教程](http://www.runoob.com/java/java-interfaces.html)
- [回到頂端](#jump0 )

多態

**面向對象編程有三大特性:**<span style="color:red">封裝、繼承、多態。
  • 封裝隱藏了類的內部實現機制,可以在不影響使用的情況下改變類的內部結構,同時也保護了數據。對外界而已它的內部細節是隱藏的,暴露給外界的只是它的訪問方法。
  • 繼承是為了重用父類代碼。兩個類若存在IS-A的關系就可以使用繼承。,同時繼承也為實現多態做了鋪墊。
  • 多態是指允許不同類的對象對同一消息做出響應。即同一消息可以根據發送對象的不同而采用多種不同的行為方式。(發送消息就是函數調用)

1.多態存在的三個必要條件:

  • 繼承
    • 在多態中必須存在有繼承關系的子類和父類。
  • 重寫
    • 子類對父類中某些方法進行重新定義,在調用這些方法時就會調用子類的方法。
  • 父類引用指向子類對象(向上轉型)
    • 在多態中需要將子類的引用賦給父類對象,只有這樣該引用才能夠具備技能調用父類的方法和子類的方法。

2.多態的實現方式:

  • 重寫
  • 接口
  • 抽象類和抽象方法

3.多態的優點:

  • 消除類型之間的耦合關系
  • 可替換性
  • 可擴充性
  • 接口性
  • 靈活性
  • 簡化性
    • 回到頂端

第六章代碼

JAVA第五周學習總結