- 3
- 0
- 约6.13千字
- 约 44页
- 2017-04-11 发布于湖北
- 举报
第1章 面向对象程序设计导论
本章提供背景性、补充性的材料。让大家看清面向对象程序设计方法的完整面貌,在没有理解大背景之前就去编写面向对象的程序,会有点不舒服。因此会对许多概念进行介绍。
本章内容
比较C和JAVA的不同
面向对象的特征
封装与信息隐藏
继承
多态性
JAVA其他特征
JAVA技术及应用领域
为什么不是C++
1.1 C和JAVA的不同
C是面向过程,java是面向对象。
int max(int num1,int num2) {
if (num1num2)
return num1;
else
return num2;
}
1.1 C和JAVA的不同
面向对象其实是现实世界模型的自然延伸。
现实世界是由一个一个对象组成;
对象之间通过消息(请求和服务)相互协作,完成系统的功能.
1.1 C和JAVA的不同
C和java应用的范围不同
c主要应用在比较底层的一些东西,比如操作系统,驱动程序,嵌入式开发。
java应用比较表层,主要在网络,企业级应用ERP,大型信息系统等。
学习c和java没有任何冲突,学好了c和java几乎可以解决计算机所有的问题。
抽象化的过程
所有的编程语言都提供抽象。
汇编语言是对计算机的抽象,
随后许多语言(例如FORTRAON,BASIC和C)是对汇编语言的抽象,但是这是一种初级的抽象。仍然要求你从计算机的角度,而不是从待解决的问题的角度来考虑。
另外一种建立机器模型的方式,就是建立待解决问题的模型。LISP和PROLOG
抽象化过程
面向对象法更进一步,提供各式各样的工具,让程序员能在问题空间表述各种元素。这样程序员就不会被被限制在特殊问题上了。我们将问题空间的元素同它在解决空间的表述称为“对象”。
面向对象方法的特征
万物皆对象。理论上可以将待解决问题总的所有观念性组成都变成程序中的对象。
程序就是一组互相之间传递消息,告诉对方该干什么的对象。消息是调用专署某个对象的方法的请求。
每个对象都利用别的对象来组建它自己的记忆。可以通过将已有的对象打成一个包,来创建新的对象。
面向对象方法的特征
对象都有类型。任何对象都是某个类的实例。
所有属于同一类型的对象都能接受相同的信息。
每个对象都有接口
Light lt = new Light();
lt.on();
接口(interface)规范了你能够对对象发出的请求。
不过还要有程序代码来满足这些请求。这些程序代码加上被隐藏的数据,构成了实现(implementation)
被隐藏的实现细节
java使用三个关键字来设定class的访问权限:public、private、protected。
Public定义后,每个任都可以使用
Private 除了类型开发者可以在该类型的member functions中使用,没有任何人可以使用。
Protected 和private相似,不过class的继承者可以访问 protected members,确无法访问private member
Java缺省的是friendly访问权限,在同一个package中可以访问其他的calsses
重复运用实现代码
程序代码的重复运用,是面向对象程序设计最大的优点之一。
重复运用某个class最简单的方式就是直接使用其产生的对象。此外也可以把某个class对象置于另一个class内。
继承:重复运用接口
当你继承既有的类型时,便创造了新的类型,后者不仅可以包含前者所有的成员(但是private成员会被隐藏起来,而且无法访问),更重要的是它同时也复制了基类的接口。
继承:重复运用接口
继承:在已有类(父类
或超类)的基础上派
生出新的类(子类),
新的类能够吸收已有
类的属性和行为,并
扩展新的能力。
改变继承来的方法
定义一个几何图形类Shape,它具有“画图”行为,用draw()表示。但具体画什么图并不确定;
定义Shape类的一些子类如Circle圆和Rectangle矩形。
在子类中“画图”的具体行为draw()可重新定义为:圆类中draw()画圆;矩形类中draw()画矩形。
定义: Shape s;
//s作为引用变量可指向Circle圆类的对象,
也可指向Rectangle矩形类的对象。
执行代码:
s.draw();
//s调用draw()方法,s指向对象不同会
画出不同的图形(圆或矩形)
JAVA其他特征
上面我们介绍了OOP的几个最基本特征,既封装、继承和多态。下面我们继续介绍一些问题,他们的重要性不亚于上述几点。
对象的创建,使用和生命周期
对象的生成和毁灭,C++认为效率是最重要的,将对象置于stack或静态存储区中,于是程序编
原创力文档

文档评论(0)