- 零基礎學Java第2版
- 陳潔
- 1593字
- 2018-12-31 19:34:44
8.1 對象
什么是對象呢?本節將會詳細地講述對象的概念、用法,以及如何創建它們。對象是一個比較抽象的概念。在這里將會結合實例進行講述、分析,讓讀者能夠從本質上很好地理解對象。
8.1.1 什么是對象
很多編程愛好者,包括有過很多年編程經驗的人,對于對象的概念都是很模糊的,如果將對象的概念與現實生活中的實物相比,就會發現對象其實是很好理解的。
對象就是實際生活中的事物,可以說一切都是對象,在現實生活中時時刻刻都接觸到對象這個概念,例如桌子、椅子、電腦、電視機、空調等。這些實物都可以說是對象。
對象有三個主要的特征:
?對象行為:這個對象能做什么,即可以讓這個對象完成什么樣的功能,比如自行車可以載大家去想去的地方。
?對象的狀態:當操縱對象的方法時,對象所保持的一種特定的狀態,比如可以扭轉車頭使得自行車轉彎、剎車會使車停下來。
?對象的標識符:可以通過標識符,區別具有相同行為或類似狀態的對象,例如自行車的顏色、樣式都是對象的標識符。通過它能區分不同的對象。例如紅色的自行車、藍色的自行車等,通過顏色這個標識符,可以區分兩種不同自行車對象。代碼如下所示,這里僅作演示。
01 class 自行車 02 { 03 int color;-------------------------------對象的標識符 04 int material;----------------------------對象的標識符 05 int type;--------------------------------對象的標識符 06 int a------------------------------------對象的狀態屬性 07 void ride(){?????..}------------------對象的行為 08 void control(int a)----------------------對象的狀態方法函數 09 { 10 if a=number1 11 轉彎 12 else if a=number2 13 直行 14 else a=number3 15 停止 16 } 17 }
從以上例子可以清楚地看出對象到底是什么,下面將學習如何去操作對象。
8.1.2 操作對象
讀者初步了解到,對象其實就是現實生活中的事物,現實生活中要經常去使用和操作這些事物,那么如何去操作這些事物(對象)呢?
針對這個問題,提出了一個概念,就是對象句柄。什么是對象句柄?為了能清楚地解釋這個概念,先舉個例子:使用湯勺去喝湯,湯勺的勺部分是用來盛湯的,湯勺把手部分是讓大家能夠操作湯勺的工具。對象句柄就相當于前面所說的湯勺把手,而湯勺就像前面所說的對象。
通過上面的例子可以總結出,對象句柄其實是一個指向對象所在內存地址的指針,如果要操作對象,只需要操作對象句柄,正如要想讓湯勺能盛湯,只要握住湯勺把手的道理是一樣的。
8.1.3 初始化對象
創建一個對象時,總希望它能立即被初始化,即立刻將其與相應的對象進行關聯。在Java中,這是一個非常簡單的工作。使用關鍵字“new”來完成對象句柄的命名,用“=”將對象句柄與對象關聯。舉例:
String str=new String("Hello");
解釋與分析:String是Java中用到最多的字符串對象。在這個例子中,先給對象句柄命名,并且聲明這個對象句柄的類型是屬于什么類型的對象,最后,將“Hello”這個字符串類型對象的內存地址賦給這個對象句柄。于是,對象句柄初始化的工作就算完成了。以后要操縱這個對象,只要操縱這個“str”對象句柄就可以了。
【實例8.1】下面看一個程序段。
01 public class object1 02 { 03 public static void main(String[] args) 04 { 05 object1 m=new object1(); 06 } 07 }
【代碼說明】以上這個例子中,通過第5行的代碼,為“object1”類初始化一個“object1”對象“m”,而這個“m”就是前面提到的對象句柄。在學完本章的其他小節后,就可以通過對象句柄,來訪問這個對象的方法函數和屬性值。
【運行效果】本例沒有輸出任何內容。
真正開發的時候,就可以體會到使用對象句柄的優點在什么地方。對象初始化工作是非常重要的,它是從一個類中創造一個對象的過程。
注意
首先將對象句柄的類型聲明好,再將“=”作為一個指向,指向由關鍵字所創建的新對象所存儲的內存地址,以后,就可以通過這個對象句柄來操作這個新對象。一般情況下,是將對象句柄看成是新對象的替代物。
雖然對象句柄被看成對象的替代物,但必須將這兩個不同的概念區分開來,因為真正要操作的是對象,而對象句柄只不過是一個指向對象所存儲的內存地址指針,是一個操作對象的工具。其實對象句柄就好比是C++中的指針,但是在Java中不存在指針這個概念。
操作對象有什么用處呢?其實操作對象就是通過訪問對象內的成員,來實現某種功能。那對象里面有些什么成員呢?下一節將更加深入地講解對象中的成員。
- ClickHouse性能之巔:從架構設計解讀性能之謎
- 測試驅動開發:入門、實戰與進階
- C語言程序設計基礎與實驗指導
- Android Application Development Cookbook(Second Edition)
- 零基礎學Python網絡爬蟲案例實戰全流程詳解(入門與提高篇)
- Extending Puppet(Second Edition)
- Multithreading in C# 5.0 Cookbook
- R語言數據可視化:科技圖表繪制
- Illustrator CC平面設計實戰從入門到精通(視頻自學全彩版)
- Moodle 3 Administration(Third Edition)
- Python 3 Object:oriented Programming(Second Edition)
- WordPress Search Engine Optimization(Second Edition)
- Google Adsense優化實戰
- Python應用開發技術
- Offer來了:Java面試核心知識點精講(框架篇)