
出版社: 清华大学
原售价: 49.80
折扣价: 40.34
折扣购买: Java核心技术(全国高等院校应用型创新规划教材)/计算机系列
ISBN: 9787302483809
无
第3章 Java面向对象编程机制 计算机程序告诉计算机应该做什么。计算机执行的任何操作都是由程序控制的。程序设计是将计算机要执行的操作或者计算机要解决的问题转变成程序的过程。 程序设计的过程主要分为面向过程编程和面向对象编程两种风格,本书讲解的Java语言编程属于面向对象编程技术。 本章要点 * 面向对象编程的基本思想。 * 类与对象。 * 抽象类与接口。 * Java简单程序。 学习目标 * 理解面向对象编程的基本思想。 * 掌握Java运行环境的安装和环境变量的配置。 * 掌握类与对象的概念及创建方式。 * 掌握接口与抽象类的声明及创建方法。 * 掌握Java程序的分类与运行步骤。 3.1 面向对象编程的基本思想 程序员可以用各种程序语言编写指令,有些语言是计算机直接能理解的,有些则需经过中间的“翻译”步骤。无论如何,程序设计的核心是数据的处理。基于数据处理方式的不同,可将程序设计过程分为面向过程的程序设计和面向对象的程序设计。其中,传统的面向过程的编程设计思路是先设计一组函数,用来解决一个问题,然后再确定函数中需要处理数据的相应存储位置,即“算法+数据结构=程序”。而面向对象编程(Object Oriented Programming,OOP)的思路恰好相反,是先确定要处理的数据,然后再设计处理数据的算法,最后将数据和算法封装在一起,构成类与对象。 面向对象技术是一种设计和构造软件的全新技术,它使计算机解决问题的方式更符合人类的思维方式,更能直接地描述客观世界,通过增加代码的可重用性、可扩充性和程序自动生成功能来提高编程效率,并且能够大大减少软件维护的开销,所以被越来越多的软件设计人员接受。 面向对象技术是一种新的软件技术,从20世纪60年代提出面向对象的概念,到现在已发展成为一种比较成熟的编程思想,并且逐步成为目前软件开发领域的主流技术。同时,它并不局限于程序设计方面,也已经成为软件开发领域的一种方法论。它对信息科学、软件工程、人工智能和认知科学等都产生了重大影响,尤其在计算机科学与技术的各个方面,影响深远。通过面向对象技术,可以将客观世界直接映射到面向对象求解空间,从而为软件设计和系统开发带来革命性影响。 在面向对象程序设计方法出现之前,程序员用面向过程的方法开发程序。面向过程的方法把密切相关、相互依赖的数据和对数据的操作相互分离,这种实质上的依赖与形式上的分离使得大型程序不但难于编写,而且难于调试和修改。在多人合作中,程序员之间很难读懂对方的代码,更谈不上代码的重用。由于现代应用程序规模越来越大,对代码的可重用性与易维护性的要求也相应提高。面向对象技术便应运而生了。 面向对象技术是一种以对象为基础,以事件或消息来驱动对象执行处理的程序设计技术。它以数据为中心,而不是以功能为中心来描述系统,数据相对于功能而言,具有更强的稳定性。它将数据和对数据的操作封装在一起,作为一个整体来处理,采用数据抽象和信息隐蔽技术,将这个整体抽象成一种新的数据类型,称为类,并且考虑不同类之间的联系和类的重用性。类的集成度越高,就越适合大型应用程序的开发。另一方面,面向对象程序的控制流程由运行时各种事件的实际发生来触发,而不再由预定顺序来决定,这更符合实际。事件驱动程序的执行围绕消息的产生与处理,靠消息循环机制来实现。更重要的是,利用不断扩充的框架产品MFC(Microsoft Foundation Classes),在实际编程时可以采用搭积木的方式来组织程序,站在“巨人”肩上实现自己的愿望。面向对象的程序设计方法使得程序结构清晰、简单,提高了代码的重用性,有效地减少了程序的维护量,提高了软件的开发效率。 例如,可以用面向对象技术来解决学生管理方面的问题。此时重点应该放在学生上,要了解在管理工作中学生的主要属性、要对学生做些什么操作等,并且把它们作为一个整体来对待,形成一个类,称为学生类。作为学生类的实例,可以建立许多具体的学生,而每一个具体的学生就是学生类的一个对象。学生类中的数据和操作可以提供给相应的应用程序共享,还可以在学生类的基础上派生出大学生类、中学生类或小学生类等,实现代码的高度重用。 在结构上,面向对象程序与面向过程程序有很大不同。面向对象程序由类的定义和类的使用两部分组成,在主程序中定义各对象,并规定它们之间传递消息的规律,程序中的一切操作都是通过向对象发送消息来实现的,对象接到消息后,启动消息处理函数,完成相应的操作。 类与对象是面向对象程序设计中最基本且最重要的两个概念,在3.2节中,将详细介绍类与对象。 下面使用三种例子,来比较两种方法学的区别,各例程结果基本相同。 【例3.1】用面向过程的C语言实现两数相加: #include int sum(int x, int y) { return x+y; }; void main() { int a=3,b=4,c=5,d=6; printf(\"a+b=%d\\n\", sum(a,b)); printf(\"c+d=%d\\n\", sum(c,d)); } 【例3.2】用过程化的面向对象C++语言实现: #include class Calculate { public: int sum(int x, int y) { return x+y; } }; void main() { int a=3,b=4,c=5,d=6; Calculate obj; cout 《Java核心技术》立足于Java的各种核心技术,系统地讲解Java语言知识。学习《Java核心技术》无需任何基础,零起点学Java是《Java核心技术》的宗旨。《Java核心技术》实用性强,包含Java基础知识和高级编程方面的所有常用核心技术,由浅入深、通俗易懂、难易适度,可以增强读者成为IT精英的信心。