




已阅读5页,还剩23页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
面向对象的Java实现 封装 第一章 2 课程地位 3 相关课程回顾 publicclassTest publicstaticvoidmain String args for inti 0 i 10 i System out println i System out println i 10 请举例说明类与对象的区别与联系 超出了变量i的访问范围 请指出下列Java代码中存在的错误 并改正 4 就业技能结构图 5 预习检查 举例说明什么是方法重载 Java中的构造方法与实例方法 有什么区别 6 本章任务 升级HelloACCP 输出ACCP5 0教员的自我介绍 对属性进行封装用构造方法实现对象成员的初始化对构造方法进行重载 7 理解封装的概念掌握private关键字掌握构造方法掌握方法重载 本章目标 8 为什么需要封装2 1 编写一个类 代表ACCP5 0教员 要求 具有属性 姓名 年龄具有行为 自我介绍ACCP5 0教员的最小年龄要求 22岁 publicclassAccpTeacher1 publicStringname 教员姓名publicintage 年龄 返回自我介绍的内容 publicStringintroduction return 大家好 我是 name 我今年 age 岁 9 为什么需要封装2 2 编写一个测试类 要求 实例化一个教员对象 并对其初始化在控制台输出该教员的自我介绍 publicclassAccpTeacher1Test publicstaticvoidmain String args AccpTeacher1teacher newAccpTeacher1 teacher name 李芳 teacher age 10 System out println teacher introduction 要满足教员的最小年龄要求 可以通过对属性的封装来实现 10 什么是封装 publicclassAccpTeacher2 privateStringname 教员姓名 返回教员姓名publicStringgetName returnname 设定教员姓名publicvoidsetName Stringname this name name 封装 就是隐藏实现细节将属性私有化 提供公有方法访问私有属性通过这些公有方法访问私有属性 AccpTeacher2teacher newAccpTeacher2 teacher setName 李芳 StringtName teacher getName 通过setter getter方法访问name属性 this代表当前类的实例 11 如何实现封装2 1 封装的实现 1 修改属性的可见性来限制对属性的访问2 为每个属性创建一对赋值 setter 方法和取值 getter 方法 用于对这些属性的访问3 在setter和getter方法中 加入对属性的存取限制 publicclassAccpTeacher3 privateStringname 教员姓名privateintage 年龄publicintgetAge returnage publicvoidsetAge intage if age 22 System out println 错误 最小年龄应为22岁 this age 22 如果不符合年龄要求 则赋予默认值 else this age age 此处省略对name属性的setter getter方法 1 2 3 12 如何实现封装2 2 publicclassAccpTeacher3Test publicstaticvoidmain String args AccpTeacher3teacher newAccpTeacher3 teacher setName 李芳 teacher setAge 10 System out println teacher introduction 使用封装 增加了数据访问限制 增强了程序的可维护性 错误 最小年龄应为22岁 大家好 我是李芳 我今年22岁 测试类通过调用setter方法 为对象的各个属性赋值 13 小结1 使用private关键字修饰某个成员变量后 这个成员变量可以被同一包中的其它类访问吗 在Java程序中 代码封装带给我们的好处是什么 14 小结2 请通过代码封装 实现如下需求 编写一个类Book 代表教材 具有属性 名称 title 页数 pageNum 其中页数不能少于200页 否则输出错误信息 并赋予默认值200为各属性设置赋值和取值方法具有方法 detail 用来在控制台输出每本教材的名称和页数编写测试类BookTest进行测试 为Book对象的属性赋予初始值 并调用Book对象的detail方法 看看输出是否正确 完整代码实现 15 为什么需要构造方法2 1 开发ACCP5 0教员类AccpTeacher4 要求 具有属性 姓名 年龄 学历 职位具有行为 自我介绍 publicclassAccpTeacher4 privateStringname 姓名privateintage 年龄privateStringeducation 学历privateStringposition 职位publicStringintroduction return 大家好 我是 name 我今年 age 岁 学历 education 目前职位是 position publicStringgetName returnname publicvoidsetName StringmyName name myName 以下是其他属性的setter getter方法 此处省略 16 为什么需要构造方法2 2 编写一个测试类 要求 实例化一个教员对象 并对其初始化在控制台输出该教员的自我介绍 publicclassAccpTeacher4Test publicstaticvoidmain String args AccpTeacher4teacher newAccpTeacher4 teacher setName 李芳 teacher setAge 23 teacher setEducation 本科 System out println teacher introduction 要简化对象初始化的代码 可以通过构造方法来解决 大家好 我是李芳 我今年23岁 学历本科 目前职位是null AccpTeacher4中有太多的属性及对应的setter方法 在初始化时 很容易就忘记了 有没有可能简化对象初始化的代码 17 什么是构造方法 构造方法负责对象成员的初始化工作 为实例变量赋予合适的初始值构造方法必须满足以下语法规则 1 方法名与类名相同2 没有返回类型 publicclassAccpTeacher5 privateStringname 教员姓名 构造方法publicAccpTeacher5 name 无名氏 publicclassAccpTeacher5Test publicstaticvoidmain String args AccpTeacher5teacher newAccpTeacher5 使用new关键字调用构造方法 18 带参数的构造方法2 1 通过带参数的构造方法 显式地为实例变量赋予初始值 publicclassAccpTeacher6 privateStringname 教员姓名privateintage 年龄privateStringeducation 学历privateStringposition 职位 带参数的构造方法publicAccpTeacher6 StringpName intpAge StringpEducation StringpPosition name pName age pAge 可以增加对age等属性的存取限制条件education pEducation position pPosition publicStringintroduction return 大家好 我是 name 我今年 age 岁 学历 education 目前职位是 position 19 带参数的构造方法2 2 通过调用带参数的构造方法 简化对象初始化的代码 publicclassAccpTeacher6Test publicstaticvoidmain String args AccpTeacher6teacher newAccpTeacher6 李芳 23 本科 咨询师 System out println teacher introduction 创建对象时 一并完成了对象成员的初始化工作 大家好 我是李芳 我今年23岁 学历本科 目前职位是咨询师 20 小结3 编写一个类Book2 代表教材 具有属性 名称 title 页数 pageNum 其中页数不能少于200页 否则输出错误信息 并赋予默认值200具有方法 detail 用来在控制台输出每本教材的名称和页数 具有带参数的构造方法 用来完成对象的初始化工作 并在构造方法中完成对页数的最小值限制编写测试类Book2Test进行测试 初始化一个Book2对象 并调用该Book2对象的detail方法 看看输出是否正确 完整代码实现 21 生活中的方法重载 类 方法 方法参数 方法实现 司机 轿车 巴士 火车 驾驶 启动 行驶 等待乘客上车 启动 行驶 到站停车 正点发车 行驶 到站停车 如果用代码实现 我们需要三个方法 这些方法的方法名称相同 参数类型不同 22 方法重载的代码示例1 方法重载并不陌生java io PrintStream类的println方法能够打印数据并换行 根据数据类型的不同 有多种实现方式 publicclassTest publicstaticvoidmain String args inti 0 charc z Stringstr hello System out println i System out println c System out println str PrintStream println int println char println String 方法名相同 参数类型不同 调用不同的println方法 方法重载 23 方法重载的代码示例2 java lang Math类的max 方法能够从两个数字中取出最大值 它有多种实现方式运行时 Java虚拟机先判断给定参数的类型 然后决定到底执行哪个max 方法 publicclassTest publicstaticvoidmain String args Math max 1 2 Math max 1 0F 2 F Math max 1 0 2 方法重载 24 构造方法重载2 1 构造方法重载是方法重载的典型示例 publicclassAccpTeacher7 privateStringname 教员姓名privateStringschool 北京中心 所在中心publicAccpTeacher7 Stringname this name name 设定教员姓名 publicAccpTeacher7 Stringname Stringschool this name name 设定教员姓名this school school 设定教员的所在中心 publicStringintroduction return 大家好 我是 school 的 name 构造方法重载 25 构造方法重载2 2 通过调用不同的构造方法来表达对象的多种初始化行为例如 默认情况下 教师来自北京中心 初始化时 只需提供教员姓名有时 需要提供所在中心名称及教员姓名 publicclassAccpTeacher7Test publicstaticvoidmain String args AccpTeacher7teacher1 newAccpTeacher7 李芳 System out println teacher1 introduction AccpTeacher7teacher2 newAccpTeacher7 张欣 天津中心 System out println teacher2 introduction 大家好 我是北京中心的李芳大家好 我是天津中心的张欣 26 小结4 编写一个类Book3 代表教材 具有属性 名称 title 页数 pageNum 种类 type 具有方法 detail 用来在控制台输出每本教材的名称 页数 种类具有两个带参构造方法 第一个构造方法中 设置教材种类为 计算机 固定 其余属性的值由参数给定 第二个构造方法中 所有属性的值都由参数给定编写测试类Book3Test进行测试 分别以两种方式完成对两个Book3对象的初始化工作 并分别调用它们的detail方法 看看输出是否正确 完整代码实现 27 给定如下Java代码 请指出
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 责任临床经验课件
- 2025版电子产品销售代理权转让及售后服务合同
- 2025保安公司专业巡逻外包服务合同
- 2025储油罐租赁合同:智慧储油罐租赁及智能监控系统协议
- 2025崇明危化品运输合同运输工具维护与保养服务范本
- 2025版全新网络安全检测企业员工保密协议与网络安全技术保护合同模板下载
- 2025彩钢装饰工程设计与施工一体化合同样本
- 2025版二手房买卖合同汇编:合同标的、租赁与转租条款解析
- 2025年防护栏新材料研发与应用合作合同
- 2025年度专业保安服务合同标准模板
- 校园天眼平台建设方案
- 山东省技能大赛青岛选拔赛-世赛选拔项目61样题(健康和社会照护)
- 餐饮加盟协议合同书
- 事业单位招聘综合类必看考点《管理常识》试题解析(2023年)
- T CEC站用低压交流电源系统剩余电流监测装置技术规范
- 办理宽带拆机委托书
- JJG 677-2006光干涉式甲烷测定仪
- 2024建筑工程监理表
- 胸部肿瘤放疗讲课
- 空乘服务语言艺术与播音技巧全套教学课件
- 小米公司物流与供应链管理案例分析课件
评论
0/150
提交评论