【问题标题】:C# Project/task in which I could learn OOP [closed]我可以学习OOP的C#项目/任务[关闭]
【发布时间】:2015-11-22 11:25:12
【问题描述】:

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

  1. 从包含许多旧语言变量的 CSV 文件中获取值和变量
  2. 3x 类为每个指定的变量制作列表
  3. 从列表生成excel文件

教程中的 Unity 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 代码?

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

【问题讨论】:

  • 请注意,要求我们推荐或查找书籍、工具、软件库、教程或其他场外资源的问题对于 Stack Overflow 来说是无关紧要的,因为它们往往会吸引固执己见的答案和垃圾邮件。

标签: c# oop


【解决方案1】:

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

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

继承动物,您可以拥有例如抽象类 Reptile、Bird、Mammal、Insect

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

继承 Reptile,您可以拥有例如非抽象类 Crocodile、Snake、Frog 等。

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

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

关于接口,您可以考虑诸如 Pettable、Flying 之类的接口(鸟类和蝙蝠都可以飞行,尽管它们不共享除 Animal 之外的任何其他继承)以使诸如 ReactToPetting() 或 Fly() 之类的函数可见。

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-09-11
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-06
    相关资源
    最近更新 更多