2011-11-30 61 views
0

我發現了很多關於面向對象編程的信息,但沒有它似乎進入太多細節。他們總是給你圓形,方形和矩形實現界面的形狀示例。這很容易。我正在尋找更真實的生活,並深入到這個過程中。哪裏可以找到有關OOP的深入信息?

有誰知道是深入漂亮任何好的資源?甚至代碼示例都會有所幫助。

+0

你需要更具體些。你在談論概念還是設計? –

+0

主要是通過繼承和接口建模對象的最佳方式。這就是我真正需要的。謝謝 – Frankie

+0

@Frankie - 我給你留下了更詳細的答案。這是建模的一個非常基本的例子,但它可能會讓你開始。另外,我鼓勵您結帳我提供的WIKIBOOKS鏈接,因爲這將是一個很好的開始。 –

回答

3

這是一個非常寬泛的問題......這裏只是幾個鏈接給你:

http://en.wikibooks.org/wiki/Object_Oriented_Programming

http://www.amazon.com/Object-Oriented-Programming-Peter-Coad/dp/013032616X

@Frankie - 我已經編輯這個給你見過你的評論。您的問題仍然非常廣泛,但我會嘗試提供一些建模某些對象的快速(非常鬆散的想法)示例。我將使用的語言是C#,但您可以使用任何您喜歡的OOP語言。


我們使用接口和基類來表示非常基本的模型。其中一個接口和一個基類之間的定義不同的是,接口不能被實例化(認爲它是一個藍圖,可以物理上不存在,只是在紙上的設計)......一個基類,但是可以被實例化(它可以存在,並可能被視爲原型)。讓我們從那裏......

說,我們要車輛 ... 飛機,汽車,摩托車,自行車等模型,我們的模型的大腦,我們認識到,車輛是一切的根本。接下來我們開始制定適用於所有類型車輛的藍圖。爲此,我們將使用一個接口

interface IVehicle 
{ 
    string Make; 
    string Model; 
    int Year; 
} 

接口現在說,我們建立一個實現此接口必須有一個品牌,型號和年份財產的任何對象。現在,汽車,自行車,摩托車等都涌入我們的腦海,我們想爲他們上課......但我們意識到,很多這些車輛都有共同點。讓我們做一個原型所有LandVehicles,爲此,我們將使用一個實現我們的藍圖接口IVehicle

public class LandVehicle : IVehicle 
{ 
    // We must physically implement the required members of the interface. 
    public string Make { get; set; } 
    public string Model { get; set; } 
    public int Year { get; set; } 
    // Then we can add things specific to land vehicles. 
    public int NumberOfWheels { get; set; } 
    public int TopSpeed { get; set; } 
} 

現在我們有一個原型,從構建基類。讓我們來設計一輛汽車和一輛自行車

public class Car : LandVehicle 
{ 
    // because LandVehicle is a real object, we do not have to re-implement its memebers, 
    // we can just add to them: 
    public int MaxPassengers { get; set; } 
    public bool IsLuxury { get; set; } 
    public string FuelType { get; set; } 
} 

public class Bicycle : LandVehicle 
{ 
    public string Type { get; set; } // mountain, race, cruiser, etc. 
    public int NumberOfGears { get; set; } 
} 

這樣,我們可以實例汽車和自行車的對象......但使用的基類,我們可以創建許多其他類型的LandVehicles,而無需我們的基本屬性添加到每個一。這是使OOP如此可擴展的原因之一。

我們的接口

此外,我們離開它打開足以讓其他基類,也許WaterVehicles,AirVehicles,等等,因此,從他們的派生類。

這僅僅是冰山的最頂端,和一個相當現成的,頂級我的頭例子,但它應該讓你開始。 如果有更具體的問題或者您想具體場景作爲背景來使用,讓我知道,我會幫助更多信息。

+0

謝謝你的解釋,它的偉大! – Dayan

相關問題