




已阅读5页,还剩42页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第3章Java与面向对象编程 本章内容提要 面向对象的程序设计方法力求符合人脑的思维方式 通过符合人类思维的更抽象的客观世界模型 降低 分解问题的难度和复杂性 并以此来解决问题 与结构化的程序设计方法有何区别 3 面向对象基础 面向对象的基本原理面向对象方法学是面向对象程序设计技术的理论基础 该理论的出发点和基本原则 是尽可能模拟人类习惯的思维方式 使开发软件的方法与人类的认知过程同步 通过对人类认识客观世界及事物发展过程的抽象 建立规范的分析设计方法 由此使程序具有良好的封装性 可读性 可维护性 可重用性等一系列优点 3 面向对象基础 面向对象的基本概念1 对象对象就是现实世界中实体在计算机逻辑中的映射和体现 实体都具有一定的属性和行为 从面向对象的观点来看 所有的面向对象的程序都是由对象构成的 3 面向对象基础 2 类类就是具有相同或相似属性和行为的对象的抽象 在面向对象的程序设计中 类与对象是抽象与具体的关系 3 面向对象基础 3 属性对象的属性主要用来描述对象的状态 属性用变量来定义 4 行为对象的行为又称为对象的操作 主要描述对象内部的各种动态信息 行为用方法来刻画 3 面向对象基础 面向对象编程的特点1 封装封装 就是将事物的内部实现细节隐藏起来 对外提供一致的公共的接口间接访问隐藏数据 优点 使得Java程序具有良好的可维护性使得代码的重用性大为提高 3 面向对象基础 2 继承当一个类拥有另一个类的数据和操作时 就称这两个类具有继承关系 被继承的类称为父类或超类 继承父类的类称为子类 继承有单重继承和多重继承之分 优点 使得面向对象的程序结构清晰 易于理解 3 面向对象基础 3 多态多态指多种表现形式 就是对象响应外部激励而使其形式发生改变的现象 多态有两种情况 一种是通过类之间继承导致的同名方法覆盖体现的 另一种是通过同一个类中同名方法的重载体现的 优点 提高了程序的抽象程度和简洁性 3 面向对象基础 类的结构 class extends implements 类体成员变量定义 成员方法定义 在类的声明格式中 内部的内容表示可选的 可以根据需要有选择的进行编写 3 2类 1 类的声明类的声明由修饰符 关键字class 类名 继承父类 实现接口五部分构成 例如 classStudent 定义类Student intstu name 定义类属性stu name 3 2类 1 继承父类关键字extends表示当前类是已经存在的某个类的子类 Java语言中只允许单一继承 类通常不需要从头生成 他们可以从其他的类派生而来 继承祖先类的可用类成员 即使是从头创建的新类也必须继承Object类 3 2类 2 实现接口关键字implements表示当前类实现了某个接口定义的功能或方法 接口是和类相似一种Java程序的基本单元 是Java程序用来实现多重继承的一种特殊机制 3 2类 3 修饰符 3 2类 2 类体class 通常 Java中把成员变量放在方法前面定义 3 2类 成员变量在类体中并且在方法之外定义的变量称为成员变量 修饰符 变量类型变量名 例如 IntegerstuAge intage 9 3 2类 1 访问控制权限public private及protected2 静态变量修饰符又被称为类变量 静态变量用关键字static表示 3 常量修饰符指在程序中不能被改变的变量 常量用关键字final表示 3 2类 成员方法1 方法定义方法也由两部分组成 即方法头和方法体 throws 3 2类 1 方法修饰符方法修饰符控制方法在什么条件下使用以及如何使用 包括public 公有的 private 私有的 及protected 保护的 2 返回值类型返回值类型可以是基本数据类型 应用类型 引用类型 以及void 空类型 3 2类 3 方法名 4 形参列表形参列表是以 分开的 参数的数据类型和变量名的列表 5 throws方法的异常列表定义了可能抛出的各种异常 3 2类 2 方法体方法的功能实现部分 主要由局部变量和语句构成 方法体也可以是空的 即没有任何变量和语句 例如 voidsetName Stringname 例3 1 方法的定义 3 2类 构造方法 1 构造方法的方法名与类名相同 2 构造方法不允许声明返回值 3 构造方法的作用是完成对类对象的初始化 4 构造方法只能通过new运算符调用 不能通过对象或类调用 5 一个类可以定义多个构造方法 3 2类 例3 2 构造方法的定义构造方法的作用 1 为每个新建的对象赋初始值 从而保证每一个新建的对象处于合理正常的状态 2 引入更多的灵活度 使得初始化工作不仅仅包括成员变量的赋值 还可以有更复杂的操作 3 2类 对象创建1 声明对象typeobjectname 例如 Studentxiaolin 3 3对象 xiaolin 2 建立对象并初始化实际上就是将一个类实例化 这是通过new关键字来完成的 例如 newStudent 小林 1001 12 3 3对象 对象引用被赋值后 将指向一个真正的对象 即对象引用的内存空间中存储这个新建立对象的内存空间的首地址 那么通过对象引用就可以访问这个对象的所有可以访问的成员了 3 3对象 通过同一个类模板可以声明多个对象引用 也可以建立并初始化多个对象 Studentxiaolin xiaofei xiaolin newStudent 小林 1001 12 xiaofei newStudent 小飞i 1002 16 Studentxiaoqiang xiaolin 3 3对象 例3 3 创建对象判断对象a的引用是否存在 a null或a null 判断a b两个对象的引用是否相等 a b 判断a b两个对象的值是否相等 a equals b 3 3对象 使用对象有两种方式使用对象 一是通过对对象变量的引用来使用对象 objectRenference variable 二是通过调用对象的方法来使用对象 objectRenference methodName paramlist 3 3对象 例3 4 使用对象 3 3对象 姓名 王非学号 10011学院编号 11姓名 黎明学号 10012学院编号 12 释放对象Java中 对象使用的内存空间的释放是自动完成的 不需要在编码时考虑对象的释放问题 Java运行系统具有所谓的 垃圾回收机制 垃圾回收器 garbagecllectors GC 在后台运行 定时查看所有对象 识别那些不再被引用的对象 垃圾 给予释放 回收分配给这些对象的内存 3 3对象 对象引用与对象实体对象引用和对象实体是相互独立的 例3 5 通过对象引用遥控对象实体 3 3对象 学生 小明学生 小明学生 小强学生 小强null 为了更好的管理这些类 Java引入了包的概念 包是一种类似于文件夹的一种组织形式 包把各种类组织起来 一方面对类的命名空间进行管理 另一方面作为隐含的访问控制修饰符 是信息隐藏和封装的有力工具 3 4包 包的概念为了方便管理 通常将需要在一起工作的类放在一个包中 只要包名是惟一的 那么包中的类就有了惟一的类全名 包的引入解决了类名冲突问题 包是一种多层次的组织结构 其成员有子包 类和接口 3 4包 创建包创建包需要使用关键字package 其一般的格式和语法为 package包名 这条语句必须位于源文件的第一行 并且在同一个源文件中只能编写一条package语句 例如 packagenewpackage packagesociety family 例3 7 创建包 3 4包 导入包1 使用类全名 例3 8 使用类全名 3 4包 A010010A110111A210212A310313A410414 2 导入需要的使用的类利用import关键字 将需要使用的类导入到当前程序中 例3 9 导入需要的类 3 4包 3 导入整个包包中的所有的类都被加载到当前文件中 例如 importschools 所有的Java程序自动导入java lang包 因此 importjava lang 语句可以省略不写 另外编译器在查找需要的类时有特定的查找顺序 先是Java基本类库中的类 后是用户自定义的类 3 4包 Java有四种类成员的访问控制形式 分别为缺省的 默认的 公有的 保护的 私有的 类的每个成员都有自己的访问修饰符 但最多只能使用一个访问修饰符 并且访问修饰符必须放在其他修饰符之前 如果类不可访问 则其成员也不可访问 因此讨论类成员的访问控制的前提必须是类是可访问的 3 5类成员的访问控制权限 1 private修饰符private修饰的成员变量和方法仅能在其类的方法中被访问 其他类无法直接访问 例3 10 私有成员的定义和使用 3 5类成员的访问控制权限 falsexiaoming 1000 xiaoming 1001 2 无修饰符如果成员没有指定任何访问修饰符 则表示该成员具有缺省的访问权限 3 protected修饰符protected修饰符表示成员的访问权限局限在同一个包的其他类以及其子类 可以属于其他包 中 3 5类成员的访问控制权限 4 public修饰符public修饰符表示类成员公用的 为了使程序具有良好易读的风格 建议最好在编写类代码时用不同的可访问性来组织类成员 并将public成员作为对外公布的接口放在最前面 以便引起关注 3 5类成员的访问控制权限 类变量被所有的类的所有实例共享的变量称为类变量 classvariable 类变量用修饰符static描述 例3 11 类变量的定义 3 6数据共享 122 类变量的访问类变量不依赖于对象 例3 12 直接通过类名访问类变量 3 6数据共享 1222 类方法类方法 classmeth
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 中医试卷试题及答案护理
- 2025年环保产业环保技术报告:环保技术发展趋势与市场应用前景
- 在线编程教育平台用户体验提升与满意度分析
- 2025年事业单位工勤技能-安徽-安徽放射技术员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽地图绘制员一级(高级技师)历年参考题库含答案解析
- 2025年事业单位工勤技能-安徽-安徽假肢制作装配工一级(高级技师)历年参考题库含答案解析
- 石油采购面试实战模拟题及答案
- (完整)工厂车间三级安全教育培训试题及答案
- 求职路上捷径指南:双选招聘面试题及答案解析职业选择策略
- 植物肉行业面试实战模拟题及答案食品营养与健康领域招聘
- 混凝土搅拌站实验室质量管理手册(正本)
- 消防应急灯安装工程安装方案
- DB35T 2078-2022 沼液还田土地承载力测算技术规范
- 供货及时性保证措施
- 医院污水处理运维服务投标方案(技术方案)
- 雅马哈RX-V365使用说明书
- 2023-2024学年江苏省盐城市盐都区八年级(下)期末物理试卷(含答案)
- (1000题)中级消防设施操作员模拟试题及答案
- 预制箱梁架设监理实施细则
- JTG-QB-003-2003公路桥涵标准图钢筋混凝土盖板涵
- (高清版)JTG 6310-2022 收费公路联网收费技术标准
评论
0/150
提交评论