一个必须使用面向对象才能写出来的超简单的程序。为亚历山大助威

招砖头了,有错就改
标题应该是:
一个很能体现面向对象思想特色的超简单的程序。为亚历山大助威

看了亚历山大同志写的捅破窗户纸一文
还是有所感觉的

不过亚历山大同志明显学究气氛浓重

不好意思在这里表露真实身份了。
本人其实是一家培训机构的讲师,学业不精,经常担心自己误人子弟。

好在总会在教学中总结一些很有意思的实例

今天贡献一个给大家看看
一个必须使用面向对象才能写出来的东西,当然,过程强人可能能写出来,不过我估计一千个程序员中不一定会有一个

程序类型:WinForm
需求:
每次当鼠标双击应用程序窗体界面的时候,会在双击位置出现一个Label
该Label能自动沿着45度方向在窗体客户区内运动,且在上下左右4条边的地方会发生镜面反弹。比如45度右下运行,碰到下面后则转变成45度右上运行。大白话说就是它会来回飘啊

可选的更高要求是:
每个Label的运动角度是在出现时随机的。每个Label的运动速度也是在出现时随机确定,并且应该保持线速度稳定。

呵呵

面向对象的解,估计1小时内多数出手快的就搞定了
至于后面的更高要求,无非就是一些三角函数等等的东西,不过平时不经常用的估计早还给大学老师了

PS:我认为是不可能用面向过程完成的
因为,Label的数量不固定,且当数量达到一定数量的时候,呵呵。

通过这个题目可以深深地记住:
每个对象应该自己负责自己的事情
主控程序不应该过多干涉对象自身内部的事情


2007/9/20
PS:标题改了
自然多讲一些想法
为什么要面向对象?难道为了封装去面向对象?为了继承去面向对象?
不是的
是为了 让程序员工作在更高的抽象级别,这是我对编码技术发展的认识

用C,什么都能写,C连严格的面向结构都不是呢

使用了对象的思想,让程序员来指挥一堆有生命力的对象,比直接让程序员指挥内存要让人舒服得多
并且,在构造复杂环境的情况下,面向对象比直接控制内存要少写N行代码

为什么会出现软件危机?
因为系统太大了

即使有过程强人来实现我的程序
但是在实现过程中已经有了部分属性封装的意思
即使连结构体都不用,也还可以用数组,用链表
但是大家想想看,这个时候是不是就很希望能有一个东西吧相关的内容都放到一起去呢?
其实,这就是面向对象最直接的起源
否则,我们干吗要面向对象呢?



转载于:https://www.cnblogs.com/Chinese-xu/archive/2007/09/19/898806.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值