`
mylftnt
  • 浏览: 28393 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

少走弯路去学习面向对象编程

 
阅读更多

在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为编程语言的一部分。那时候认为在程序中写一个 Class 关键字就是面向对象,写 Class A: Class B 就是面向对象的继承。实际从编程语言的角度来理解是无法掌握面向对象的精髓的,在这里我想以我的经验来告诉大家我的一些方法。

  面向对象是一种思想理论,要远远高于编程语言。不深入理解面向对象理论就无法做到编写比较高级的软件,而且往往这些软件不能有效应对变化,不能复用,不能扩展,不能维护等。使用抽象方法还能应对软件的复杂度,因为抽象是对事物的简化方法。

  首先在学习面向对象前明白你的目的然后讲方法(这个很重要,如果目的不明,任何事情都做不好,而且肯定方法不对)。那么首先想想面向对象的目的是什么?

  先搞清抽象是什么

  如果搞不清抽象是什么,其他的特性等于白说。

  抽象是具体到一般的过程。虽然抽象是一个简单的概念或者说过程,但是要领悟其中的涵义不能单从编程语言上来,应该是一种逻辑思维的角度来思考抽象是什么。

  你可以对自然世界的进行抽象演习,同时也是抽象最主要的学习方式。要知道面向对象理论是人们从对现实世界的一个客观反映,是在参照现实世界,比如你是对你的某某人抽象为人,他的行为怎么抽象。

  接下来思考实现抽象有什么方法

  比如分类法就是抽象的基本方法。然后联系对行为抽象,因为分类法是主要是针对静态的东西进行抽象(淡然不排除动态),而行为是对象与对象交互方式,所以对行为抽象也具有重要的意义。

  然后要思考软件的本质(数据和逻辑)以及软件的变化特性,以及如何重用(你看设计模式的时候,要注意这书的副标题)。

  抽象可以应对变化,如何应对变化你自己想清楚。抽象是什么,以及如何应对变化,如果搞不清楚的话,面向对象只会停留在语言层面。语言层面的东西是浅显的,真正要掌握的是思想,就像我们人类一样。

  思考面向对象的继承、封装以及多态

  这三个词如果从编程语言的角度来讲,没有多大的意义。要软件根本上来讲,如何重用啊,外部如何看待内部以及在运行时如何处理抽象与实现的关系。

  软件实现为了达到应对变化,提高复用。

  继承的本质是提高重用,但是继承不是重用的唯一方法,还有组合这个非常重要的方法。

  继承从语言层面来讲可以简单理解为 class A : class B,组合才是提高重用的关键,现在很多的商业上不都是要整合啊,实际就是组合的一种显示表述,自己不实际去做,但是掌握着关键的东西(核心竞争力)。那具体的上来讲,我们的软件外包不就是组合的一种现实表述吗,发达国家设计软件,而把软件的具体编码交给别的国家。

  封装是一种机制,就是对象的外部看到是的对象是一个统一的整体,从语言层面上讲就是那些关键字啊。真正要掌握的是如何封装,如何确定哪些东西要封装,多态可以简单理解为一个抽象有很多具体实现。 那么在运行期间就需要动态决定采用哪种具体实现。

  最后要真正把握软件的变化,复杂度以及如何重用才是根本,面向对象对软件来讲只是一种方法手段。

分享到:
评论

相关推荐

    面向对象编程的小项目,希望读者少走弯路

    在这个小项目中,我们将深入探讨面向对象编程的关键知识点,帮助读者避免在学习过程中遇到的常见困扰。 首先,我们要理解什么是对象。在OOP中,对象是数据和操作数据的方法的组合。这些对象基于类(Class)创建,类...

    少走弯路做PHP

    2. PHP函数与类:介绍内置函数的使用,以及如何定义和使用自定义函数和面向对象编程,包括类、对象、继承、封装和多态等概念。 3. 错误处理和调试:讲解如何正确处理运行时错误,以及使用调试工具进行问题定位,如...

    java技术-让学员少走弯路

    在面向对象编程方面,Java强调类和对象的概念,类是对象的模板,而对象是类的实例。构造函数用于初始化新创建的对象,重载允许函数或方法根据不同的参数列表有不同的行为。this关键字引用当前对象,super用于访问...

    面向对象思想学习(精华版)

    在实践中,面向对象编程常用于大型项目,因为它的模块化特性使得代码更容易维护和扩展。同时,通过面向对象设计,我们可以更好地模拟现实世界的模型,比如数据库管理系统中的表可以对应为类,表中的记录则对应为对象...

    java技术—让学员少走弯路

    Java是一种广泛使用的高级编程语言,以其“一次编写,到处运行”的跨平台特性著称。它的设计目标是具有良好的可...通过深入理解和熟练掌握这些基础知识,学员可以避免在学习过程中走弯路,更好地投身于Java开发领域。

    ext面向对象编程教程

    EXTJS 面向对象编程教程 EXTJS 是一个基于 JavaScript 的富客户端框架,它提供了强大的组件模型和面向对象的编程方式,使得开发者能够构建复杂的 Web 应用程序。面向对象编程(Object-Oriented Programming, OOP)...

    JAVA学习之路:不走弯路,就是捷径

    ### JAVA学习之路:不走弯路,就是捷径 #### 一、JAVA学习的重要性与兴趣培养 ##### 1.1 兴趣的重要性 在JAVA学习过程中,兴趣是推动...希望以上分享能够帮助正在JAVA学习道路上的朋友们少走弯路,早日达到目标。

    Java学习之路:不走弯路,就是捷径!!

    ### Java学习之路:不走弯路,就是捷径!! #### 概述 本文旨在为Java初学者提供一条明确的学习路径,避免在学习过程中走弯路。...希望本文提供的学习指南能够帮助大家在Java学习之路上少走弯路,更快地达到目标。

    如何学习好C++ 怎么样学习好C++

    C++不仅保留了C语言的高效性,还引入了许多高级特性,如面向对象编程(OOP)、泛型编程(Generic Programming)等。 #### 学习C++的重要性 随着计算机科学和技术的发展,C++在许多领域都发挥着重要作用。无论是开发...

    程序员鱼皮的编程宝典。原创编程学习路线

    Java作为后端开发的重要语言,其学习内容可能包括面向对象编程、JVM原理、多线程、Spring框架等;前端部分则会涵盖HTML、CSS、JavaScript,以及现代前端框架如Vue.js的使用。 【标签】"vue"暗示了此压缩包中可能...

    C语言程序设计(第二版)谭浩强 课后习题答案

    课后习题答案则为学习者提供了解题思路和方法,帮助检查学习效果,避免在实践中走弯路。 在第一章“历程”中,通常会涵盖C语言的历史、基本编程环境的设置、简单的输出输入操作以及第一个C程序“Hello, World!”的...

    java——让学员少走弯路

    Java是一种广泛使用的编程语言,由Sun Microsystems开发,其设计目标是具有简单的语法、面向对象、健壮和安全的特性。Java的跨平台能力基于“一次编写,到处运行”的理念,这是通过Java虚拟机(JVM)实现的,JVM允许...

    Java程序设计习题集下载

    这些特点有利于初学者在学习过程中少走弯路。对知识点的总结以及内容的全面性也使得《Java程序设计习题集》具有一定的手册特性,非常适合复习,同时也方便教师出题,使得各章节的试题容易在试卷中分布均匀合理。在本...

    如何提高自己的编程能力

    这包括但不限于:理解数据结构、算法、面向对象编程(OOP)等概念。对于初学者来说,学习一门或多门编程语言至关重要,例如Python、Java或C++等。掌握这些语言的基本语法和常用库可以帮助你在解决问题时更加得心应手...

    JAVA入门学习程序

    总的来说,这个"JAVA入门学习程序"是一套完整的Java学习资源,涵盖了语言基础、面向对象编程、实践应用等多个方面。通过系统的自学和不断的实践,初学者能够快速上手并逐渐精通Java编程,为将来从事软件开发、数据...

    面向对象编程,我的思想

    让后来者能够少走一些弯路。但其中不免有许多漏洞及错误,也还请前辈提出宝贵的更改意见,毕竟交流会让我们不断的进步。技术是日新月异的,他不会等待你的成长。技术要拿出来于别人交流,自己学是自己主观意识上的...

    新编VisualC++6.0程序设计基础教程,pdf,非常好的教材

    对于想要踏入C++编程领域的初学者来说,这是一份非常宝贵的资源,能够帮助他们在学习过程中少走弯路,更快地掌握编程技能。通过阅读这本书,并结合实际的编程练习,读者可以逐步建立起坚实的语言基础,为进一步深入...

    一个c程序员学习经历.pdf

    同时,作者也分享了自己的学习经验和体会,希望能够帮助后来者少走弯路。 以下是作者推荐的书籍: * 《清华谭浩强的书》 * 《电子工业出版社的《面向对象的程序设计于 C++ 教程》》 * 《Microsoft Press 的...

    C++程序设计教程课后习题答案【钱能】清华版.rar

    总的来说,这个压缩包是C++初学者宝贵的参考资料,它可以帮助你在学习的道路上少走弯路,更快地提升编程技能。通过不断地练习和探索,你将能够熟练掌握C++这一强大工具,并在未来的学习和工作中发挥出它的巨大潜力。

    C++程序设计原理与实践随书参考资料

    通过阅读和分析这些源代码,学习者可以直观地理解C++的各种编程技巧和模式,包括面向对象编程、模板、异常处理等核心概念。同时,动手修改和运行这些代码能够提高实践能力,加深对语法和逻辑的理解。 PPT演示文稿...

Global site tag (gtag.js) - Google Analytics