日期:2014-05-17  浏览次数:20458 次

如何理解面向对象编程思想
如果面试官 问你 “请谈谈你是如何理解面向对象编程思想?”
该怎么回答比较好!(我是学.NET的!)

------解决方案--------------------
这个和你学什么语言没有关系.
对象是对世界上存在的事务的一个抽像描述而已.
你需要分析出来其中的属性,比如说,人是一个对像的话,那么手,就是其中的一个属性.
------解决方案--------------------
把封装、继承、多态的概念描述一下,并举例说明在什么时候、什么场合使用......
------解决方案--------------------
继承,多态,封装
在.net里任何东西都是对象
------解决方案--------------------
大鸟:“这样吧,我给你讲个故事。你就明白了。”

“话说三国时期,曹操带领百万大军攻打东吴,大军在长江赤壁驻扎,军船连成一片,眼看就要灭掉东吴,统一天下,曹操大悦,于是大宴众文武,在酒席间,曹操诗性大发,不觉吟道:‘喝酒唱歌,人生真爽。……’。众文武齐呼:‘丞相好诗!’于是一臣子速命印刷工匠刻版印刷,以便流传天下。” 



“样张出来给曹操一看,曹操感觉不妥,说道:‘喝与唱,此话过俗,应改为‘对酒当歌’较好!’,于是此臣就命工匠重新来过。工匠眼看连夜刻版之工,彻底白费,心中叫苦不迭。只得照办。”



“样张再次出来请曹操过目,曹操细细一品,觉得还是不好,说:‘人生真爽太过直接,应改问语才够意境,因此应改为‘对酒当歌,人生几何?……’当臣转告工匠之时,工匠晕倒……!”



“小菜你说,这里面问题出在哪里?”大鸟问道。

小菜说:“是不是因为三国时期活字印刷还未发明,所以要改字的时候,就必须要整个刻板全部重新刻。”

大鸟:“说得好!如果是有了活字印刷,则只需更改四个字就可,其余工作都未白做。岂不妙哉。”



“第一,要改,只需更改要改之字,此为可维护;第二,这些字并非用完这次就无用,完全可以在后来的印刷中重复使用,此乃可复用;第三,此诗若要加字,只需另刻字加入即可,这是可扩展;第四,字的排列其实可能是竖排可能是横排,此时只需将活字移动就可做到满足排列需求,此是灵活性好。”

“而在活字印刷术出现之前,上面的四种特性都无法满足,要修改,必须重刻,要加字,必须重刻,要重新排列,必须重刻,印完这本书后,此版已无任何可再利用价值。”

小菜:“是的,小时候,我一直奇怪,为何火药、指南针、造纸术都是从无到有,从未知到发现的伟大发明,而活字印刷仅仅是从刻版印刷到活字印刷的一次技术上的进步,为何不是评印刷术为四大发明之一呢?原来活字印刷的成功是这个原因。”


------解决方案--------------------
大鸟的例子有时候看着很爽,但有时候不能反应本质。这一点是非常可惜的。
------解决方案--------------------
这个时候我觉得程序设计其实是一种哲学。