文档详情

第章面向对象的心核特性.doc

发布:2017-03-03约8.72千字共14页下载文档
文本预览下载声明
第三章 类的封装、继承和多态 这一章介绍面向对象编程的核心特性,是全书最重要的一章。 计算机软件设计有两个重要方面: 一是算法,用来解决微观的、有难度的问题。教材第二章涉及的JAVA语法,主要是用来描述算法的。以前学过的C语言和数据结构,也是着重于算法的。算法研究的是什么呢? 二是软件体系结构,用来解决宏观的、有复杂度的问题。教材第三章 JAVA语法,主要是用来描述软件体系结构的。软件体系结构研究的是什么呢? 面向对象(Object—Oriented,简称OO)的思想、概念和编程方法,或许是我们本科阶段,所能学到的最高级的编程技术,这种技术对编程算法起不到很大作用,面向对象涉及的是比算法宏观一些的软件体系结构问题,面向对象的优势在编写大型软件时才能体现出来,由于本科阶段我们得几乎得不到编写大型软件的机会,所以对面向对象很难有一个深入的认识。 对面向对象的思想、概念和目的的深入认识是非常重要的。首先它对学好JAVA、.NET、C++等面向对象的编程有重要影响;其次以后的实际工作中我们面对的都是大型的、复杂的软件系统(而不仅仅是微观的算法),用面向对象的方法去设计这些系统是最合适的。 我们需要在不同的课程中(C++、JAVA、.NET)反复说明面向对象的思想、概念和目的。在JAVA这门课里,我将从几个层面分别说明: (1)在教材本章,我将从分析人的自然思维习惯入手,说明面向对象编程(Object—Oriented Programming,简称OOP)的几个核心概念: 对象、类、属性、方法、封装、重载、实例、继承、多态。 我的目地是使同学们相信:OO是符合人的自然思维习惯的一种编程方法,是高级语言出现以后,符合人的自然思维习惯的编程方法的一次飞跃。对于面向对象的概念和思想,我们不必像课本描述的那样抽象的理解它,而是用自然轻松的心态理解它。我们将从建立单个对象、研究单个对象内部结构入手,过渡到研究对个对象间的相互作用。 (2)在本章及后续章节,我将从对JAVA类库---JDK中一部分常用类的讲解入手,反复说明面向对象给我们带来的三个好处: 提高程序的复用性 降低系统的复杂性 以不变的对象结构应对变化的对象。 这三个好处是软件工程永恒的追求。 3.0 面向对象是适合人的自然思维习惯的编程方法(补充教材) 3.0.1 范式及编程语言 世界上有很多的编程语言,可以按照不同的标准对其分类,第二章在讲到JAVA数据类型时,曾将编程语言按类型分为强类型的和弱类型的。下面对编程语言作另一种分类:按范式分类。 范式的英文单词是paradigm。它的原意大致是典范、范例、示例的意思,为了帮助我们理解某些英文动词的用法,老师会给一些例句(paradigm、example),在所有的计算机编程书籍中,都有大量的例程(范例)。有些计算机书籍中,将paradigm称为“范例”——指一种示范性的模型或例子,它提供了一种组织信息的形式。 范式的概念是1962年,美国科学史学家和科学哲学家托马斯·库恩(Thomas S. Kuhn)出版了著名的《The Structure of Scientific Revolutions》一书提出的,其核心——范式论在自然科学家中引起强烈的共鸣,并波及社会科学的广泛领域。在计算机领域我们也常使用范式的概念,比如著名的关系数据库的第一、二、三范式。 范式包括三个方面: (1)范式建立在科学理论体系内。 (2)范式运用该理论体系的心理认知因素。 (3)范式指导和联系上述两者(理论体系和心理认知)的自然观。 范式观念对于学习和使用OOP十分重要。在学习OOP时,许多人自然而然偏重于技术层面,能够把OO语法搞得清清楚楚,但忽视自然观和心理认知因素。这常常使他们在采用OO思想的过程中,产生无用感、被迫感、挫折感、逃避愿望。 现有的编程语言,按照范式可分为以下四类: (1)命令的或过程式,如C语言,Pascal语言。 (2)声明的或基于逻辑的,如Prolog语言。 (3)函数的,如LISP、ML语言。 (4)面向对象的,如Java、C#,C++等 与语言门派相对应的就是所谓的四大编程范式(Programming paradigm)或曰四大计算模型。其中第2类----声明的范式(declarative paradigm)多被用于知识表达和推理的应用中,似乎暂时离我们远了点因次本课不讨论它。 (1)命令范式 命令的语言或过程式语言(imperative or procedural languages)是最为传统的编程语言。从机器语言、汇编语言到早期的某些高级语言(如BASIC、Fortran、Cobol 及C等),都属于该范式。 过程式语言是命令驱动(command-driven)或者说是面向语
显示全部
相似文档