230 likes | 598 Views
Java java java java. JAVA 语言. 第四章 面向对象的软件开发基础 以客观世界中的对象为中心 . 在现实世界中,每个实体都是对象,如学生、汽车、电视机、空调等都是现实世界中的对象。 面向对象 = 对象 ( object ) + 分类( classification ) + 继承( inheritance ) + 通过消息的通信( communication with messages ) 可以说,采用这四个概念开发的软件系统是面向对象的。. 第四章 面向对象的软件开发基础.
E N D
Java java java java JAVA语言
第四章 面向对象的软件开发基础 以客观世界中的对象为中心. 在现实世界中,每个实体都是对象,如学生、汽车、电视机、空调等都是现实世界中的对象。 面向对象=对象(object) +分类(classification) +继承(inheritance) +通过消息的通信(communication with messages) 可以说,采用这四个概念开发的软件系统是面向对象的。 第四章 面向对象的软件开发基础
面向过程:算法+数据结构=程序 过程与数据独立,先考虑解决问题的算法,再设计合适的数据结构使算法得以有效的实现。 面向对象:将对象作为基础。 把对象的状态和所允许的操作结合起来。 求解问题,即可看成定义类和对象的过程。 :分析抽象类实例化为对象通过对象的交互实现求解。 面向过程图例及面向对象对比 函数 函数 过程 过程 数据
数据 方法 数据 对象 方法 方法 对象 数据 方法 对象 面向对象的程序设计: 面向对象设计图例
提职称 教师对象 姓名 年龄 专业 职称 课程对象 教课 退休 确定教师 开设 取消 选课 课程名 教师名 学生名单 姓名 专业 已选课程 增加学生 换专业 学生对象 面向对象,程序分析: 找出关键名词,抽象(定义类),关键动词(类的方法) 例如:某大学计算机系的课程管理问题。 课程管理问题解决图例
一、面向对象的基本概念 1、对象、类和实体 对象----现实世界中某个具体的物理实体在计算机逻辑中的映射和体现。 类----同种对象的集合和抽象。 每个实体都有它的属性和操作,如电视机有颜色、音量、亮度、辉度、频道等属性,可以有切换频道、增大/减低音量等操作。 2、对象的属性 ⑴ 状态---变量 静态的 ⑵ 行为---操作(方法) 动态的 ⑶ 标志---对象名 一、 面向对象的基本概念
显示 时间 调整时间 种类 品牌 大小 颜色 指示时间…… ……. 鸣叫报时 …… 换电池 手表对象的属性 手表对象属性图
现实世界 计算机世界 映射 对象 实体 实例化 抽象 抽象 概念世界 计算机逻辑的实现 抽象数据类 图 对象、实体 与 类 二、 面向对象程序设计方法的特点 1 抽象 2 封装 3 继承 类
二、面向对象程序设计方法的特点 1、抽象 过程抽象(面向过程采用) 数据抽象——数据和操作结合 2、封装 用抽象数据类型将数据和基于数据的操作封装在一起。 3、继承 一个类可用继承的方式拥有另一类的所有数据和操作。 单重继承 : 一个类只有一个单一的父类(JAVA) 多重继承 :一个类可有多个父类 (C++) 二、 面向对象程序设计方法的特点 1 抽象 2 封装 3 继承
三 、面向对象程序设计方法的优点 1 可重用性 2 可扩展性 3 可管理性 4、 覆盖: 如交通工具的“启动”方法。在子类中重新 定义、编写方法内容。以不同的类来区分。 重载: 同一类中定义同名方法。如“打印”方法。 名字相同,采用不同的形式参数列表,用个数、 类型、顺序来区分。 三、面向对象程序设计方法的优点 P81 1、可重用性 2、可扩展性 3、可管理性
第五章 JAVA面向对象编程基础 一、定义类(声明类)P85 第五章 JAVA面向对象编程基础 一、定义类
class RQ //定义类的例题 { int year; int month; int date; void setRQ(int y,int m,int d) {year=y; month=m; date=d;} void showRQ() {System.out.println("year="+year+" month="+month+" date="+date);} } 例题 person
class Person { String name; int no; RQ birth=new RQ();//RQ类的对象birth作person类的成员 void setP(String s,int n,int y1,int m1,int d1) { name=s; no=n; birth.setRQ(y1,m1,d1);} void showP() { System.out.println("name="+name+" no="+no); birth.showRQ();} static public void main(String ags[]) { Person p=new Person(); p.setP("zhang",12,1942,6,13); p.showP(); } } RQ
三、构造函数 三、构造函数 RQ birth=new RQ(); Person p=new Person(); ? 创建对象时给实例赋值 构造函数—特殊方法 : 作用P95 与类名同 无返回类型 完成对类对象的初始化 不能显式的直接调用 系统自动调用(在创建类对象时) 如:给日期类定义构造函数: RQ(int y,int m ,int d) { year=y; month=m; date=d; } 创建对象 birth ,并给各成员变量赋值: RQ birth =new RQ(1980,12,29);
三、构造函数 本节作业: 1、假设有一个类“计算机”,它包括如下的内容: 计算机: 属性:品牌、颜色、CPU型号、内存容量、 硬盘容量、价格、工作状态 方法:打开、关闭、挂起 (1) 试编写一段java程序,声明并定义这个类。 (2) 为计算机类编写至少两个构造方法 (3)编写一个Test计算机的程序,创建计算机 对象,尝试调用方法。 2、扩充1题,增加一个人类,编写方法去使用计算机 并为人类和计算机类修改Test程序进行测试。
Java java java java 本讲结束