黑马程序员——java语言基础——面向对象
----------------------?android培訓、java培訓、期待與您交流! ----------------------?
類就是:對現實生活中事物的描述。
對象:就是這類事物,實實在在存在個體。
描述事物其實就是在描述事物的屬性和行為。
?
如何定義類——————
//需求:描述汽車(顏色,輪胎數)。描述事物其實就是在描述事物的屬性和行為。
//屬性對應是類中變量,行為對應的類中的函數(方法)。
//其實定義類,就是在描述事物,就是在定義屬性和行為。屬性和行為共同成為類中的成員(成員變量和成員方法)。
class Car
{
?????? //描述顏色
?????? String color = "紅色";
?????? //描述輪胎數
?????? int num = 4;
?
?????? //運行行為。
?????? void run()
?????? {
?? ? ? ? ? ? ? System.out.println(color+".."+num);
?????? }?
}
?
面向對象——————
:三個特征:封裝,繼承,多態。
//以后開發:其實就是找對象使用。沒有對象,就創建一個對象。
//找對象,建立對象,使用對象。維護對象的關系。
/*
類和對象的關系。
現實生活中的對象:張三 李四。
想要描述:提取對象中共性內容。對具體的抽象。
描述時:這些對象的共性有:姓名,年齡,性別,學習java功能。
?
?
映射到java中,描述就是class定義的類。
具體對象就是對應java在堆內存中用new建立實體。
?
類就是:對現實生活中事物的描述。
對象:就是這類事物,實實在在存在個體。
//需求:描述汽車(顏色,輪胎數)。描述事物其實就是在描述事物的屬性和行為。
?
//屬性對應是類中變量,行為對應的類中的函數(方法)。
//其實定義類,就是在描述事物,就是在定義屬性和行為。屬性和行為共同成為類中的成員(成員變量和成員方法)。
/*
成員變量和局部變量————————
作用范圍。
成員變量作用于整個類中。
局部變量變量作用于函數中,或者語句中。
在內存中的位置:
成員變量:在堆內存中,因為對象的存在,才在內存中存在。
局部變量:存在棧內存中。
*/
?//匿名對象使用方式一:當對對象的方法只調用一次時,可以用匿名對象來完成,這樣寫比較簡化。
????????????? //如果對一個對象進行多個成員調用,必須給這個對象起個名字。
????????????? //匿名對象使用方式二:可以將匿名對象作為實際參數進行傳遞。
?/*
private :私有,權限修飾符:用于修飾類中的成員(成員變量,成員函數)。
私有只在本類中有效。
?
將age私有化以后,類以外即使建立了對象也不能直接訪問。
但是人應該有年齡,就需要在Person類中提供對應訪問age的方式。
?
注意:私有僅僅是封裝的一種表現形式。
?
之所以對外提供訪問方式,就因為可以在訪問方式中加入邏輯判斷等語句。
對訪問的數據進行操作。提高代碼健壯性。
?*/
構造函數——————
一個對象建立,構造函數只運行一次。
而一般方法可以被該對象調用多次。
?
什么時候定義構造函數呢?
當分析事物時,該事物存在具備一些特性或者行為,那么將這些內容定義在構造函數中。
/*
?????? 很多面試題(關于程序運行結果,運行先后順序)
?????? 構造代碼塊。
?????? 作用:給對象進行初始化。
?????? 對象一建立就運行,而且優先于構造函數執行。
?????? 和構造函數的區別:
?????? 構造代碼塊是給所有對象進行統一初始化,
?????? 而構造函數是給對應的對象初始化。
?
?????? 構造代碼快中定義的是不同對象共性的初始化內容。
?
?????? */
This 關鍵字————
?/*
this:看上去,是用于區分局部變量和成員變量同名情況。
this為什么可以解決這個問題?
this到底代表的是什么呢?
?
this:就代表本類的對象,到底代表哪一個呢?
?????? this代表它所在函數所屬對象的引用。
?????? 簡單說:哪個對象在調用this所在的函數,this就代表哪個對象。
??
this的應用:當定義類中功能時,該函數內部要用到調用該函數的對象時,這時用this來表示這個對象。
????????????? 但凡本類功能內部使用了了本類對象,都用this表示。
/*
this語句 :用于構造函數之間進行互相調用。
?
this語句只能定義在構造函數的第一行。因為初始化要先執行。
*/
----------------------?android培訓、java培訓、期待與您交流! ----------------------?
轉載于:https://www.cnblogs.com/heima-jieqi/archive/2012/04/05/2433793.html
總結
以上是生活随笔為你收集整理的黑马程序员——java语言基础——面向对象的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux 下的多线程下载工具
- 下一篇: C语言:为什么用fprintf(stde