Java學(xué)習(xí)之java面向?qū)ο蟾攀黾癹avac的對象問題

(如今的程序領(lǐng)域,大家都在說丽惭,面向?qū)ο驩OP,但是真正能理解面向?qū)ο蟮暮x的程序員卻很少击奶,究竟什么是對象,怎樣面向?qū)ο?

一责掏、面向?qū)ο?/h1>

1柜砾、何謂對象:

在面向?qū)ο蟪绦蛟O(shè)計(jì)中,我們將問題空間中的元素以及他們在方案空間中的的表示物稱作對象(object)

Alan Kay總結(jié)了smalltalk中對象的5大基本特征:
所有的東西都是對象换衬。
程序是一大堆對象的集合痰驱,他們通過消息傳遞证芭,各個對象之間知道要做些什么。
每個對象都分配有自己的存儲空間担映,可容納其他對象废士。
每個對象都有一個類型。
同一類的所有對象能接收相同的消息蝇完。
-----而所有的編程語言的最終目的是提供一種抽象方法----

2官硝、對象的接口:
我們向?qū)ο蟀l(fā)出請求是通過它的接口定義的,對象的類型決定了它的接口形式短蜕。

3氢架、OOP中唯一關(guān)心的:
就是接口是什么,就像汽車的發(fā)動機(jī)一樣忿危,我們不必要知道它的結(jié)構(gòu)是什么达箍,只要它能工作就行了没龙。
所有的程序是由一定的屬性(數(shù)據(jù))和行為(方法)組成的铺厨,不同的對象訪問通過函數(shù)調(diào)用來完成,對象間的所有交流都是通過方法調(diào)用硬纤,通過對封裝數(shù)據(jù)對象解滓,很大程度上提高復(fù)用率。

4筝家、對象的3個主要特征:
behavior—說明這個對象能做什么洼裤。
State—當(dāng)對象施加方法時對象的反映。
Identity---與其他相似行為對象的區(qū)分標(biāo)志溪王,每一個對象有唯一的indentity, 而這3者是相互影響的腮鞍。

5、面向?qū)ο笾凶钪匾乃枷刖褪穷?br> 類是模板是藍(lán)圖莹菱,從類中構(gòu)造一個對象移国,即創(chuàng)建了一個類的實(shí)例。
類好比一個建材市場道伟,其中有許多子類--各種各樣的裝飾材料迹缀,而我們裝修自己的房子就要選擇我們需要的材料,(為了建立我們自己的程序蜜徽,我們必須選擇我們需要的類)這個比喻可以很形象的解釋類是什么祝懂。

6、類之間的關(guān)系:
依賴關(guān)系:use-a A類中的一個方法操作了另一個類中的對象拘鞋。
聚合關(guān)系:has-a A類中的對象包含B類的對象砚蓬。
繼承關(guān)系:is-a A繼承了B類,此時A類不僅有了B類的方法盆色,還加入了自己的方法灰蛙。以便我們創(chuàng)建我們自己需要的對象颅和。

7、繼承:
Java中定義的每一個類都必須繼承另一個類缕允,使用關(guān)鍵字extends峡扩,如果一個類在定義中不現(xiàn)實(shí)使用關(guān)鍵字extends,這個類就會隱式繼承Object類。
Object類又叫根超類障本,或基類教届。我們從根超類繼承來的叫子類。Java中每個類都是根超類的子類驾霜。

8案训、接口(interface)規(guī)定了可對特定的對象發(fā)出哪些請求。

9.繼承=重新使用接口:
創(chuàng)建出一個數(shù)據(jù)類型后粪糙,當(dāng)需要新建立一個數(shù)據(jù)類型去實(shí)現(xiàn)相同的功能强霎,是很沒有意義的一件事,此時對其克隆后蓉冈,再根據(jù)情況改進(jìn)實(shí)現(xiàn)自己的目的就是繼承城舞。

10.封裝:
就是把數(shù)據(jù)和行為結(jié)合在一起在一個包中,并對對象使用者隱藏?cái)?shù)據(jù)的實(shí)現(xiàn)過程寞酿。
Java用3個關(guān)鍵字來設(shè)置邊界家夺,從而進(jìn)行對數(shù)據(jù)的隱藏。
Public(共有)的定義任何人都可使用
Private(私有)意味著除你自己伐弹,類型創(chuàng)建者及那個類型的內(nèi)部函數(shù)成員可以訪問外其他任何人使用都會產(chǎn)生錯誤拉馋。
Friendly(友好)意味在包(package)中是可以訪問的。(以上過程也可叫方案隱藏)

11.引用(Handle)操控對象:
當(dāng)創(chuàng)建一個引用時必須要對其進(jìn)行初始化
例:

String s=”happy”  //(未建立連接)
String s=new string(“happy”)  //與一個新的對象連接使用new 惨好。

