java 面向对象程序设计浅谈。众所周知,面向对象程序设计是经历了历史的考验后留下来的现在使用最普遍的程序设计方法,提到程序设计,先来过一下历史上有一定影响的程序设计方法.
一、结构化程序设计方法学
自顶向下,逐步求精;其程序结构是按功能划分为若干个基本模块,这些模块形成一个树状结构;各模块之间的关系尽可能简单,在功能上相对独立;每一模块内部均由顺序、选择和循环三种基本结构组成;其模块化实现的具体方法是使用子程序。
结构化方法学具有以下特点:
1.阶段性。
2.推迟实施。
3.文档管理。
如C语言等是面向结构 化的程序设计语言。
二、面向对象程序设计方法学
面向对象程序设计吸取了结构化程序设计的一切优点,又考虑了现实世界与面向对象解空间的映射关系,它所追求的目标是将现实世界问题的求解尽可能的简单化。
面向对象程序设计将数据及对数据的操作放在一起,作为一个相互依存、不可分割的整体来处理,它采用数据抽象和信息隐藏技术。它将对象及对对象的操作抽象成一种新的数据类型—类,并且考虑不同对象之间的联系和对象类的重用性。
下面我将就本人了解的一些面向对象基本概念和大家分享。希望对大家有所帮助。
一、对象的基本概念
面向对象=对象+类+继承+消息通信
面向对象系统最突出的特性就是封装性、继承性和多态性,衡量某一种程序设计语言,看它是否是面向对象的程序设计语言,主要看它是否具有以上三种特性。 像C++,C#,java等都是这样的程序设计语言。
二、类与对象
类(class)是对具有相同属性和服务的一个或一组对象的抽象定义。
类与对象是抽象与具体实例的关系,一个具体的对象被称做类的一个实例。
是否建立了丰富的类库是衡量一个面向对象程序设计语言成熟与否的一个重要标志。
对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,是类的实例。
面向对象的软件系统是由对象组成的,复杂的对象是由比较简单的对象组合而成。也就是说,面向对象方法学使用对象分解取代了传统方法的功能分解。
对象的属性和方法称为这个对象的“成员”。它是构成对象的主要部分。
类可以说是对象的蓝图(blueprint)
三、对象三要素
对象三要素:对象标志、属性和服务
对象标志:也就是对象的名字,供系统内部唯一地识别对象。
属性:也称状态或数据,用来描述对象的静态特征。在某些面向对象的程序设计语言中,属性通常被称为成员变量或简称变量。
服务:也称操作、行为或方法等,用来描述对象的动态特征。某些面向对象程序设计语言中,服务通常被称为成员函数或简称函数。
封装:对象的一个重要原则,目的是使对象的定义与实现分离。它有两层含义:第一,对象是其全部属性和全部服务紧密结合而形成的一个不可分割的整体;第二,对象是一个不透明的黑盒子,表示对象状态的数据和实现操作的代码都被封装在黑盒子里面。使用一个对象的时候,只需知道它向外界提供的接口形式,无须知道它的数据结构细节和实现操作的算法。从外面看不见,更不可能从外面直接修改对象的私有属性。
l 处于私有段(private)的changemark,这是不向外公开的功能,只供对象自己使用。
l 处于保护段(protected)的getmark,这是只向外界宣布的功能,只对其派生类对象提供服务。
l 处于公有段(public)的getname和getmajor,这是向所有外界公开的功能,它可以响应外界对象的请求。
对象(object)是系统中用来描述客观事物的一个实体,它是构成系统的一个基本单位,是类的实例。
面向对象的软件系统是由对象组成的,复杂的对象是由比较简单的对象组合而成。也就是说,面向对象方法学使用对象分解取代了传统方法的功能分解。
四、继承(inheritance)和多态(polymorphism)性
继承:是面向对象程序设计语言不同于其它语言的主要特点,是类之间共享属性和操作的机制。其定义为:特殊类(或称子类、派生类)的对象拥有其一般类(或称父类、基类)的全部属性与服务,称做特殊类对一般类的继承(分为单继承和多继承)。在面向对象的方法学中,继承是提高软件开发效率的重要原因之一。
多态性:指对象在收到消息时,要给予相应,对象收到同一个消息后可能产生完全不同的结果。
总体上分为:编译时的多态和运行时的多态。
参数多态(使用函数重载来实现)是应用最广泛的多态,是最纯的多态。
多态性不仅增加了面向对象软件系统的灵活性,进一步减少了信息冗余,而且显著提高了软件的可重用性和可扩充性。
在定义函数重载时,函数名字相同,但函数所带的参数的个数或类型必须有所区别,否则就会出现二义性。
习惯称被继承的类为“父类”,而继承的类称为“子类”。
在面向对象系统中除了函数可以重载外,运算符也可以重载。java也是这样。
注意:编译时的多态一般由函数重载来实现,而运行时的多态由虚函数来使用。
综上,前面说的都是一些面向对象的理论。现在说说java的面向对象程序设计。
一、定义类
类的定义已经用到很多,比如一个动物的类,用UML的表示法如图:
animal |
+legs:int |
+eat()
+move() |
定义了三个成员,一个是用来记录有几只脚的legs属性,属性名称后面跟一个冒号,然后有个int表示该属性的数据类型为int类型,另外两个是方法,一个是吃东西的方法eat,另一个是行动的方法move.每个成员前面有个加号“+”表示这个成员使用public修饰符。在java中定义这个类为:
public class animal …{ public int legs; public void eat() …{ System.out.println(“Eatin….”); } public void move()…{ System.out.println(“Moving…”); } }