官术网_书友最值得收藏!

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中不存在指針這個概念。

操作對象有什么用處呢?其實操作對象就是通過訪問對象內的成員,來實現某種功能。那對象里面有些什么成員呢?下一節將更加深入地講解對象中的成員。

主站蜘蛛池模板: 鹰潭市| 原阳县| 桦甸市| 秦皇岛市| 城口县| 寻甸| 泽普县| 沧州市| 富阳市| 赤城县| 长治县| 河曲县| 农安县| 镇原县| 崇礼县| 台山市| 买车| 阜康市| 普格县| 民权县| 亳州市| 专栏| 桂阳县| 东宁县| 日照市| 农安县| 灌阳县| 满洲里市| 朝阳区| 名山县| 高雄市| 定日县| 郑州市| 新乡县| 西安市| 大同县| 木里| 龙游县| 曲阳县| 大关县| 观塘区|