第一章 面向對象
一、面向對象
1、面向對象和面向過程的區(qū)別
| 面向過程 | 面向對象 | |
|---|---|---|
| 區(qū)別 | 事物比較簡單,可以用線性的思維來解決 | 事物比較復雜,使用線性的思維無法解決 |
| 共同點 | 1、都是解決實際問題的一種解決方式 | |
| 2、兩者并非對立關系。 利用面向對象方式解決問題便于把我事物之間的復雜關系,方便分析整個系統。利用面向過程方式處理微觀操作。 |
2、java中提供訪問控制的原因
? (1) 讓客戶端程序員無法觸及他們不應該觸及的部分。
? (2)允許庫設計者可以改變類內部的工作方式而不用擔心會影響到客戶端程序員。
3、類的四大訪問的權限—-public private protected 包訪問權限(默認的訪問權限)
? public :for everyone
? 包訪問權限:類可以訪問在同一個包中的其他類成員。
protected:與private相當,區(qū)別:繼承的類可以訪問protected成員,但不能訪問private成員。
private:除類的創(chuàng)建者和類的內部方法之外的任何人都不能訪問。
4、類的復用(組合、繼承)
組合: 將某個類的對象置于一個新類中(<u>在另一個類中new一個其他類的對象</u>) ;**
繼承: 概念:覆蓋(重寫):在繼承的父類的方法中做些不同的事。
5、向上轉型
導出類------》基類
6、異常處理
異常時一種對象,它從出錯地點被拋出,并被專門設計用來處理特定類型錯誤的相應的“異常處理器”捕獲,
異常處理就像是與程序正常執(zhí)行路徑并行的、在錯誤發(fā)生時執(zhí)行的另一條路徑。是另一條完全分離的路徑。
7、對象
7.1 引用與對象
?
String s;//這里的s 只是引用還不是對象。此引用還未指向任何對象。
String s = new String("safd"); //new String("safd")才產生了對象,用s指向
7.2 對象存儲位置(5個地方)
寄存器:位于寄存器內部,是最快的存儲區(qū)。
堆棧:位于通用RAM(隨機存儲器)中,但是java對象并不存儲于其中。
堆:一種通用的內存池(位于RAM中),用于存放所有java對象。
常量存儲:存放于程序代碼內部。
非RAM存儲:
7.3 基本類型
| 基本類型 | 大小 | 包裝器類型 |
|---|---|---|
| boolean | ----- | Boolean |
| char | 2B | Character |
| byte | 1B | Byte |
| short | 2B | Short |
| int | 4B | Integer |
| long | 8B | Long |
| float | 4B | Float |
| double | 8B | Double |
| void | —— | Void |
高精度數字:
BigInteger、BidDecimal,二者沒有對應的基本類型。
7.4 java解決內存泄漏問題-----垃圾回收器
? 用來監(jiān)視用new創(chuàng)建的所有所有對象,并辨別哪些不會再被利用的對象,死后釋放這些對象的內存空間,以便供其他新的對象使用。
7.5 類的基本成員的默認值
| 基本類型 | 默認值 |
|---|---|
| char | ‘\uoooo’(null) |
| boolean | false |
| byte | byte(o) |
| short | short(o) |
| int | 0 |
| long | of |
| float | 0.0f |
| double | 0.0d |
7.6 static 關鍵字
所修飾的成員和函數可在不用創(chuàng)建對象時用,即:類名.成員 或 類名.函數。
注意:
class StaticTest{
static int i=47;
}
StaticTest st1 = newStaticTest();
StaticTest st2 = newStaticTest();
//st1.i和st2.i指向同一個存儲空間,他們具有相同的值47
7.7 關于注釋
7.7.1 單行注釋 ://
7.7.2:多行注釋:(/* sdalfk*/)
7.7.3 文檔標簽注釋://: 內容
? (/**內容 */)