回顾03 面向对象程序设计.ppt_第1页
回顾03 面向对象程序设计.ppt_第2页
回顾03 面向对象程序设计.ppt_第3页
回顾03 面向对象程序设计.ppt_第4页
回顾03 面向对象程序设计.ppt_第5页
已阅读5页,还剩60页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2020 03 02 1 03章面向对象程序设计 知识点 2020 03 02 2 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 3 面向对象程序设计整体介绍 面向对象程序设计 OOP 将数据 属性 和方法 行为或功能 封装到类 classes 中数据与方法常常是紧密相关的对象 objects 类的实例对象或类本身三个基本特性 封装性 继承性和多态性 2020 03 02 4 比较 结构化程序设计对应的典型的计算机语言 例如 C面向操作 action 的函数 方法 是程序的基本单位面向对象程序设计对应的典型的计算机语言 例如 Java面向对象 object 的类 class 是程序的基本单位方法 函数 被封装在类中数据也常常被封装在类中 2020 03 02 5 类 类 class 本身也是一种对象类 class 同时也是实例对象的模板类 class 的基本组成 成员 域和 成员 方法每个对象 拥有内存 存储成员域 方法静态的成员域 方法 属于类其它成员域 方法 属于实例对象 2020 03 02 6 类的定义 类的定义格式如下 类修饰词 class类名 extends父类名 implements接口名称列表 类体 2020 03 02 7 多个类组成的程序 很多Java程序需要多个类完成一项任务一个文件一般只含有一个类每个文件的长度一般不要太长最长一般不要超过2000行 2020 03 02 8 方法定义 与C 程序不同的是 每个方法都必须隶属于某个类方法定义的格式 方法修饰词 返回类型方法名 方法的参数列表 方法体 返回类型 返回数据的数据类型除了构造方法 一般要求返回类型 要么为void 要么为某种数据类型int byte float或String最多只能返回一个值方法名 任何一个合法的标识符参数列表 用逗号 分隔开 2020 03 02 9 返回控制 如果没有值返回 return 退出该方法或者遇到该方法的最后一个 则退出该方法如果有值返回 return表达式 退出该方法返回该表达式的值 2020 03 02 10 构造方法 构造方法在创建新的实例对象时起作用构造方法通常用来初始化实例对象 例如 初始化成员域或设置工作环境构造方法的特点 与类同名没有返回值可以含有多种构造方法 重载 但必须具有不同的参数列表 2020 03 02 11 默认的构造方法 如果没有显式地定义类的构造方法 则系统会为该类定义一个默认的构造方法 该构造方法不含任何参数 这个默认的构造方法首先调用其父类的不含任何参数的构造方法 然后初始化新生成的实例的各个成员域变量默认值 基本数值类型 0 boolean false 引用数据类型 null最好自己写构造方法一旦在类中定义了构造方法 系统就不会再创建这个默认的不含参数的构造方法 2020 03 02 12 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 13 继承性 继承性 软件重用的一种方法根据已有的类创建新的类采纳了旧的类的属性 域 及其行为 方法 增加了新的能力子类继承父类子类增加了新的成员域或新的成员方法有时可以理解成 但不绝对 子类对象是一种特殊的父类对象 2020 03 02 14 继承性的实现 采用关键字extendspublicclassJ HelloAppletextendsApplet 类J HelloApplet结束 2020 03 02 15 关键字 instanceof 运算符 instanceof例如 if pinstanceofCircle 上面的条件为true 当且仅当引用p所指向的对象是类Circle 或其子类 的实例对象 2020 03 02 16 多重继承 在有些计算机语言中 允许一个类有多个直接父类 这种继承关系称为多重继承Java不支持多重继承Java允许一个类有多个直接父接口 interface 2020 03 02 17 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 18 多态性 优点 代码重用简化设计 简化代码便于程序扩展 2020 03 02 19 多态性的种类 静态的多态性 重载动态的多态性 覆盖 2020 03 02 20 静态的多态性 重载 在编译时就能够被识别针对的是同一个类内的同名方法例如 publicintsquare intx returnx x publicdoublesquare doublex returnx x 2020 03 02 21 识别重载方法 识别标志 参数的个数 类型 数据类型的排列顺序返回值不能做为识别的标志 2020 03 02 22 动态多态性 覆盖 在程序运行时才被识别重写父类的方法要求相同的声明例如 publicclassJ HelloAppletextendsJApplet publicvoidpaint Graphicsg g clearRect 0 0 getWidth getHeight 清除背景g drawString 小应用程序 您好 10 20 方法paint结束 类J HelloApplet结束 2020 03 02 23 源程序 J Teacher Java 文件名 J Teacher java 开发者 雍俊海classJ Employee publicintm workYear 工作的年限publicJ Employee m workYear 1 J Employee构造方法结束publicvoidmb printInfo System out println 该职工的工作年限为 m workYear 方法mb printInfo结束 类J Employee结束 2020 03 02 24 publicclassJ TeacherextendsJ Employee publicintm classHour 授课的课时publicJ Teacher m classHour 96 J Teacher构造方法结束publicvoidmb printInfo System out println 该教师的工作年限为 m workYear System out println 该教师授课的课时为 m classHour 方法mb printInfo结束publicstaticvoidmain Stringargs J Employeea newJ Employee a mb printInfo a newJ Teacher a mb printInfo 方法main结束 类J Teacher结束 源程序 J Teacher Java 2020 03 02 25 编译 运行 结果 2020 03 02 26 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 27 包 可以将一组相关的类或接口封装在包 package 里 从而更好地管理已经开发的Java代码包含组织类与接口的目录结构方便程序重用 2020 03 02 28 Java包 Java系统提供了很多已经写好的包数学计算 输入 输出 字符串操作尽量利用已有的包 避免重复工作使用包中类利用import语句指定类的位置例如 importjavax swing JApplet 2020 03 02 29 包 包java langjava lang Objectjava lang Math包java utiljava util Random 2020 03 02 30 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 31 类成员的封装性 成员 域或方法 的访问控制方式 1 public2 private3 protected4 default 缺省方式 2020 03 02 32 成员的访问控制方式 public 则该成员可以被任何类中的方法访问表明对外开放的方式少量 或者没有 public域部分public方法 2020 03 02 33 成员的访问控制方式 private 目的 隐藏具体的实现细节只有同一个类的成员方法才能访问私有成员域常常是private采用public get 方法 读取数据采用public set 方法 写数据 2020 03 02 34 成员的访问控制方式 protected 介于public和private之间同一个包内的所有类的所有方法都能访问该成员如果不在同一个包内的类的方法要访问该成员 则该类必须是该成员所在的类的子类 2020 03 02 35 成员的访问控制方式 default 缺省方式 只有在同一个包内的类的方法才能访问该方法 2020 03 02 36 类成员封装性总结 2020 03 02 37 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 38 abstract Java允许定义抽象 abstract 的类和方法抽象 abstract 的方法可以只提供方法的头部 但不提供实现的部分抽象 abstract 的方法只能是抽象 abstract 类中的方法例如 publicabstractclassJ VehiclepublicabstractclassJ Shape publicabstractvoidfuel publicabstractvoidmb draw 2020 03 02 39 关键字 static 静态的 static 域和静态的 static 方法实际上隶属于类对象静态的 static 域示例 System out静态的 static 方法示例 main 示例 Math sqrt publicstaticdoublesqrt doublea 2020 03 02 40 关键字 final 可以修饰的对象 final域final方法final类 2020 03 02 41 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 42 接口 interface 接口 interface 就象是一种特殊的类成员方法 abstract成员域 final和static接口 interface 中所有的方法和域必须都是public的每个接口一般定义在一个 java文件中 2020 03 02 43 示例 例1 通过接口定义一些常量publicinterfaceJ Constants publicstaticfinalintONE 1 publicstaticfinalintTWO 2 publicstaticfinalintTHREE 3 接口J Constants结束例2 interfaceJ Shape publicabstractvoidmb draw Graphics2Dg 接口J Shape结束 2020 03 02 44 注意事项 接口中成员方法的默认方式是public和abstract接口中成员域的默认方式是public static和final 2020 03 02 45 优点 一个类可以继承多个接口例如 publicclassAextendsBimplementsC D 2020 03 02 46 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 47 内部类 定义在其它类内部的类称为内部类内部类有些类似于类的成员域或成员方法 2020 03 02 48 匿名内部类 没有类名常常用在图形用户界面设计 GUI 中 进行各种事件处理例如 鼠标事件 按钮事件和键盘事件等 2020 03 02 49 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 50 变量的作用域范围 作用域范围 程序中能够使用该变量 域与局部变量 的范围分类 类作用域范围和块作用域范围 2020 03 02 51 类作用域范围 从类定义的第一个 开始 到最后一个 结束超出类的范围 类的成员方法不能直接通过它的名称进行访问例如 成员域 2020 03 02 52 块作用域范围 从变量声明之处 到该块的最后一个 例如 局部变量与成员方法的参数 2020 03 02 53 值传递示例 编写一个程序用来说明 Java方法调用过程中 值传递方式 2020 03 02 54 源程序 文件名 J Primitive java 开发者 雍俊海publicclassJ Primitive publicstaticvoidmb method inta System out println 在a 之前方法参数a a a System out println 在a 之后方法参数a a 方法mb method结束publicstaticvoidmain Stringargs inti 0 System out println 在方法调用之前变量i i mb method i System out println 在方法调用之后变量i i 方法main结束 类J Primitive结束 2020 03 02 55 编译 运行 结果 编译命令为 javacJ Primitive java执行命令为 javaJ Primitive最后执行的结果为 在方法调用之前变量i 0在a 之前方法参数a 0在a 之后方法参数a 1在方法调用之后变量i 0 2020 03 02 56 本章总体纲要 类 域 方法和实例对象继承性多态性包 package 封装性关键字abstract static final和this接口内部类变量作用域范围和参数传递方式面向对象程序设计基本思想 2020 03 02 57 示例 编写一个程序用来说明 求解矩形和圆面积 2020 03 02 58 按对象进行分解 编写文件J Shape java 实现接口J Shape编写文件J Circle java 实现类J Circle继承自接口J Shape编写文件J Rectangle java 实现类J Rectangle继承自接口J Shape编写文件J Area java 实现类J Area计算矩形和圆面积利用类J Circle和类J Rectangle 2020 03 02 59 源程序 J Shape java 文件名 J Shape java 开发者 雍俊海publicinterfaceJ Shape 计算并返回形状的面积publicabstractdoublemb getArea 接口J Shape结束 2020 03 02 60 源程序 J Circle java 文件名 J Circle java 开发者 雍俊海 待续 publicclassJ CircleimplementsJ Shape publicdoublem x m y 圆心坐标publicdoublem radius 半径publicJ Circle doubler m x 0 m y 0 m radius r J Circle构造方法结束 2020 03 02 61 源程序 J Circle java 文件名 J Circle java 开发者 雍俊海 续 publicJ Circle doublex doubley doubler m x x m y y m radius r J Circle构造方法结束 计算并返回形状的面积publicdoublemb getArea return Math PI m radius m radius 方法mb getArea结束 类J Circle结束 2020 03 02 62 源程序 J Re

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论