C#项目/任务我可以学习OOP

时间:2015-11-22 11:25:12

标签: c# oop

我使用C#构建了几个程序,就像简单的Web浏览器一样,具有地址栏,状态栏,一些脚本的逻辑。简单的程序,我无法用英语正确解释,所以不是解释我会告诉伪代码:

  1. 从CSV文件中获取值和变量,其中包含许多来自旧语言的变量
  2. 每个指定变量的3x类以制作列表
  3. 从列表中生成excel文件
  4. 教程中的简单游戏统一3D和教程中的其他简单程序。

    我正在寻找一个项目,在这个项目中,我将以实用的方式学习接口,抽象类,多态,继承,封装。所有的教程都讲述了它的理论,我可以理解它们中的大多数,但我无法想象它们的用法。 http://www.codeproject.com/Articles/572738/Building-an-application-using-design-patterns-and?fid=1829944&df=90&mpp=25&prof=False&sort=Position&view=Normal&spc=Relaxed&fr=26#xx0xx 这篇文章很好,但没有实际数据,我们可以使用的任何项目都没有。因此我无法理解为什么我们使用接口等。

    我找到了两个教程:

    https://www.youtube.com/watch?v=YxewTI4H2mY youtube com / watch?v = QORB9qbsC8M

    (对不起,但没有10个声望,我发不到2个以上的链接) 你认为任何一种学习OOP的好方法吗?你可以去那些程序的最后几分钟,并告诉那些程序是否有良好的OOP代码?

    我喜欢听到任何消化,帮助等等。此时我要感谢所有通过这个糟糕的英语问题并尝试回答我的人!

1 个答案:

答案 0 :(得分:0)

一个适用于面向对象的概念是任何类型的分层对象数据库。我的建议是动物园。

在动物园里,你可以有一个主抽象类Animal。这将具有任何动物具有的基本属性,例如动物的名称及其出生日期。每个动物都需要吃,所以像eat()这样的抽象函数是合适的。

继承Animal,你可以拥有例如Reptile,Bird,Mammal,Insect的抽象类

然后爬行动物可能包含仅对爬行动物有效的额外信息。

继承Reptile,你可以拥有非抽象类Crocodile,Snake,Frog等。

Crocodile可以拥有更多属性和功能,仅适用于鳄鱼,例如DoDeathRoll()。

对于动物园中的实际动物,然后创建最低层类的实例。所以Crocodile Humphrey = new Crocodile("Humphrey");

关于接口,你可以考虑接口,如Pettable,Flying(鸟类和蝙蝠都能飞,即使它们不共享任何其他继承而不是动物)来制作ReactToPetting()或Fly()等函数可见。

创建这样的系统将使您非常习惯使用继承和多态。