OOP编程经验总结

你会了解到:
1.准备
2.OOP是什么?
3.学习方法。(仅供参照)
4.工作实践。
5.成功在于“思考”。

一、准备

     “对象无处不在”这是面向对象编程的灵魂!
    “这是一场持久战!”这是学好编程语言必备的心理。
     误区1:很多初学者讨论过编程语言的好坏,不知道学哪门语言。——语言没有好坏!
     误区2:中途放弃,去学另外一门语言。——精一门,你会豁然开朗!
     误区3:学习时的心浮气躁。——培养自己静心的工作态度,循序渐进!

     
二、OOP是什么?

    OOP(Object-Oriented Language)即面向对象编程。面向对象编程说的是一种解决问题的编程方式,是和面向过程编程对立起来。实现这种编程方式的语言目前有C#,JAVA,C++,ActionScript3,VB。
    经常看到书上提到“面向对象的编程语言是基于面向过程语言”。这句浪费时间的书面语可以理解为:“面向对象的语言都是用某种过程语言写的”。
    我的举例是:c,c++,c#三者关系。如果你熟悉c++的话你会知道其实c++中类的方法就是用c语言写的。他和c语言的本质区别就是“对象”,在 c++的程序代码中可以看到c语言的足迹。而c#却被封装的像模像样,我们不用知道类的方法是怎么工作的(即算法),只知道它的用法就行,这样只要将类实 例话后根据它的固定模式调用。其实它的类还是用c来写的只是封装好后我们看到的只是它的外表而内核只能去问微软(这就是Visual Studio的用途)。
    我的理论是:计算机将人们输入的字符转化为其相对应的ASCII码(即十进制数),然后再转换为二进制数0,1控制电流来进行计算(CPU的用途)。这样 就将程序代码同计算机硬件联系起来了。对面向过程的C语言熟悉的话就会知道它的ASCII码,而面向对象的C#语言里根本不会用到它。因为它的方法会直接 转换为c语言去进行计算。
    那么为什么要用这种面向对象的语言而不直接用面向过程的语言。随着计算机的在各个领域的普及和发展,要解决的实际问题有很多种,当然人们会选择一种快捷并 且高效的解决方法,这样人们会将问题经过分析后选择其中一种,面向对象的编程方法就是用来解决某些问题的思路。有谁见过微软用c#,java去做操作系统 的吗?没有,也不可能。因为这些程序要用在相应的虚拟机上,而建一个虚拟机不比重新写一个操作系统简便多少。再举一个,比如农民用来锄地的锄头,我们暂且 把它理解为一个对象,这个对象有很多的属性比如形状,大小,重量等等,也有很多方法比如锄地,也用来砸东西。而我们如果用面向对象的方法来做这个锄头的 话,只要找来材料就行。而面向过程方法没那么简单,我们必须去研究它的材料的特性,比如木头的做法,铁的做法然后在合适的时间拼接它们,很复杂。当然面向 过程的语言用来解决高精度,基于硬件的问题时就比面向对象的方法好很多。
    “选择合适的方法做合适的事情”。

三、学习方法

     “一切皆对象”这是面向对象编程的精华。
     如果你对面向对象语言熟悉的话,它小到定义一个变量,大到定义一个类对象,“对象无处不在”!比如:定义一个整型变量Int i;定义一个对象数据表DataTable dt=new DataTable();其实变量i可以理解为整型类的实例化对象,可以写成Int i=new Int();只是这样写太繁琐。
     在学习初期基本语法的了解是必不可少的。比如变量的定义,取值范围,关键字。类的实例化,对象的属性定义,方法定义,流程控制。其实程序不外乎三种结构: 顺序结构,循环结构,分支结构。这三种结构贯穿程序的始终。有很多东西在初学时不要去深究它,否则你会钻牛角尖,这些东西是要靠自己在以后的学习中一点一 点的理解,慢慢形成的一种认识。像.Net Framework,Visual Studio的工作原理等,这些东西不是你一天两天能懂得,半年内完成为佳。
     在了解了语言后就要做些小功能,小到输入输出一段文字,去想程序是怎么工作的。“断点”会给你很大的帮助,你可以随时跟踪它的轨迹看看这条语句输出了什 么。然后将一些小的功能贯穿起来,理解程序之间的关系。方法是怎么调用的等等。如果是服务器端编程的话你就要了解数据库的基本知识。数据库表,表之间的关 系,如何用程序链接到库等等。最好是自己能和加入到一个软件项目组中和项目组成员一起完成一个比较大的项目,这样能使自己加强处理实际问题的能力,而且还 能培养自己团队合作能力,为以后工作做准备。这些在一年内完成为佳。
    如何判断自己入门,如果你看到一个自己从来没见过的功能时,你会在脑海里清晰的构思出实现功能的步骤包括用什么方法来实现它。那么你入门了。我建议最好将关键的方法用代码敲出来。
    然后自己通过各种渠道去实习,或者自己可以独立的开发出来一个商业产品出来,将自己之前的经验,知识用到。如果在开发时碰到问题上网查。这样做了两到三个小项目后,毕业面试时将这些东西带上,你将会成为佼佼者。
    “代码是敲出来的,不是看出来的!”如果到大学毕业你没有敲过10万行有效代码......这话没错。

四、工作实践

    在学校即使你有多出众,有多牛逼,但请你记住走出校门的那一刻起放下所有的荣誉与自豪,你一无所有,你以前的所有荣誉自豪不会给公司带来一丁点利润,但你的潜力却在你大学期间无时无刻不在积累着,这是你仅有的资本!。相信我,这是经验。
    “学习才刚刚开始!”
    在工作中会碰到各种各样的问题,比如你是搞c#编程,但公司有一个AS3的项目要上,你必须去零基础的接触。你的c#不会帮你解决任何问题,但是你有编程 语言的学习的思路和认识,你知道怎么去学而且学得会很快,一般不到一周这种效果会很明显(因人而异)!这就是潜力——你这几年的收获!。

五、思考

    在学习始终不能停止思考,比如一个功能自己做出来后,可以想其他的方法去做。多上网找些资料看看,不会的就在论坛上搜,问。只有想不到的,没有做不到的。
    面向对象编程语言的核心是“对象”!——一定要有这个意识。


结尾:写给在编程世界中追逐的朋友们!期待你们的成功!

posted @ 2013-01-21 09:21  左手边的书  阅读(1368)  评论(0编辑  收藏  举报