1. 程式人生 > >面向物件經典例子理解

面向物件經典例子理解

Java面向物件(轉)

             Java語言是面向物件的。Java語言提供類、介面和繼承等原語,為了簡單起見,只支援類之間的單繼承,但支援介面之間的多繼承,並支援類與介面之間的實現機制(關鍵字為implements)。Java語言全面支援動態繫結,而C++語言只對虛擬函式使用動態繫結。總之,Java語言是一個純的面向物件程式設計語言。

             但是相信對一些初學者來說,面向物件真的是弄不清是怎麼一回事,下面是我聽張孝祥老師視訊中是幾個面向物件的經典小例子。可以這麼說,完全理解了這幾個例子,那你就可以說入門啦!!!

              下面幾個例子用面向物件程式設計思想來簡單的寫出他們之間的關係。

引用傳智部落格張孝祥老師視訊講解。

一、球從一根繩的一端移動到了另一端

         1,分析:首先確定了兩個物件,球和繩。繩物件的屬性和方法:繩子上有兩個端點和每個點組成的繩子(繩子上的點又是一個物件)。繩子由點組成。那麼他有返回點物件的方法。球物件的屬性和方法:它在繩子上移動,從一端移動到另一端,那麼它有個移動方法。                簡單是程式碼示例如下:
  1. class  Rope  
  2. {  
  3.     private Point start;  
  4.     private Point end;  
  5.     public Rope(Point start,Point end)  
  6.     {  
  7.            this.start=start;  
  8.            this.end=end;  
  9.     }  
  10.     public Point nextPoint(Point currentPoint)  
  11.     {  
  12.           //通過Point物件的提供的放哪廣發,就可以計算出當前點的下一個點,在設計階段,不詳細說明
  13.           //如果當前點是終點,則返回null,如果當前點不是線上的點,則丟擲異常。
  14.     }  
  15. }  
  16. class Ball  
  17. {  
  18.     private Rope rope;  
  19.     private Point currentPoint;  
  20.     public Ball(Rope rope,startPoint)  
  21.     {  
  22.          this.rope=rope;  
  23.          this.currentPoint=statPoint;  
  24.     }  
  25.     publicvoid move()  
  26.     {  
  27.         currentPoint=rope.nextPoint(currentPoint);  
  28.         System.out.println("小球移動到了"+currentPoint);  
  29.     }  
  30. }</span>  


二、兩塊石頭磨成一把石刀 Stone,石刀 StoneKnife可以砍樹 Tree,砍成木材 Meterial,木材做成椅子Chair。

         1,首先分析物件:有石頭、石刀、數、木材、椅子。          2,物件之間的關係:石頭和石刀的關係,兩個石頭磨成了石刀,即最後石頭沒了,做成了石刀,所以需要一個石刀加工廠。而後面的石刀砍樹,把數變成了木材。這個是石刀的功能。木材又做成了椅子,這有跟石頭做成了石刀一個道理,需要一個加工廠。          3,程式碼樣式: 兩塊石頭磨成一把石刀 StoneKnife  stoneKnife =KnifeFactory.createKnife(stone); 石刀可以砍樹,砍成木材 Meterial  meteial  = stoneKnife.cut(tree);  
  1. 木材做成椅子
  2. Chair chair=ChairFactory.makeChair(meterial);

三、列車司機剎車把火車停住 。

         1,分析物件:司機 Driver、火車 Train          2,物件之間的關係:剎車這個動作是火車物件的功能,即司機只是呼叫了火車的剎車動作。          所以物件之間的關係程式碼表示如下: class  Train  
  1. {  
  2.     //別的功能,如拐彎,開車,等等
  3.     //剎車功能
  4.     publicvoid stop()  
  5.     {  
  6.     }  
  7. }  
  8. class TrainDriver  
  9. {  
  10.     //呼叫火車的剎車動作
  11.     new Train().stop();  
  12. }</span>  

四、我在黑板上畫圓。

          1,分析物件:我 Person、黑板 Blackboard 、圓Circle。           2,物件之間的關係:人呼叫黑板的畫圓功能,畫出來一個圓。           物件之間關係程式碼表示如下: class Blackboard  
  1. {  
  2.     //畫圓功能
  3.     public Circle drawCircle()  
  4.     {}  
  5. }  
  6. class Person  
  7. {  
  8.      new Blackboard().drawCircle();  
  9. }</span>  
總結:以上是理解面向物件的幾個經典例子,我是聽傳智部落格中的張孝祥老師的視訊,自己總結的,感覺經典,就寫下來如大家分享。如果有不正確的地方,請大家多多指正。