预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共41页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Java面向对象设计类和对象理解面向对象程序设计面向对象程序(Object-orientedprogramming,OOP)设计是继面向过程又一具有里程碑意义的编程思想,是现实世界模型的自然延伸。下面从结构化程序设计说起,逐步展示面向对象程序设计。结构化程序设计简介早期的程序设计,大量使用共享变量(全局变量)和GOTO语句,这使得代码结构比较混乱,不容易改错和复用,后来有人证明所有的有意义的程序流程都可以使用顺序、选择和循环来实现,并由此提出结构化程序设计。其概念最早由在1965年提出的,是软件发展的一个重要的里程碑。它的主要图中座椅设计图就是“类”,由这个图纸设计出来的若干的座椅就是按照该类产生的“对象”。可见,类描述了对象的属性和对象的行为,类是对象的模板。对象是类的实例,是一个实实在在的个体,一个类可以对应多个对象。可见,如果将对象比做座椅,那么类就是座椅的设计图纸,所以面向对象程序设计的重点是类的设计,而不是对象的设计。一个类按同种方法产生出来的多个对象,其开始的状态都是一样的,但是修改其中一个对象的时候,其他的对象是不会受到影响的,例如,修改第1把座椅(如锯短椅子腿)的属性时,其他的座椅是不会受到影响。再举一个例子来说明类与对象的关系。17世纪德国著名的哲学家、数学家莱布尼茨(Leibniz,1646年一1716年)曾有个著名的哲学论断:“世界上没有两片完全相同的树叶。”这里,我们用“类”与“对象”的关系来解释:类相同——它们都叫树叶,而对象各异一一树叶的各个属性值(品种、大小、颜色等)是有区别的,如上图所示。从这个案例也可以得知,类(树叶)是一个抽象的概念,它是从所有对象(各片不同的树叶)提取出来的共有特征描述。而对象(各片具体的不同树叶)则是类(树叶这个概念)的实例化。类的声明与定义在使用类之前,必须先声明它,然后才可以声明变量,并创建对象。类声明的语法如下。可以看到,声明类使用的是class关键字。声明一个类时,在class关键字后面加上类的名称,这样就创建了一个类,然后在类的里面定义成员变量和方法。在上面的语法格式中,标识符可以是public、private、protected或者完全省略这个修饰符,类名称只要是一个合法的标识符即可,但从程序的可读性方面来看,类名称最好是由一个或多个有意义的单词连缀而成,每个单词首字母大写,单词间不要使用其他分隔符。类的标识符可以是访问控制符。Java提供了一系列的访问控制符来设置基于类(class)、变量(variable)、方法(method)及构造方法(constructor)等不同等级的访问权限。Java的访问权限主要有4类。⑴默认模式(default)。在默认模式下,不需为某个类、方法等不加任何访问修饰符。这类方式声明的方法和类,只允许在同一个包(package)内是可访问的。⑵private(私有)。这是Java语言中对访问权限控制最严格的修饰符。如果一个方法、变量和构造方法被声明为“私有”访问,那么它仅能在当前声明它的类内部访问。类和接口(interface)的访问方式是不能被声明为私有的。⑶public(公有)。这是Java语言中访问权限控制最宽松的修饰符。如果一个类、方法、构造方法和接口等被声明为“公有”访问,那么它不仅可以被跨类访问,而且允许跨包访问。如果需要访问其他包里的公有成员,则需要事先导入(import)那个包含所需公有类、变量和方法等的那个包。⑷protected(保护)。介于public和private之间的一种访问修饰符。如果一个变量、方法和构造方法在父类中被声明为“保护”访问类型,只能被类本身的方法及子类访问,即使子类在不同的包中也可以访问。类和接口(interface)的访问方式是不能声明为保护类型的。类的标识符除了上述的4个访问控制符,还可以是finale关键字“final”有“无法改变的”或者“终态的”含义。一个类一旦被声明为final,那这个final类不能被继承,因此final类的成员方法没有机会被覆盖,默认情况下类都是default的。在设计类时候,如果这个类不需要有子类,类的实现细节不允许改变,并且确信这个类不会再被扩展,那么就设计为final类。类的组成使用(Person,java)。程序首先用class声明了一个名为Person的类,在这里Person是类的名称。第3、4行先声明了两个属性(即描述数据的变量)name和age,name为String(字符串类型)型,age为int(整型)型。第5~8行声明了一个talk。方法操作数据(如name和age)的方法,此类的定义对一个类定义而言,构造方法(constructor,又称构造器或构造函数)、属性和方法是三种最常见的成员,它们都可以定义零个或多个。如果三种成员都只定义零