永不服輸的Java之路---重學Java (第六章) 下篇

如若文章中出現衝突,或者出現錯誤,請聯繫 QQ:2669157689 指出我的問題。謝謝~

3. 對象創建和使用

1. 什麼是對象
① 類和對象的關係:
類(class) — 是對某一類事物的描述
對象(object) — 是實際存在的某類事物的個體,也稱爲實例(instance)
類是創建對象的模板,對象是類的實例
② 對象的創建:
語法格式: 類名 對象名 = new 構造器
示例:

Test test = new Test();

2. 構造器
① 構造器 (構造函數 / 構造器, Constructor):
具有與類相同的名稱、不含返回值類型、不能在方法中用return語句返回一個值、一般訪問權限爲public,
在一個類中,具有上述特徵的方法就是構造器
② 構造器的作用:
完成對象的創建,即完成對象的實例化、一般使用構造器來完成對成員變量的初始化
③ 默認的構造器:
在 Java 中,每個類都至少要有一個構造器,如果程序員沒有在類裏定義構造器,系統會自動爲這個類產生一個默認的訪問權限爲 public 且參數列表爲空的構造器
一旦編程者爲該類定義了構造器,系統就不再提供默認的構造器
3. 匿名對象
① 概念:創建完對象,在調用該對象的方法時,也可以不定義對象的句柄,而直接調用這個對象的方法。這樣的對象叫匿名對象
② 使用匿名對象的情況:如果對一個對象只需要進行一次方法調用
4. 對象創建的內存模型
① 引用類型變量
除了8種基本數據類型的變量,其他變量都是引用類型變量
類(class) :Person p;
接口(interface):Animal a;
數組:int[ ] c;
② 引用類型變量的內存模型
示例:

Person p = new Person("zhang", 33, "male");
Person q = new Person("lisi", 44, "male");

示例

4. this關鍵字

1. this關鍵字
① 代表對象自身的引用:一個引用、指向調用該方法的當前對象
② 通常在類的方法定義中使用
2. 用this關鍵字的情況
① 方法中的變量與成員變量重名
② 在一個構造器中,調用其它重載的構造器
③ 返回當前對象的引用

5. static關鍵字

1. static關鍵字
① static可以修飾的元素:屬性、方法、代碼塊
2. 需要注意的問題
只能修飾類成員,不能修飾局部變量。
3. static修飾的變量 — 靜態變量
① 所有對象共享,也稱爲類變量
② 用static修飾的成員變量,它們在類被載入時創建,只要類存在,static變量就存在
③ 兩種方式訪問:
1.直接訪問:類名.屬性
2.實例化後訪問:對象名.屬性
4. static修飾的方法 — 靜態方法
不需要實例化,可以直接訪問,也稱爲類方法
5. static方法的作用
① 簡化方法的使用
② 便於訪問靜態屬性
6. 注意事項
① 靜態方法裏只能直接訪問靜態成員,而不能直接訪問類中的非靜態成員
② 靜態方法中不能使用 this、super 關鍵字
③ 靜態方法不能被非靜態方法覆蓋,靜態方法不能修飾構造器
7. static修飾的代碼塊 — 靜態代碼塊
① 一個類中由 static 關鍵字修飾的,不包含在任何方法體中的代碼塊
② 當類被載入時,靜態代碼塊被執行,且只被執行一次
③ 靜態塊經常用來進行類屬性的初始化
8. 變量的作用域
① 類變量
用static修飾的成員變量,它們在類被載入時創建,只要類存在,static變量就存在
② 實例變量
1.類體中聲明的成員變量爲全局變量
2.全局變量在類的整個生命週期中都有效
③ 局部變量
1.方法體中聲明的變量,方法中的參數,或代碼塊中聲明的變量,都是局部變量
2.局部變量只在方法調用的過程中有效,方法調用結束後失效
④ 變量初始化的順序
1.隱式賦予變量默認值:成員變量
2.顯式賦予初始值
3.通過構造器體賦予新值
4.各類型變量默認初始化值表
各類型變量默認初始化值表
9. 單例模式
① 單例模式(singleton):保證一個類僅有一個實例,並提供一個訪問它的全局訪問點
② 單例模式要點:
1.某個類只能有一個實例
2.它必須自行創建這個示例
3.必須自行向整個系統提供這個實例
③ 單例模式實現:
1.擁有一個私有構造器
2.提供一個自身靜態私有的成員變量
3.提供一個公有的靜態公有的方法

public class Singleton {
  //在自己內部定義自己的一個實例,只供內部調用
  private static Singleton instance = new Singleton();
  private Singleton() {//do something
  }
  //這裏提供了一個供外部訪問本class的靜態方法,可以直接訪問
  public static Singleton getInstance() {
  return instance;
  }
}

小結:

  1. 面向對象的思想
  2. 類的定義:什麼是類、類的屬性、方法定義、方法重載
  3. 對象的創建和使用:創建對象、構造器、對象創建的內存模型
  4. this關鍵字
  5. static關鍵字

以後每次寫個小結吧

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