赞
踩
目录
广义上讲,一个程序可以用两种方法组织:一是围绕代码(发生了什么),二是围绕数据(谁受了影响)。面向对象程序设计则以另一种方式工作,它们围绕数据来组织程序。在面向对象语言中,需要定义数据和作业于数据的操作。
简单来说,面向对象就是把把数据及对数据的操作方法放在一起,抽象为“对象”。每个对象是唯一的,且都可以拥有它的属性与行为。我们通过调用对象的属性和行为去解决问题。
对象是一个抽象的概念,人们身边存在的一切都可看作为对象,如一个人、一辆车等。
一个对象一般具有两方面的特征:属性和行为。属性用来描述对象的静态特征,行为用来描述对象的动态特征。例如,一条狗是一个对象,它的属性有:颜色、名字、品种;行为有:摇尾巴、叫、吃等。
类可以定义为具有相似特征和行为的对象的集合,对象的创建称为类的实例化,属于某个类的一个具体的对象称为该类的一个实例,类是一个模板,它描述一类对象的行为和状态。
面向对象的设计原理具有三个特性:封装、继承、多态。
封装就是把对象的属性(成员变量)和行为(方法)结合成一个独立的系统单位,并尽可能地隐藏对象的内部细节。封装即信息隐蔽,它在确定系统的某一部分内容时,应考虑到其它部分的信息及联系都在这一部分的内部进行,外部各部分之间的信息联系应尽可能的少。
封装有四种访问控制权限,他们各自的区别是:
public:对外公开,可以在任何类中被调用
protected:可以被同一个包中的类或子类访问
默认(缺省):只能被同一个包中的类访问
private:只能被同一个类的方法访问
继承是让某个类型的对象获得另一个类型的对象的属性和方法。继承之所以重要,是因为它支持层次结构类的概念。继承就是子类继承父类的属性和行为,使得子类对象具有父类的属性和方法,或子类从父类继承方法,使得子类具有父类相同的行为。
多态是指程序中相同的名字表示不同含义的情况。面向对象程序设计中的多态有多种情况。
在简单的情况下,在同一个类中定义了多个名称相同的方法,即方法重载,方法重载体现的是单个类的多态性。
另一种情况是子类中定义的与父类中的方法同名的方法,即方法覆盖,也叫方法重写,体现的是父类与子类的多态性。
这两种情况都称为多态,且前者称为静态多态,后者称为动态多态。
继承关系使一个子类继承父类的特征,并且附加一些新特征。子类对象和父类对象在一定条件下可以互相转换,对象的转换也有自动转换和强制转换之分。
子类对象可以作为父类对象使用,即子类可以转换为父类对象,可以将子类型的引用赋值给父类型的引用。如以下赋值语句:
parent = child; //子类child赋值给父类parent,子类对象自动转换成父类对象
这种转换称为向上转换,这种转换必须是直接或间接类(或接口)。反过来,也可以将一个父类对象转换成子类对象,需要用到强制转换。强制类型转换需要用到转换运算符“()”。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。