




已阅读5页,还剩29页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第七章 类的属性 回顾与作业点评 找出下面代码中的错误 intarray newint 4 0 1 2 3 4 foreach int arryIteminarray Console WriteLine arryItem 位置错误 int array newint 5 0 1 2 3 4 foreach intarryIteminarray Console WriteLine arryItem 数组长度错误 变量类型错误 3 回顾 类和对象的区别是什么 publicclass Student stu name stu sex stu age 实现输出学生信息 下面代码有哪些错误 回顾 结合上期的知识 小汽车 奔驰汽车和楼下那辆奔驰S500汽车 哪个是类 哪个是对象 声明一个方法不需要返回值的关键字是什么 预习检查 创建属性通过哪两个访问器 本章任务 使用属性封装年龄字段使用属性封装身份证字段使用属性封装MyBank字段实现计算一组数的奇偶个数 本章目标 掌握C 中的访问修饰符掌握C 中的属性 生活中的访问级别 什么是访问级别 C 中的访问修饰符private 某些敏感字段只希望在类内部使用怎么办 publicclassEmployee publicdoublepay 3000 publicvoidShowPay Console WriteLine 您的工资等级是 0 payLevel Console ReadLine 不被其它类使用 privatedoublepay 3000 私有成员 公有成员 示例1代码分析 关键代码回顾 publicclassStudent 姓名privatestring name 王丽丽 定义成private的字段 其他类访问不到 classProgram staticvoidMain string args Studentstu newStudent stu name Lili 强制访问 无法访问编译错误 C 中的访问修饰符 C 中的访问修饰符 12 访问修饰符2 1 Teacher类 private成员 protected成员 public成员 internal成员 Student类 只有Student类在Teacher类都在同一程序集中 才可访问internal成员 不可访问 不可访问 可以访问 13 访问修饰符2 2 14 公有成员和私有成员 classstudent privatestringname 姓名publicintage 年龄publicstringidNumber 身份证号 staticvoidMain string args studentmyStudent newstudent myStudent name 张三 myStudent age 20 私有成员 公有成员 实例化一个对象 可以访问 演示示例1 访问修饰符 无法访问编译错误 15 数据安全 staticvoidMain string args studentmyStudent newstudent myStudent age 2 myStudent idNumber 123456 非法数据 身份证号不能被修改 无法获得数据 无法正常赋值 有时候将类中的字段公开是不安全的 如果设为私有成员 能否对这些字段进行规则约束或者只读呢 能否对 age设成可读且只能赋值为1 100呢 使用方法解决数据安全问题 privateint age publicint方法1 returnthis age publicvoid方法2 int参数 if 参数100 this age 18 else this age 参数 1 使用者不可直接操作 age2 用方法返回 age供读取3 用方法限制使用者的非法赋值 什么是属性2 1 privateint age publicintAge get return age set if value100 age value else age 18 通过公有Age访问和约束私有字段 age 字段 属性 相当于方法的参数 返回 age 给 age赋值 通过get和set访问 什么是属性2 2 classStudent privatestringname publicstringName get returnname set name value get用于获取相应字段的值 set用于设置字段的值 只有get时 只读属性 只有set时 只写属性 get和set都存在 读写属性 可以是任何数据类型 但类型必须一致 属性的使用 myStudent Age 20 输出 myStudent Age 40 输出 没有访问age 录入非法数据 输出myStudent Age 属性的作用 privateint age publicintAge get return age set if value100 age 18 else age value 控制私有字段的可访问性 保护内部数据的安全 建议 类内部敏感字段使用属性来控制访问 封装字段 将类中的字段 属性绑到一起 封装字段 避免非法数据的访问 保证数据的完整性 封装是面向对象的三大特性之一 类的成员 我们学习了哪些类的成员 小结 参考答案 使用属性封装身份证号字段并使用输出语句测试身份证号必须为18位 否则重置为 0000 0000 0000 0000 00 练习 使用属性封装MyBank字段 需求说明 使用属性封装User里的所有字段User成员字段 账户名 密码 身份证号 账户余额 账号行为方法 取款操作 存款 完成时间 10分钟 使用属性 属性与字段 变量一样 用于表达式中 进行取值或赋值 例如 Console WriteLine 已创建半径为 aCircle Radius 的圆 Console WriteLine 目前圆对象个数为 Circle NumCircles 在所在类的外部使用属性 也要加上前缀 实例属性 要用对象名作前缀 例如aCircle Radius 静态属性 要加上类名作前缀 例如Circle NumCircles 在所在类的内部使用属性 可以不加前缀 也可以加上前缀 读取属性值时 程序执行属性get访问器中的代码 属性赋值时 程序执行属性set访问器中的代码 所赋的新值自动传给内建的value参数 属性的局限 1 除了get set访问器之外 属性不能包含其他并列的代码块 2 除了set访问器内建的value参数 get set访问器不能获取别的参数 3 不能声明const属性 4 不能将属性作为一个ref或out参数 但字段可以 自动实现属性 系统提供了自动生成属性set和get访问器代码块的机制 自动实现属性的一般形式 访问修饰符可选static类型属性名 get set 自动实现的属性必须同时声明get和set访问器 如果要创建只读的自动实现属性 则可声明private的set访问器 例 建立控制台应用程序项目 编写能自动实现属性的矩形类 计算矩形面积和周长 统计矩形对象个数 classRectangle 自定义矩形类 publicdoubleLength get set publicdoubleWidth get set publicstaticintNumRectangles get privateset 在Program类中编写Main方法代码 stringinputString doublelength width area girth while true Console Write 请输入矩形的长度 直接按回车键退出程序 inputString Console ReadLine if inputString break else RectangleaRectangle newRectangle length width Console WriteLine 已创建矩形对象个数 Rectangle NumRectangles 自动实现的属性 自动实现的属性 编译时自动生成了对应的私有字段及访问器代码 例如例7 6的矩形长度属性 publicdoubleLength get set 编译时系统在类Rectangle内部自动生成了如下代码 privatedouble length publicdoubleLength get return length set length value 自动实现的属性 由系统生成的访问器代码块语句是很简单的 不可能包含复杂的逻辑功能 例7 7 建立控制台应用程序项目 编写在长度和宽度属性中限制出现负数的矩形类 修改例7 6项目中的矩形类Rectangle 部分代码如下 privatedouble length width 私有的矩形长度 宽度字段publicdoubleLength 长度属性 get return length set if value 0 thrownewException 矩形的长度不能为负数 else length value publicRectangle doublelength doublewidth 构造函数 Length length Width width NumRectangles 31 小结 编写MySchool中的Student类包含的属性年龄 0 100 不符合的设为18姓名 只读属性 爱好 读写 给属性赋值并打印出来 this关键字的作用 C 中this关键字有什么作用 privatestringname 姓名publicvoidSetName stringname this name name 名字相同 this调用的是成员变量 C 中的this关键字 C 中this关键字的使用 publicclassStudent 姓名privatestring name publicvoidSetName this name 王丽丽 this 当前实例 通过this可以访问当前类的所有成员变量和方法 直接设定属性构建对象 不显式调用构造函数 直接设置对象属性初始值构建对象 new类名 属性名1 值 属性名2 值 大括号内 不必列出所有属性的赋值 没列出的取默认值 例7 8 建立控制台应用程序项目 直接设定矩形对象的长 宽属性值构建矩形对象 矩形类Rectangle代码与例7 6一样 编写Main方法代
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家乐园楼层管理制度
- 家用制氧机管理制度
- 应急储备点管理制度
- 强化清单制管理制度
- 待处置车辆管理制度
- 微量泵使用管理制度
- 心电图感染管理制度
- 快递员物料管理制度
- 急诊VTE管理制度
- 患者入出院管理制度
- 中学学生心理健康教育个案辅导记录表
- 护理带教角色转换实践路径
- 2025年安全生产考试题库(行业安全规范)-水上安全试题汇编
- 2025年05月四川阿坝州级事业单位公开选调工作人员78人笔试历年典型考题(历年真题考点)解题思路附带答案详解
- 2025-2030中国硫酸钙晶须行业市场发展现状及竞争格局与投资发展研究报告
- 2025届中考地理全真模拟卷 【山东专用】(含答案)
- 沿街商铺转让合同协议书
- 法律职业伦理历年试题及答案
- 2025小升初人教版六年级英语下学期期末综合测试模拟练习卷
- 保洁台账管理制度
- Seldinger穿刺技术课件
评论
0/150
提交评论