1. 程式人生 > >JAVA面向對象思想理解分析

JAVA面向對象思想理解分析

境界 吃飯 定義類 分析 標簽 消失 ava 棧內存 靜態方法

1.面向對象是面向過程而言.兩者都是一種思想。
面向過程:強調的是功能行為。(強調過程、動作)
面向對象:將功能封裝進對象,強調了具備了功能的對象。(強調對象、事物)
面向對象是基於面向過程的。將復雜的事情變簡單了。
面向過程-->面向對象:執行者-->指揮者
將過程、功能封裝進對象裏面。
面向對象三大特征:封裝、繼承、多態。(找對象,建立對象,使用對象,維護對象的關系。)
老者境界:(萬物皆對象!!!)
例:公司招聘程序員:為了提高效率,公司老板從面向過程到面向對象(執行者-->指揮者)
例:去飯店吃飯,服務員具備點菜功能是對象,我們是指揮者。
2.以後寫程序就是找對象使用,有對象就拿過來用,沒對象就造一個對象。
人開門:名詞提煉法
人{
開門(門)
{
門.開();
}
}
門{
開(){操作門軸..}
}
3.類(class)和對象的關系:類是對現實生活中事物的描述。對象就是這類事物,實實在在存在的個體。
描述事物就是描述事物的屬性和行為。
屬性對應類中的變量,行為對應類中的函數(方法)。
定義類是描述事物定義屬性和行為。【屬性】和【行為】共同成為類中的成員(成員變量和成員方法);
(現實生活中對象:張三、李四。
想要描述:這些對象共性內容。對具體的抽象。
描述時:這些對象的共性有:姓名,年齡,性別,學習java時間、功能。)
映射到java中:描述是class中定義的類。具體對象是對應java在堆內存用new建立的實體。
4.類類型變量(引用類型)指向對象。(棧內存產生類類型變量指向實體)(堆內存產生實體)
5.成員變量作用於整個類中class,局部變量作用在函數中。
成員變量作用堆內存中因為對象的存在才在內存中存在;局部變量作用於棧內存中。
6.匿名對象:new Car().num=5;匿名對象調用屬性沒意義。調用方法有意義。(方法在方法去中)
當對對象的方法只調用一次時,可以使用匿名對象,這樣比較簡化;
如果對一個對象進行多成員調用,必須給這個對象起名字。
可以將匿名對象作為實際參數進行傳遞。
例如:show(new car());public static void show(car c){c.num=3;c.color=4;}可以簡化書寫;
7.封裝:是指隱藏對象的屬性和實現細節,僅對外提供公共訪問的方式。
好處:將變化隔離;便於使用;提高重要性;提高安全性。
封裝原則:將不需要對外提供的內容都隱藏起來;
【把屬性都隱藏,提供公共方法對其訪問】。
【函數是代碼中最小封裝體。】.
對屬性的封裝,提供get、set方法訪問,賦值
private只在私有類中訪問。封裝不是私有,私有僅僅是封裝的一種表現形式。之所以對外提供訪問方式,因為在訪問方式中加入邏輯判斷等語句。
一個類裏面有屬性set(void)設置和get返回,那麽這個屬性是私有的。
8.構造函數:函數名和類名一致;不用定義返回值類型(不用void...);不寫return語句。
對象一建立調用與之對應的構造函數。
構造函數的作用:可以給對象進行初始化。
構造函數的細節:當一個類中沒有定義構造函數時,那麽系統會默認給該類加入一個空參數的構造函數。
構造函數和一般函數寫法上、運行上不同,構造函數是在對象一建立就運行。給對象初始化。
而一般方法(set get)是對象調用才執行,是給對象添加對象具備的功能。
一個函數一建立,構造函數只運行一次。而一般方法可以被該函數對象調用多次。
9.構造代碼塊,作用:給對象初始化,對象一建立就運行,優先於構造函數執行。構造代碼塊給所有對象初始化,
構造函數給對應對象初始化。
不同的構造函數有相同初始化內容。
10.局部的變量賦予給成員的用this關鍵字。(同名)
this的特點:this代表本類【對象】。this代表所在函數所屬對象的引用。
哪個對象在調用this所在函數,this就代表那個對象。
this應用:當定義本類中功能,該函數內部調用該函數對象,用this表示這個對象。
11.構造函數之間的調用用this();用於區分同名變量的情況。
this語句只能在構造函數第一行。
12.static關鍵字。是一個修飾符,用於修飾成員(成員變量,成員函數)(在方法區中)
不在堆內存中,對象可以共享。
可以被類名調用。(類名.靜態成員)。
static靜態的特點:
1.隨著類的加載而加載。2.被所用對象共享。3.優先於對象存在。4.可以被類名調用。5.靜態變量可以使用get、set方法
特有的數據用成員變量,多個對象共用的數據用靜態變量。
13.實例變量和類變量(static)區別
1.類變量隨著類的加載存在於方法區中。實例變量隨著對象建立存在堆內存中。
2.類變量生命周期長,隨著類消失而消失。實例變量隨著對象的消失而消失。
3.主函數是靜態的。
14.靜態使用註意事項:
1.靜態方法只能訪問靜態成員(屬性,方法)。非靜態方法既可以訪問靜態也可以訪問非靜態。
2.靜態方法中不可以定義this.super關鍵字。(靜態優先於對象存在,對象中有this.)

標簽: java, 面向對象

JAVA面向對象思想理解分析