1、 類與對象的區別,類是對象的模板,對象是類的執行個體
2、 建立類的文法:class 類名稱{},類中由屬性及方法組成
3、 對象的建立文法:
· 聲明對象:類名稱 對象名稱 = null ; //相當於在棧記憶體空間聲明了一個對象名稱,實際上是儲存的的堆的地址
·執行個體化對象:對象名稱 = new 類名稱() ; //開闢堆記憶體空間,堆中存放的是全部的屬性
· 類間的引用傳遞實際上傳遞的就是堆記憶體空間的使用權
· 如果一個對象只聲明而未執行個體化,在使用時會出現空指向異常
· 垃圾對象產生:無用的記憶體空間,沒有任何棧記憶體指向,而且一個棧記憶體只能指向一個堆記憶體空間
4、 封裝性:類中的內容對外部不可見
· 在java中現在可以使用private關鍵字實現封裝,但是封裝之後的的屬性只能通過setter及getter方法設定和取得
· 在類的設計中,所有的屬性都要求進行封裝。這是一個標準的設計原則。
5、 構造方法
· 任何一個類中都會存在一個構造方法
· 構造方法名稱與類名稱一致,沒有傳回值類型
· 構造方法會在對象使用關鍵字new進行執行個體化的時候自動調用
· 如果一個類中沒有明確的聲明一個構造方法的話,則會自動產生一個無參的什麼都不做的構造方法
6、 String類
· String有兩種執行個體化方式:
|- 直接賦值:只會開闢一個堆記憶體空間
|- new Stirng():會開闢兩個堆記憶體空間,有一個是垃圾
· String的內容一旦聲明則不可改變,改變的只是記憶體位址的指向
· 一個字串就是一個String的匿名對象
· String類中提供了若干個操作方法:substring()、replaceAll()、split()、length()
7、 this關鍵字
· 使用this表示的是當前對象,當前正在操作方法的對象
· 使用this可以調用類中的屬性或方法
· 使用this可以調用構造方法,但是必須放在構造方法的首行
this關鍵字的兩個用途:① 引用隱式參數,② 調用該類其他的構造器.
8、 super關鍵字
兩個用途: 一是調用超類的方法,二是調用超類的構造器。
this、super關鍵字在調用構造器的時候,使用方式相似。只能作為另一個構造器的第一條語句出現
9、 一個類可以接收自己本類的引用但是此用法只在對象比較一個位置上使用