將功能封裝進對象,強調了具備了功能的對象
eg1:將大象塞進冰箱:
面向對象思想:
我--指揮--冰箱;
冰箱:打開
冰箱:存儲
冰箱:關閉
(功能)
面向過程思想:
我打開冰箱,大象存儲進冰箱,關閉冰箱(動作)
---------------------------------------------------------------------------------------
eg2:
軟件公司招聘你去幹活:爲了提高工作效率
老闆(對象)--指揮你(對象)幹活
-------------------------------------------------------------------------------------
從例子理解什麼是面向對象:
①面向對象的特點:複雜的問題簡單化,能使角色轉變{執行者->指揮者}
②舉例:(結合生活)
面向對象思考方式思考問題,公司招人需求,提高發展
你需要找一些具備編程經驗的人幫公司完成工作
我就是那個對象,我是具備專業編程功能的人
你指揮我在做事
你在使用的我專業編程功能爲公司解決事情
-------------------------------------------------------------------------------------
類與對象的關係
名詞提煉法
人開門:門{開(){操作門}}人{開門(門){門.開()}}
面向對象三大特徵:封裝,繼承,多態
開發:其實就是找對象使用,沒有對象就創建對象
重點:找對象,建立對象,使用對象,維護對象的關係。
類和對象的關係:
類:對現實生活中事物的描述
對象:這類事物存在的個體
描述:提取對象中共性內容,對具體的抽象
共性:姓名,年齡,性別,學習java功能之類
該對象通過new產生的實體,在堆內存中
映射到java中,描述就是class定義的類,具體對象就是對應java在堆內存中用new建立的實體
Car c =new Car();
-------------------------------------------------------------------------------------
匿名對象:
new Car().num=5;①
new Car().color="blue";②
new Car().run();③
說明:默認num=4;color="yellow"
當調用②時,①成了垃圾,而③仍有意義
由此可知,匿名對象的使用方式:對象方法只調用一次,且作爲實參傳遞
-----------------------------------------------------------------------------------------------------
封裝:
隱藏對象的屬性和實現的細節,僅對外提供公共訪問方式
好處:
將變化隔離
便於使用
提高代碼重用性
提高安全性
原則:把不需要對外提供的內容隱藏,把屬性隱藏,提供公共方法對其訪問
注意:私有僅僅是封裝的一種表現形式,對訪問的數據進行操作,提高代碼健壯性
----------------------------------------------
構造代碼塊:
創建方法
class{
{
Syetem.out.println();
}
}
作用:給對象進行初始化,對象一建立就運行,優先於構造函數執行
構造代碼塊是給所有對象進行統一初始化
構造函數是給對應的對象初始化
重點:把構造函數初始化,相應的對象無法創建
-----------------------------------------------------------
this:
特點:就代表本類的對象
this代表它所在函數所屬對象的引用
應用:當定義類中功能時,該函數內部要用到調用該函數的對象時,這時使用this來表示這個對象,但凡本類功能內部使用了本類對象,都用this表示
一個類中可有多個構造函數,this()語句用於構造函數之間進行互相調用//this(name)
(要定義在構造函數第一行)