##Java SE階段知識點以及思維導圖
面向物件
【知識點思維導圖已經上傳到我的資源去啦!!!也可以點這個鏈接https://download.csdn.net/download/luminarysun/15113850】
1.面向物件是啥
1.1程式設計的思想
1.2面向程序的區別
1.2.1面向程序先考慮問題的解決流程,注意先后順序
1.2.2面向物件先把問題中涉及到的概念,先用物件表示出來,在統籌流程
1.3類和物件的理解
1.3.1類是圖紙,物件是根據圖紙蓋出來的房子
1.3.2類是自定義型別,物件是該型別創建出來的變數
2.基本語法
2.1類的創建
2.1.1class 關鍵字
2.1.2類名一般要求首字母大寫
如果這個類是public修飾的,類名要和檔案名一致
2.1.3類內部可以有屬性,也可以有方法
2.1.4每個屬性和方法,都可以加static,以及其他的訪問權限控制的修飾符
2.2物件的創建/類的實體化
2.2.1使用new關鍵字進行
2.2.2實體化一個物件的時候
會給該實體分配記憶體空間
針對該實體進行初始化
把得到的實體的記憶體的地址,回傳回去,使用一個參考來持有
3.static
3.1static 的含義和字面意義沒有任何關系
3.2static 表示該屬性或者該方法,和實體無關,而是和類相關
3.2.1應該是通過類名.屬性 的方式來訪問
3.2.2static 修飾的屬性在記憶體中只有一份
4.物件的初始化
4.1類屬性的默認值
4.1.1針對整數
0
4.1.2針對浮點數
0.0
4.1.3針對字符
\u000
4.1.4針對 boolen
false
4.1.5針對參考型別
null
4.1.6盡量顯示的進行初始化,代碼可讀性更好一些,
4.2就地初始化
4.3構造代碼塊
4.4構造方法
4.4.1概念
方法名字和類名相同
不需要顯式的寫 return
不需要顯式呼叫,new的時候自動被呼叫到
4.4.2重要注意事項
構造方法中,盡量不要呼叫其他的方法,尤其是可能被重寫的方法
要讓物件盡快的進入到可作業的狀態
5.toString
5.1在進行 println 的時候,就會觸發這個操作
5.2Object 類的方法
任何一個類都可以重寫 toString
6.封裝
6.1背景
6.1.1管理程式的復雜程度
6.1.2讓呼叫者理解的細節越少,使用成本就越低
6.2訪問權限控制
6.2.1public
任何類都能訪問
6.2.2protected
同包的類能訪問
其他包的子類能訪問
6.2.3default
同包的類能訪問
6.2.4private
類內部能訪問
6.3使用原則
能用private盡量用private
protected 和 default 用的相對較少
6.4如果外部真的需要使用 private 的屬性怎么辦?
6.4.1getter
6.4.2setter
6.4.3和封裝的理念相悖,破壞了封裝
7.繼承
7.1背景
更好的代碼重用(以類為單位)
7.2語法
7.2.1extends關鍵字
7.2.2子類會繼承父類所有的方法和屬性
哪怕這個屬性是私有的屬性,也是被繼承到了
7.2.3final
禁止繼承
繼承的體系不要太復雜
7.3is-a 語意
繼承不能被濫用
8.組合
8.1把類作為另外類的成員/屬性
8.2has-a語意
9.多型
9.1背景
封裝的更近一步
使用者不需要知道具體的型別,也能完成使用
9.2好處
使用者了解的資訊更少,不需要知道型別
擴展更方便
降低程式的圈復雜度,減少分支陳述句的數目
9.3語法體現
9.3.1向上轉型
9.3.2動態系結
9.3.3方法重寫
9.4補充語法
9.4.1向下轉型
不是隨便轉的
instanceof
9.4.2抽象類
不能實體化
可以包含抽象方法
可以包含一些普通的屬性和方法
抽象類能被單繼承
9.4.3介面
只能包含抽象方法和 public static final 修飾的屬性
一個可以實作多個介面
介面之間也能相互繼承
實作一個介面,就必須要把介面里面的抽象方法都實作出來
10.String
10.1創建
10.1.1String s = "hello"
沒有創建新的物件,只是拿 s 參考指向了字串常量池中的 “hello”
10.1.2String s = new String("hello");
一個新的String 物件,把“hello”拷貝了進去,參考指向了這個新物件
10.2比較
10.2.1 ==
比較身份
10.2.2equals
比較內容
equals也是Object 的方法
默認就是比較身份
10.2.3compareTo
比較大小
字典序
10.3字串常量池
字串字面值常量都是保存到常量池中
常量池是堆上的一塊記憶體區域
后續如果需要用到同一個字串常量,直接從池子里取即可,不需要重新創建物件
10.4不可變物件
10.4.1資料成員是private,并且沒有提供public的方法來修改
10.4.2常規手段不能修改,如果使用反射,也是能改的
10.4.3好處
更方便放到常量池中
執行緒安全更有保證
hashCode不變
10.5常用操作
比較
查找
替換
截取子串
切分
10.6StringBuilder/StringBuffer
String的可變物件版本
StringBuilder 和StringBuffer的區別
11.例外
11.1目的
防御式編程
11.2基本語法
11.2.1try
11.2.2catch
try中拋出的例外需要和catch ()中的引數匹配
catch可以分成多組
11.2.3finally
最后執行,收尾作業
11.2.4throw
主動拋出例外
11.2.5throws
宣告該方法可能拋出哪些例外
11.3例外體系
11.3.1角度一
Errow
Exception
11.3.2角度二
受查例外
非受查例外
11.4自定義例外
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/257443.html
標籤:java
下一篇:執行緒捕捉例外
