荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oasis (期末拉,好好学习~~~), 信区: Visual
标  题: C->VC(三)
发信站: BBS 荔园晨风站 (Tue Nov 30 22:20:50 1999), 站内信件

发信人: LbyLby (想你的时候.......), 信区: CS
标  题: C -> VC (4)
发信站: 华南网木棉站 (Wed Sep 29 00:05:19 1999), 转信

                类封装(一)
    要讲类,就要先讲面向对象。
    对象是什么呢?对象又怎么面向呢?
    想象一下你是一间公司的大老板,(可以认为是ms或者是金山)
公司里面有开发部,销售部,人事部。每个部门有自己的主管,人员
部门各有自己负责的部分,各部门之间又互相联系。这么复杂的实
体以及它内在的关系用什么来形容呢?对象?不对,只能称之为特定
的对象。对象是可能具有任何性质,可能具有任何内在关系的任何实
体。好象太抽象了,呵呵。通俗的来说,对象就是一个东东,一个什
么都可能是的东东!
    回头来看我们可爱的C语言,先是有一个main,然后有很多子函数
还有很多变量。我们写一个函数是为了实现一个功能,比如要给一个
叫Bill.Gate 的清洁工发奖金,要调用函数:
     人民币*  发奖金_人事部 ( 清洁工,Bill.Gate );
那么我们仅仅知道返回的是一个人民币的指针,而不知道关于这个返
回值的任何信息!但如果我们将人事部当成一个对象,Bill.Gate是
属于人事部的,上例变成:
     人民币*  人事部 -> Bill.Gate ->发奖金 ( );
    想象一下人事部除了发奖金,还要分配人手,还要招工,还要搞
计划生育。。。。。。那么用第一种方法我们就要写很多个全局的函
数。如果开发部也来凑热闹,可能就会出现以下情况:
    main()
    {
        发奖金_人事部(...){.......}
        发奖金_开发部(...){.......}
        ............................
        发奖金_老板(...){......}
    }
    如果你是程序负责者,估计现在你已经有点模糊了,再写两天可
能开始两眼发红,然后一不小心就faint掉在mm的怀里了。但是我们
来看第二种方法,一个老板手下有三个部门,每个部门有一个主管,
若干个白领。老板发工资的时候,分给每个部门,每个部门主管决定
在部门内如何分配,再发给清洁工头头,然后再由头头分到Bill.Gate
手上。咋一看,这样好象绕了大圈子,但是实际上老板分配的难度降
低了,而老板分配难度 == 主管分配难度 == 头头分配难度,也就是
说你编程的难度降低了三倍!这是面向对象的第一个好处。*****
    面向对象的第二个好处是隐藏了编程的细节。老板不必知道主管
怎么分配,主管也不必知道头头怎么分配。这样就避免了由于复杂的
人事关系带来的出错的可能性。而且改动的余地很大,比如开发部的
主管比较有商业头脑,他就可能会把所有的钱拿去买SDRAM,然后把

SDRAM分给头头,他并不需要通知老板,也不用理头头怎么分。对于
程序员来说,就是只需要改动三个函数的其中一个,而另外两个不需
要调整,这对于节约一个人的时间来说是非常重要的,也叫做可重用
性。


--
☆ 来源:.BBS 荔园晨风站 bbs.szu.edu.cn.[FROM: bbs@202.116.46.37]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店