此句建立了一個引用煌茴,并且連接引用并初始化對象 賦值字符串“happy”

12、對象的創(chuàng)建及存在時間:數(shù)據(jù)存放的地點(diǎn)
》1:寄存器:
速度快日川,數(shù)量少蔓腐,在cpu內(nèi)部,我們對寄存器沒有控制權(quán)

》2:堆棧:駐留長規(guī)內(nèi)存中逗鸣,堆棧指針下移建立新的內(nèi)存合住,上移釋放內(nèi)存

》3:堆:
常用內(nèi)存池,保存對象撒璧,有極大的靈活性透葛,java的數(shù)據(jù)就存放在此,但是要以時間及效率為代價(jià)卿樱。Java的對象建立是在程序運(yùn)行時才決定僚害。而c++是在設(shè)計(jì)時建立對象。

對象的生存時間(lifetime):
Java提出的垃圾收集器可以很好的發(fā)現(xiàn)無須再用的對象,使用GC(grabage collector)垃圾收集器萨蚕。清除對象靶草,釋放內(nèi)存。為此我們就要付出一定的運(yùn)行期的開銷岳遥。

13奕翔、在此我們就會有這樣一個印象,一個程序只是一系列對象的集合,他們的方法將其他對象作為自己的變量使用。

14浩蓉、主要類型:
java的主要類型有:
boolean,char,byte,short,int,long,float,double,void
這些主類型的大小都不隨機(jī)器的結(jié)構(gòu)變化而變化,提供了java很好的可移植性派继。

15、字段方法:
字段又叫數(shù)據(jù)成員,成員函數(shù)又叫方法,java的全部工作就是定義類,制作類的對象及發(fā)送消息捻艳。

16驾窟、一個程序只是一系列對象的集合,他們的方法將其他的對象作為自己的變量使用,而且將消息發(fā)給那些對象。

17认轨、名字的可見性:
為了使名字不重復(fù),作者可以定義自己的庫,一般用自己域名的倒寫形式
如:

COM.: Leeak.utility.foidles

18绅络、static關(guān)鍵字:
即使沒有創(chuàng)建對象,也需要一愕能調(diào)用的方法,此時可以使用static

19、java.lang默認(rèn)自動的導(dǎo)入每個java程序中

20嘁字、OOP中對象使對屬性和方法的封裝,對象具有信息的隱蔽的性質(zhì),對細(xì)節(jié)的隱藏,對象只需要知道去這樣做,而不知道如何做的細(xì)節(jié),類的方法應(yīng)謹(jǐn)慎控制對java數(shù)據(jù)的訪問,可以用get讀取方法,用set修改方法恩急。

21、pakage:
JavaAPI中每個類和接口屬于一個特定的包,包實(shí)際上市對類和接口進(jìn)行組織的目錄結(jié)構(gòu),提供了一種軟件復(fù)用機(jī)制拳锚。

22假栓、創(chuàng)建可復(fù)用的類得步驟:
》1寻行、定義一個public類
》2霍掺、選擇一個包名,并把pakage語句加到可復(fù)用的類的源碼中。
》 3拌蜘、編譯這個類杆烁。
》4、把可復(fù)用的類導(dǎo)入其他程序中即可简卧。

23兔魂、java中提出在類定義的括號外的僅有2個語句,pakage和import。

24举娩、軟件的復(fù)用性,軟件的復(fù)用性就是利用已有的,定義良好的的經(jīng)過仔細(xì)測試的文檔清晰的可移植的易于獲得的軟件構(gòu)件開發(fā)新的軟件析校。

以上就是java面向?qū)ο蟮囊恍┗拘g(shù)語的概述,其中的有些部分可以擴(kuò)展的更深,看過think in java的 朋友就會有此種感覺。此文章向?qū)Τ鯇W(xué)者闡述了面向?qū)ο蟮幕靖拍钔妗σ咽莏ava程序員的朋友可以對他們的基本知識做以回顧智玻。

我在此說明幾點(diǎn):
1、對于作者這篇文章中所說的芙代,我標(biāo)示紅色的地方吊奢,使我們經(jīng)常會有疑問的地方,之前大家都一直在問常量池存在于哪里纹烹,我覺得是在方法區(qū)中页滚,作者說是在棧中召边,我的理解是,棧內(nèi)存是一塊很大的內(nèi)存裹驰,里面可能包含方法區(qū)隧熙,而常量池是在方法區(qū)中,如果細(xì)分的話幻林,就是將方法區(qū)從棧內(nèi)存中分離出來贱鼻,所以會說常量池不存在棧內(nèi)存中。僅為個人觀點(diǎn)滋将,大家僅供參考邻悬。

