摘要:也可以這么說,對象就好像通訊簿中的一筆數(shù)據(jù)。對象有已知的事物,并能執(zhí)行工作。對象本身已知道的事物成為實例變量,它代表對象的狀態(tài)。對象可執(zhí)行的動作稱為方法,它代表對象的行為。
閱讀本文約“2.1分鐘”。
當(dāng)你在設(shè)計類時,要記得對象時靠類的模型塑造出來的,你可以這樣看:
——對象是已知事物
——對象會執(zhí)行的動作
對象本身已知的事物稱為實例變量,它們代表對象的狀態(tài)(數(shù)據(jù)),且該類型的每一個對象都會獨立的擁有一份該類型的值。
所以你也可以把對象當(dāng)作為實例。
對象可以執(zhí)行的動作稱為方法。在設(shè)計類時,你也會設(shè)計出操作對象數(shù)據(jù)的方法。對象帶有讀取或操作實例變量的方法是很常見的情形,舉例來說,鬧鐘對象會有個變量來保存響鈴時間,且會有g(shù)etTime()與setTime()這兩個方法來存取該時間。
因此說對象帶有實例變量和方法,但它們都是類設(shè)計中的一部分。
類與對象兩者之間有什么不同呢?
類不是對象(卻是用來創(chuàng)建它們的模型),類是對象的藍圖,它會告訴虛擬機如何創(chuàng)建某種類型的對象。根據(jù)某類創(chuàng)建出的對象都會有自己的實例變量。
也可以這么說,對象就好像通訊簿中的一筆數(shù)據(jù)。
通訊簿的每張卡片都有相同的空白字段(實例變量)。填入新的聯(lián)系人就如同創(chuàng)建新的實例(對象),填入卡片的數(shù)據(jù)代表聯(lián)絡(luò)人的狀態(tài)。
這個卡片類上的方法就是你會對卡片作的事情:getTel(),changeAddress(),deleteCard()等。
所以每張卡能夠執(zhí)行相同的動作,但取出的結(jié)果應(yīng)該是依每張卡片各自獨立的。
要作出哪些東西才會運用對象呢?你需要兩個類,一個是要被操作于對象的類,另一個是用來測試該類的類。測試用的類帶有main()并且你會在其中建立與存取被測的對象。
待在main()中對于一個測試用的程序來說是還好的,但對于貨真價實的面向?qū)ο髴?yīng)用程序來說,你會需要用對象來與對象交互。
main()的兩種用途:
——測試真正的類
——啟動你的Java應(yīng)用程序
真正的Java程序只會讓對象與對象交互,此處所說的交互是指相互調(diào)用方法。
Java的自動回收
創(chuàng)建對象時,它會被存放在成為堆的內(nèi)存區(qū)域匯總,不管對象如何創(chuàng)建都會放在此區(qū)域中。此區(qū)域并非普通的堆;它是可回收垃圾的堆(Garbage-CollectibleHeap)。Java會根據(jù)對象的大小來分配內(nèi)存空間。比如說15個實例變量的對象所占用的空間就可能會比只有兩個實例變量的對象要大。但對象使用完畢時內(nèi)存要如何回收呢?Java會主動幫你管理內(nèi)存!當(dāng)某個對象唄Java虛擬機察覺不再會被使用到,該對象就會被標記成可回收的。如果內(nèi)存開始不足,垃圾收集器就會啟動來清理垃圾、回收空間,讓空間能夠再次被利用。
面向?qū)ο笤O(shè)計擴展功能不需要改動之前已經(jīng)測試好的程序代碼。
所有的Java程序都定義在類中。
類如同藍圖描述該類型的對象要如何創(chuàng)建。
對象自治,你無需在意它如何完成任務(wù)。
對象有已知的事物,并能執(zhí)行工作。
對象本身已知道的事物成為實例變量,它代表對象的狀態(tài)。
對象可執(zhí)行的動作稱為方法,它代表對象的行為。
創(chuàng)建類時,可能同時會需要創(chuàng)建獨立、測試用的類。
類可以繼承自較為抽象的父類。
Java的程序在執(zhí)行期是一組會互相交談的對象。
本文已轉(zhuǎn)載個人技術(shù)公眾號:UncleCatMySelf
歡迎留言討論與點贊
上一篇推薦:【Java貓說】案例談面向?qū)ο?br>下一篇推薦:【Java貓說】主數(shù)據(jù)類型和引用
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/71633.html
摘要:以下我們使用一個案例來舉例說明面向?qū)ο蟮木幊谭椒ǎ咐囊笫窃趫D形接口畫出四方形圓形與三角形。本文已轉(zhuǎn)載個人技術(shù)公眾號歡迎留言討論與點贊上一篇推薦貓說編譯器與虛擬機哪個重要下一篇推薦貓說類與對象的那些事 有人告訴我那里遍地都是對象——我們把所有的程序代碼放在main()里面,事實上,那根本就不是面向?qū)ο蟮淖龇ǎ贘ava的面向?qū)ο笾校覀円矔吹筋惡蛯ο蟮牟煌约皩ο笫侨绾巫屇愕纳?..
摘要:閱讀本文約分鐘變量有兩種主數(shù)據(jù)類型和引用。主數(shù)據(jù)類型用來保存基本類型的值,包括整數(shù),布爾和浮點數(shù)等,而對象引用保存的是對象的引用。而在中,主數(shù)據(jù)類型也有不用的大小與名稱。 閱讀本文約2.3分鐘 變量有兩種:primitive主數(shù)據(jù)類型和引用。 Java注重類型。它不會讓你做出把長頸鹿類型變量裝進兔子類型變量中這種詭異又危險的舉動——如果有人對長頸鹿調(diào)用跳躍這個方法會發(fā)生什么悲劇?并且...
摘要:閱讀本文約分鐘我們將用基礎(chǔ)來模擬實現(xiàn)大家熟悉的戰(zhàn)艦游戲,目標是要猜想對方戰(zhàn)艦坐標,然后開炮攻擊,命中所有戰(zhàn)艦后,游戲結(jié)束。本文已轉(zhuǎn)載個人技術(shù)公眾號歡迎留言討論與點贊上一篇推薦貓說實例變量與局部變量下一篇推薦貓說處理戰(zhàn)艦游戲 閱讀本文約 7分鐘 我們將用基礎(chǔ)Java來模擬實現(xiàn)大家熟悉的戰(zhàn)艦游戲,目標是要猜想對方戰(zhàn)艦坐標,然后開炮攻擊,命中所有戰(zhàn)艦后,游戲結(jié)束。接下來我們來分析一下具體的...
摘要:格式子類名父類名好處提高了代碼的復(fù)用性提高了代碼的維護性通過少量的修改,滿足不斷變化的具體要求讓類與類產(chǎn)生了一個關(guān)系,是多態(tài)的前提要求有共同的屬性或操作有細微的差別繼承的弊端讓類的耦合性增強。 showImg(https://segmentfault.com/img/remote/1460000019321816?w=600&h=242); 第二階段 JAVA面向?qū)ο?第二章 繼承 其...
摘要:前言面試中對于技術(shù)職位,一般分筆試與面談,如果面試官的一些小問題你可以立馬找到對應(yīng)的知識點擴展開來,那么這就是你的優(yōu)勢,本系列將講述一些面試中的事,不會很詳細,但是應(yīng)該比較全面吧。 前言 面試中對于技術(shù)職位,一般分筆試與面談,如果面試官的一些小問題你可以立馬找到對應(yīng)的知識點擴展開來,那么這就是你的優(yōu)勢,本系列將講述一些java面試中的事,不會很詳細,但是應(yīng)該比較全面吧。 主要內(nèi)容 pa...
閱讀 2293·2021-11-25 09:43
閱讀 3446·2021-10-25 09:48
閱讀 1321·2021-09-13 10:24
閱讀 2735·2019-08-29 15:07
閱讀 1258·2019-08-29 13:14
閱讀 3265·2019-08-29 12:22
閱讀 1354·2019-08-29 11:32
閱讀 3229·2019-08-29 11:23