过程抽象是指:软件开发者可以把任何一个完成确定功能的操作序列都看作是一个单一的实体,尽管它实际上可能是由一系列更低级的操作完成的。运用过程抽象,软件开发者可以把一个复杂的功能分解为一些子功能(模块),如果子功能仍比较复杂,则可以进一步分解。这使得开发者可以在不同的抽象层次上考虑问题,在较高层次上思考时可以不关心较低层次的实现细节。面向过程的程序设计采用的是过程抽象方法。
使用过程抽象有利于控制、降低整个程序的复杂度,但是,这种方法允许在全系统的范围内进行功能的描述,本身自由度大,难于规范化和标准化,不易保证软件的质量,而且操作起来也有一定难度。
数据抽象把系统中需要处理的数据和施加于这些数据之上的操作结合在一起,根据功能、性质、作用等因素抽象成不同的抽象数据类型。每个抽象数据类型既包含了数据,也包含了针对这些数据的授权操作,并限定数据的值只能由这些操作来观察和修改。因此,数据抽象是相对于过程抽象更为严格、更为合理的抽象方法。
面向对象的程序设计就是采用数据抽象这一方法来构建程序中的类和对象的。它强调把数据和操作结合为一个不可分的系统单位——对象,对象的外部只需要知道这个对象能做什么,而不必知道它是如何做的。
抽象作用:提取同类对象共同的特征和功能
实例方法可使用圆点符号来访问
–方法被调用的对象在圆点左边,而方法的名称在圆点右边
–例如: Obj.isAvailable();
封装也称为信息隐藏,是指利用抽象数据类型将数据和基于数据的操作封装在一起,使其构成一个不可分割的独立实体,数据被保护在抽象数据类型的内部,尽可能地隐藏内部的细节,只保留一些对外接口使之与外部发生联系。系统的其他部分只有通过包裹在数据外面的被授权的操作来与这个抽象数据类型交流与交互。也就是说,用户无需知道对象内部方法的实现细节,但可以根据对象提供的外部接口(对象名和参数)访问该对象。封装具有下述特征:
(1) 在类的定义中设置访问对象属性(数据成员)及方法(成员方法)的权限,限制本类对象及其他类的对象使用的范围。
(2) 提供一个接口来描述其他对象的使用方法。
(3) 其他对象不能直接修改本对象所拥有的属性和方法。
包
定义:组织.class文件的存放方式
作用:
防止命名冲突
访问权限控制
包允许将类组合成较小的单元(类似文件夹),使其易于找到和使用相应的类文件
有助于避免命名冲突。在使用许多类时,类和方法的名称很难决定。有时需要使用与其他类相同的名称。包基本上隐藏了类并避免了名称上的冲突
包允许在更广的范围内保护类、数据和方法,可以在包内定义类,而在包外的代码不能访问该类
在Java程序设计中,继承是通过extends关键字来实现的。在定义类时使用extends关键字指明新定义类的父类,新定义的类称为指定父类的子类,这样就在两个类之间建立了继承关系。这个新定义的子类可以从父类那里继承所有非private的属性和方法作为自己的成员。实际上,在定义一个类而不给出extends关键字及父类名时,默认这个类是系统类object的子类。
子类的构造方法
先调用父类构造方法,再调用子类构造方法
要调用父类构造方法,使用关键字 super
子类构造方法的名称与类的名称相同
调用父类构造方法的语法为:
super() 或 super(参数列表) ;
super () 方法始终指向调用类的父类
注意:
一个类只有一个父类,一个父类可以有多个子类
在子类中,凡是继承来的属性,必须要调用父类的构造方法来初始化




•static修饰符修饰的方法叫静态方法
•目的
–使该方法独立于类的实例,使用类去访问,而不是类实例,所以也叫类方法
由abstract修饰的方法叫抽象方法;由abstract修饰的类叫抽象类
抽象方法必须声明在抽象类中
抽象方法语法:
abstract type method_name(parameter_list);
声明抽象类语法:
abstract class{…… }
使用:父类中的某些抽象不包含任何逻辑,并需要在子类中重写,子类提供这种抽象方法的实现细节