1、面向對象思想 (1)面向過程思想:面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然後由這些功能方法相互調用,完成需求。強調的是過程,所有事情都需要自己完成。 (2)面向對象思想:就是不斷的創建對象,使用對象,指揮對象做事情。是一種更符合我們思想習慣的思想(懶人思想,我把事情自己不做,交給 ...
1、面向對象思想
(1)面向過程思想:面向著具體的每一個步驟和過程,把每一個步驟和過程完成,然後由這些功能方法相互調用,完成需求。強調的是過程,所有事情都需要自己完成。
(2)面向對象思想:就是不斷的創建對象,使用對象,指揮對象做事情。是一種更符合我們思想習慣的思想(懶人思想,我把事情自己不做,交給別人去做),可以將複雜的事情簡單化(對使用者來說簡單了,對象裡面還是很複雜的),將我們從執行者變成了指揮者角色發生了轉換。
2、類與對象概述及使用
(1)類與對象概述:
--A:我們學習編程是為了什麼?
為了把我們日常生活中實物用學習語言描述出來。
--B:我們如何描述現實世界事物?
屬性 就是該事物的描述信息(事物身上的名詞)
行為 就是該事物能夠做什麼(事物身上的動詞)
--C:Java中最基本的單位是類,Java中用class描述事物也是如此。
成員變數 就是事物的屬性。
成員方法 就是事物的行為。
--D:定義類其實就是定義類的成員(成員變數和成員方法)
a:成員變數 在類中,方法外,定義的變數,不需要給初始化值。
b:成員方法 在類中定義的方法。
--E:類和對象的概念
a:類:是一組相關的屬性和行為的集合。(我們班所有的同學都具備相同的屬性和行為,比如:姓名,年齡,學習,這樣就把所有的學生成為學生類)
b:對象:是該類事物的具體體現。(說某個同學時,他都具備自己特有的屬性和行為)
c:舉例:
類 學生
對象 具體的某個學生就是一個對象
比如:車是一個類,具體的開的賓士、寶馬,就是對象。
(2)類與對象的使用:
--定義格式: [public] class 類名{
成員變數;
成員方法;
}
--創建對象: 類名 對象名 = new 類名();
--訪問成員變數:對象名.變數名;
--調用成員方法:對象名.方法名();
(3)一個對象的記憶體圖:
(4)方法公用記憶體圖:
(5)兩個引用指向同一對象:
3、成員變數與局部變數的區別
(1)在類中的位置不同
成員變數:類中,方法外
局部變數:方法中或者方法聲明上(形式參數)
(2)在記憶體中的位置不同
成員變數:堆記憶體
局部變數:棧記憶體
(3)生命周期不同
成員變數:隨著對象的創建而存在,隨著對象的消失而消失
局部變數:隨著方法的調用而存在,隨著方法的調用完畢而消失
(4)初始化值的問題
成員變數:有預設值
局部變數:沒有預設值。(必須先定義,賦值,最後使用)
4、面向對象特性之封裝
(1)封裝概述:封裝是面向對象的三大特征(封裝、繼承、多態)之一,是面向對象編程語言對客觀世界的模擬,客觀世界里成員變數都是隱藏在對象內部的,外界無法直接操作和修改。
(2)封裝原則:將不需要對外提供的內容都隱藏起來。把屬性隱藏,提供公共方法對其訪問。成員變數用private修飾,提供對應的public修飾的getXxx和setXxx方法,供外部獲取私有成員變數的值。
(3)封裝的好處:通過方法來控製成員變數的操作,提高了代碼的安全性。通過方法來控製成員變數的操作,提高了代碼的安全性。
(4)private關鍵字:是一個許可權修飾符,可以修飾成員變數及成員方法,被private修飾的成員只能在本類中訪問。
(5)this關鍵字:代表所在類的對象引用,方法被哪個對象調用,this就代表那個對象。局部變數和成員變數重名時使用this區分。
5、面向對象之構造方法
(1)構造方法:主要用於給對象的數據進行初始化。
(2)構造方法格式:方法名與類名相同,沒有返回值類型,連void都沒有。
(3)註意事項:如果自定義的類不提供構造方法,系統會給出預設的無參構造方法。當類中提供有參數或無參數構造器時,JVM不再為該類創建預設構造器。為防止子類參數化時調用父類的預設構造器,自定義類一般要明確給出無參數構造器。構造方法可以重載,重載方式與普通方法相同。