在学习面向对象的过程中,我自己也走了很多的弯路。一般来讲,接触面向对象是做为编程语言的一部分。那时候认为在程序中写一个Class 关键字就是面向对象,写Class A: Class B就是面向对象的继承。实际从编程语言的角度来理解是无法掌握面向对象的精髓的,在这里我想以我的经验来告诉大家我的一些方法。
面向对象是一种思想理论,要远远高于编程语言。不深入理解面向对象理论就无法做到编写比较高级的软件,而且往往这些软件不能有效应对变化,不能复用,不能扩展,不能维护等。使用抽象方法还能应对软件的复杂度,因为抽象是对事物的简化方法。
首先在学习面向对象前明白你的目的然后讲方法(这个很重要,如果目的不明,任何事情都做不好,而且肯定方法不对)。那么首先想想面向对象的目的是什么?
先搞清抽象是什么
如果搞不清抽象是什么,其他的特性等于白说。
抽象是具体到一般的过程。虽然抽象是一个简单的概念或者说过程,但是要领悟其中的涵义不能单从编程语言上来,应该是一种逻辑思维的角度来思考抽象是什么。
你可以对自然世界的进行抽象演习,同时也是抽象最主要的学习方式。要知道面向对象理论是人们从对现实世界的一个客观反映,是在参照现实世界,比如你是对你的某某人抽象为人,他的行为怎么抽象。
接下来思考实现抽象有什么方法
比如分类法就是抽象的基本方法。然后联系对行为抽象,因为分类法是主要是针对静态的东西进行抽象(淡然不排除动态),而行为是对象与对象交互方式,所以对行为抽象也具有重要的意义。
然后要思考软件的本质(数据和逻辑)以及软件的变化特性,以及如何重用(你看设计模式的时候,要注意这书的副标题)。
抽象可以应对变化,如何应对变化你自己想清楚。抽象是什么,以及如何应对变化,如果搞不清楚的话,面向对象只会停留在语言层面。语言层面的东西是浅显的,真正要掌握的是思想,就像我们人类一样。
思考面向对象的继承、封装以及多态
这三个词如果从编程语言的角度来讲,没有多大的意义。要软件根本上来讲,如何重用啊,外部如何看待内部以及在运行时如何处理抽象与实现的关系。
软件实现为了达到应对变化,提高复用。
继承的本质是提高重用,但是继承不是重用的唯一方法,还有组合这个非常重要的方法。
继承从语言层面来讲可以简单理解为class A : class B,组合才是提高重用的关键,现在很多的商业上不都是要整合啊,实际就是组合的一种显示表述,自己不实际去做,但是掌握着关键的东西(核心竞争力)。那具体的上来讲,我们的软件外包不就是组合的一种现实表述吗,发达国家设计软件,而把软件的具体编码交给别的国家。
封装是一种机制,就是对象的外部看到是的对象是一个统一的整体,从语言层面上讲就是那些关键字啊。真正要掌握的是如何封装,如何确定哪些东西要封装多态可以简单理解为一个抽象有很多具体实现。那么在软性期间就需要动态决定采用哪种具体实现。
最后要真正把握的软件的变化,复杂度以及如何重用才是根本,面向对象对软件来讲只是一种方法手段。
相关推荐
第2章“C++基础”回顾了C++的基础语法,如变量、数据类型、控制结构、函数等,这些都是学习面向对象编程的必备前提。理解这些基本元素对于后续章节的学习至关重要。 第3章和第4章“类和对象1”及“类和对象2”详细...
在学习面向对象编程时,理解C++的类模板和STL至关重要,因为它们能够帮助我们编写更加灵活和可复用的代码。熟练掌握这些概念,不仅对于学习Java或VC++等其他面向对象的语言有帮助,也为深入学习《数据结构》、《操作...
全面系统的学习面向对象程序设计的基本概念、基本语法和编程方法。正确理解掌握C++面向对象程序设计的基本特性:类、对象、继承与派生、多态、虚函数、模板、流类库等。遵循软件过程的各个环节进行系统分析、设计、...
Labview面向对象编程是NI...通过学习和掌握Labview面向对象编程,开发者可以构建出更复杂、更易于维护的应用程序,适应不断变化的需求,并利用Labview的强大功能进行数据分析、控制工程、测试测量等领域的项目开发。
在学习面向对象编程时,首先要理解的是类(Class)和对象(Object)。类是创建对象的蓝图,定义了一组属性(Attributes)和方法(Methods),属性是对象的状态,而方法则是对象可以执行的操作。例如,你可以定义一个...
《面向对象程序设计:C++语言描述(原书第2版)》内容丰富,结构合理,写作风格严谨,深刻地论述了c++语言的面向对象编程的各种技术,主要内容包括:面向对象编程方法、c++语言的各种特性、stl、c++输入/输出流、mfc等。...
在实验二中,学习者将更深入地学习面向对象编程的核心概念——类和对象。类是创建对象的模板,而对象是类的实例。学习者将学习如何声明类,理解不同访问控制修饰符的作用,并认识构造函数和析构函数对对象生命周期的...
面向对象程序设计OOP(Object-Oriented Programming)是计算机软件开发方法的一场革命,目前广为流行的C++是面向对象程序设计语言的第一个大众化版本,是当前学习面向对象程序设计方法的首选语言。 本课程以最新...
内容简介 ...《Java与UML面向对象程序设计》可作为高等学校计算机科学系及软件学院高年级学生和研究生的教科书,也可作为从事软件开发的管理者、系统分析员、程序员在学习面向对象程序设计时的参考书。
1. **面向对象编程基础**:面向对象编程(OOP)是一种编程范式,它基于“对象”的概念,强调数据和操作数据的方法结合在一起。Java作为一款纯面向对象的语言,其一切皆为对象,包括基本类型都有对应的包装类。 2. *...
面向对象编程(Object-Oriented Programming,OOP)是一种编程范式,它将程序设计看作是对象的交互,对象之间的关系和行为。 一、对象和类 在Java中,对象是指具有某些特征和行为的实体,例如人、学生、大象、冰箱...
本文总结了 JAVA面向对象程序设计的知识点,涵盖了 Java 语言的基本语法、面向对象编程的概念、异常处理、多线程编程、网络编程、数据库编程等方面的知识,为学习和掌握 Java 语言提供了有价值的参考。
【描述】提到“期末开卷参考题”,暗示我们将探讨一些学生在学习过程中可能遇到的实际问题或考试题目,这些题目可能会涵盖C#面向对象编程的基本原理、类与对象、继承、封装、多态等关键概念。 在C#中,面向对象编程...
本资料包“C++面向对象程序设计 经典例题 附练习题”显然是为了帮助学生深入理解C++的面向对象特性,并通过实例和练习来巩固学习成果。 在C++中,面向对象的主要概念包括: 1. **类**:类是创建对象的模板或蓝图,...
《C++面向对象编程实例大全》是一本专为初级学习者设计的教程,旨在通过丰富的实例深入浅出地讲解C++的面向对象编程概念。面向对象编程(Object-Oriented Programming,简称OOP)是C++的核心特性,也是现代软件开发...
卡耐基梅隆大学的SSD3课程,即面向对象程序设计,主要的教学目标是帮助学生通过面向对象的设计和实现来掌握问题解决的方法。该课程特别强调问题分析与解决方案的设计、文档编写和程序实现。SSD3教材内容覆盖了面向...
在学习面向对象编程时,首先需要理解以下几个关键概念: 1. **类**:类是面向对象编程的基本单元,它是对象的蓝图或模板,定义了一组属性(数据成员)和行为(成员函数)。在C++中,我们可以创建一个名为“Person”...
学习面向对象程序设计不仅需要理解以上理论知识,还需要实践应用。可以通过编写实际项目来加深理解,例如构建一个简单的图形用户界面(GUI)应用、数据库管理系统或者游戏。同时,熟悉一种支持面向对象的编程语言,...