我发现了很多关于面向对象编程的信息,但没有它似乎进入太多细节。他们总是给你圆形,方形和矩形实现界面的形状示例。这很容易。我正在寻找更真实的生活,并深入到这个过程中。哪里可以找到有关OOP的深入信息?
有谁知道是深入漂亮任何好的资源?甚至代码示例都会有所帮助。
我发现了很多关于面向对象编程的信息,但没有它似乎进入太多细节。他们总是给你圆形,方形和矩形实现界面的形状示例。这很容易。我正在寻找更真实的生活,并深入到这个过程中。哪里可以找到有关OOP的深入信息?
有谁知道是深入漂亮任何好的资源?甚至代码示例都会有所帮助。
这是一个非常宽泛的问题......这里只是几个链接给你:
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,等等,因此,从他们的派生类。
这仅仅是冰山的最顶端,和一个相当现成的,顶级我的头例子,但它应该让你开始。 如果有更具体的问题或者您想具体场景作为背景来使用,让我知道,我会帮助更多信息。
谢谢你的解释,它的伟大! – Dayan
你需要更具体些。你在谈论概念还是设计? –
主要是通过继承和接口建模对象的最佳方式。这就是我真正需要的。谢谢 – Frankie
@Frankie - 我给你留下了更详细的答案。这是建模的一个非常基本的例子,但它可能会让你开始。另外,我鼓励您结帐我提供的WIKIBOOKS链接,因为这将是一个很好的开始。 –