2、看了這篇文章随闽,問個提過的問題父丰,javac是對象嗎?
是不是對象掘宪,大家看看是不是javac符合對象的標(biāo)準(zhǔn)蛾扇,在百度百科上將javac解釋為:
javac 是javaC語言編程編譯器。javac工具由java語言編寫的類和接口的定義魏滚,并將它們編譯成字節(jié)代碼的class文件镀首。javac 可以隱式編譯一些沒有在命令行中提及的源文件。用 -verbose 選項(xiàng)可跟蹤自動編譯鼠次。

那么更哄,文章中說,所有東西都是對象腥寇,即萬物皆對象成翩。

我的理解是:從對象的特征驗(yàn)證,如下:
第一赦役、所有東西都是對象麻敌,javac符合

第二、javac也是一個程序掂摔,可對你編譯的文件操作术羔,進(jìn)行消息的傳遞,作用于.java文件上

第三乙漓、每個對象有分配自己的存儲空間级历,javac是java的一種命令,那么它一定有自己的定義和實(shí)現(xiàn)方法簇秒,這些方法在運(yùn)行時也存在于java分配的內(nèi)存中鱼喉,至于具體在哪,本人才疏學(xué)淺,今后還需深入研究扛禽。javac可以容納.java文件锋边,將其編譯成為.class文件。

第四编曼、每個對象都有一個類型豆巨,javac應(yīng)該屬于類類型的。因?yàn)閖avac被封裝成一個操作.java文件的類掐场,內(nèi)部實(shí)現(xiàn)方式我們是不知道的往扔,直接使用這個編譯器即可。

第五熊户、同一類的所有對象能接受相同的消息萍膛。這句話的意思我理解是同一個類是可以接收相同的參數(shù)的,javac接收的.java文件嚷堡,那么這個相同的消息就是.java的傳入蝗罗。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市蝌戒,隨后出現(xiàn)的幾起案子串塑,更是在濱河造成了極大的恐慌,老刑警劉巖北苟,帶你破解...
    沈念sama閱讀 211,265評論 6 490
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件桩匪,死亡現(xiàn)場離奇詭異,居然都是意外死亡友鼻,警方通過查閱死者的電腦和手機(jī)傻昙,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,078評論 2 385
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來桃移,“玉大人屋匕,你說我怎么就攤上這事〗杞埽” “怎么了?”我有些...
    開封第一講書人閱讀 156,852評論 0 347
  • 文/不壞的土叔 我叫張陵进泼,是天一觀的道長蔗衡。 經(jīng)常有香客問我,道長乳绕,這世上最難降的妖魔是什么绞惦? 我笑而不...
    開封第一講書人閱讀 56,408評論 1 283
  • 正文 為了忘掉前任,我火速辦了婚禮洋措,結(jié)果婚禮上济蝉,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好王滤,可當(dāng)我...
    茶點(diǎn)故事閱讀 65,445評論 5 384
  • 文/花漫 我一把揭開白布贺嫂。 她就那樣靜靜地躺著,像睡著了一般雁乡。 火紅的嫁衣襯著肌膚如雪第喳。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 49,772評論 1 290
  • 那天踱稍,我揣著相機(jī)與錄音曲饱,去河邊找鬼。 笑死珠月,一個胖子當(dāng)著我的面吹牛扩淀,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播啤挎,決...
    沈念sama閱讀 38,921評論 3 406
  • 文/蒼蘭香墨 我猛地睜開眼引矩,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了侵浸?” 一聲冷哼從身側(cè)響起旺韭,我...
    開封第一講書人閱讀 37,688評論 0 266
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎掏觉,沒想到半個月后区端,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 44,130評論 1 303
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡澳腹,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 36,467評論 2 325
  • 正文 我和宋清朗相戀三年织盼,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片酱塔。...
    茶點(diǎn)故事閱讀 38,617評論 1 340
  • 序言:一個原本活蹦亂跳的男人離奇死亡沥邻,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出羊娃,到底是詐尸還是另有隱情唐全,我是刑警寧澤,帶...
    沈念sama閱讀 34,276評論 4 329
  • 正文 年R本政府宣布蕊玷,位于F島的核電站邮利,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏垃帅。R本人自食惡果不足惜延届,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 39,882評論 3 312
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望贸诚。 院中可真熱鬧方庭,春花似錦厕吉、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,740評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至订讼,卻和暖如春髓窜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背欺殿。 一陣腳步聲響...
    開封第一講書人閱讀 31,967評論 1 265
  • 我被黑心中介騙來泰國打工寄纵, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脖苏。 一個月前我還...
    沈念sama閱讀 46,315評論 2 360
  • 正文 我出身青樓程拭,卻偏偏與公主長得像,于是被迫代替她去往敵國和親棍潘。 傳聞我的和親對象是個殘疾皇子恃鞋,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 43,486評論 2 348

推薦閱讀更多精彩內(nèi)容