对象的构造方法.ppt
文本预览下载声明
? 2005 iCarnegie, Inc. 面向对象技术与Java Java与面向对象技术 1、面向对象的概念 2、Java中的类、方法和属性 3、Java名字空间及访问规则 4、Java中的抽象类、接口和程序包 5、对象的构造方法 1、面向对象的概念 面向对象的方法 分析、设计和实现一个系统的方法尽可能地接近我们认识一个系统的方法。包括: 面向对象的分析(OOA, Object-Oriented Analysis) 面向对象的设计(OOD, Object-Oriented Design) 面向对象的程序设计(OOP, Object-Oriented Program) 面向对象技术主要围绕以下几个概念: 对象 抽象数据类型 类、类型层次(子类) 继承性 多态性 对象 对象有两个层次的概念: 现实生活中对象指的是客观世界的实体; 程序中对象就是 一组属性(数据)和相关方法(对数据的操作)的集合, 其中属性表明对象的状态,方法表明对象所具有的行为。 抽象数据类型 将现实生活中的对象经过抽象,映射为程序中的对象。对象在程序中是通过一种抽象数据类型来描述的,这种抽象数据类型称为类(Class)。而不是一个个单个没有联系的数值! 什么是类呢? 类是描述对象的“基本原型”,它定义一类对象所能拥有的数据和能完成的操作。 在面向对象的程序设计中,类是程序的基本单元。 程序的编写由定义类开始,或者说数据的类型由程序员自己定义,先画出设计图纸 再生成类的实例——对象, 再依据图纸制造出产品 对象之间相互协作完成程序功能 (现实世界也是各类对象互动发生事件,得到结果),发对象消息,接受消息反馈 相似的对象可以归并到同一个类中 类似传统语言中的变量与数据类型关系一样。 程序中的对象是类的一个实例,是一个软件单元 由一组结构化的数据和在其上的一组操作构成。 现实生活中的相同事物与程序中的对象 对象的成员 字段/属性: 指对象的数据单元,指示对象的状态 方法: 指对象的功能单元,指示对象的行为 对象间的通信 消息 软件对象通过相互间传递消息来相互作用和通信,一个消息由三部分组成: 1. 接受消息的对象 2. 接收对象要采取的方法 3. 方法需要的参数 mycar. speedUp(50); mycar. brake(); 一个例子 在程序中所操作的 对象是类的一个实例。 创建一个对象: Hello obj=new Hello(); 调用方法: obj.showString(); 调用对象的方法相当于给对象发送消息 收到消息的对象如何响应消息? 通过改变自身的状态(修改属性) 或者向其它对象发送消息 反馈相应消息的结果 为什么要使用类? 如果没有使用类 采用简单数据类型表示现实世界中概念的局存在很大的限性。例如:采用int型数据表示一个日期概念,需要使用3个变量: int day, month, year; 表示2个人的生日,要使用6个变量 并且在使用中必须时刻注意三者的联系和约束关系 2009-2-29? 2009-4-31? 同时在使用日期概念时要同时对三个变量进行访问 使用类可以把现实问题中的对象映射为程序中的一个整体——类。 如使用某种日期类型 Date,只需使用管理一个对象变量 为什么要使用类? 类中不但有变量(称为属性),还有与之相关的操作所定义的方法。 将变量和方法封装在一个类中,可以对成员变量(成员属性)进行隐藏,外部对类成员的访问都通过方法进行, 保护类成员不被非法修改 还是生日的例子 BirthDate date; 已知当前日期对象,想计算第2天的日期对象: date.day =date.day+1; // 直接访问,合适吗? 如果date.day已经为31,操作结果就会是非法状态 可以定义一个public成员方法tomorrow(),求第2天的日期对象。保证日期值在有效的范围之内 外部要获得当前日期的后一天时,只要调用: date.tomorrow(); 面向对象的概念——封装 封装把对象的所有组成部分组合在一起 封装定义程序如何引用对象的数据 封装实际上使用方法将对象的数据隐藏起来, 控制用户对对象的修改和访问数据的程度。 面向对象的概念 - 子类 子类是作为另一个类的扩充或修正而定义的一个类。 面向对象的概念 - 继承 继承是子类利用父类中定义的方法和属性,就像它们属于子类本身一样。 面向对象的概念 - 方法的覆盖 方法的覆盖 子类中可以重新定义父类中已有的方法(对父类的行为进行修正) 体现出子类自己的行为。 面向对象的概念 -方法的重载(多态性) 重载指得是在同一个类中至少有两个方法使用同一个名字,但有不同的参数。 例如对于
显示全部