T12 面向对象之封装ppt课件.ppt

T12 面向对象之封装ppt课件.ppt

ID:59414605

大小:2.02 MB

页数:31页

时间:2020-09-19

T12 面向对象之封装ppt课件.ppt_第1页
T12 面向对象之封装ppt课件.ppt_第2页
T12 面向对象之封装ppt课件.ppt_第3页
T12 面向对象之封装ppt课件.ppt_第4页
T12 面向对象之封装ppt课件.ppt_第5页
资源描述:

《T12 面向对象之封装ppt课件.ppt》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、用对象思考:属性和方法面向对象之封装回顾小汽车、奔驰汽车和楼下那辆奔驰S500汽车。哪个是类,哪个是对象?声明一个方法不需要返回值的关键字是什么?2目录构造函数属性static3类和对象小汽车颜色:灰色排量:3.0刹车产地:德国行驶名字:保时捷行为状态类的实例化,是由类具体化对象类产地车体颜色行驶刹车…归纳一组相似对象的共性对象字段方法什么是类?4类和类的成员publicclassStudent{int_age=26;//姓名privatestring_name;publicstring_name{get{return_name;}set{_name=value;}

2、}//问候publicvoidSayHi(){…}}类的成员字段属性方法…类名5数据安全staticvoidMain(string[]args){studentmyStudent=newstudent();myStudent._age=-2;myStudent._idNumber="123456";}非法数据身份证号不能被修改无法获得数据无法正常赋值有时候将类中的字段公开是不安全的如果设为私有成员能否对这些字段进行规则约束或者只读呢?6在类中使用属性privateint_age;//年龄publicintAge{get{return_age;}set{if(valu

3、e>0&&value<100){_age=value;}else{_age=18;}}}myStudent.Age=-20;…//打印myStudent.Age=40;…//打印没有访问age公开Age录入非法数据打印私有变量age不公开age通过公有Age访问和约束私有字段age7什么是属性C#不直接访问类的数据通过访问器访问(get,set)classStudent{//姓名privatestring_name;publicstringName{get{return_name;}set{_name=value;}}}返回_nameget用于获取相应字段的值set

4、用于设置字段的值只有get时:只读属性只有set时:只写属性get和set都存在:读写属性属性的类型和字段类型必须一致。给_name赋值属性是对字段的扩展,它通过属性访问函数来控制对字段的访问.8属性的特点privateint_age;//年龄publicintAge{get{return_age;}set{if(value>0&&value<100){_age=value;}else{_age=18;}}}控制私有字段的可访问性保护内部数据的安全建议类内部敏感字段使用属性来控制访问类型可以是各种数据类型,如:对象、数组等等9封装字段将类中的字段、属性绑到一起封装字

5、段封装是面向对象的三大特性之一避免非法数据的访问保证数据的完整性演示:在VS中使用重构——封装字段10小结编写Student类包含的属性年龄(0-100)不符合的设为18姓名(只读属性)爱好(读写)给属性赋值并显示出来11目录static构造函数属性12为什么需要构造方法2-1开发学生类Student1,要求:具有字段:姓名、年龄、家庭住址具有行为:打招呼classStudent1{privatestring_name;//姓名privateint_age;//年龄privatestring_hobby;//家庭住址//封装以上字段publicstringName{

6、get{return_name;}set{_name=value;}}//其它封装字段略//打招呼publicvoidsayHello(){MessageBox.Show(“大家好,我是”+_name+“,今年”+_age+“岁,喜欢"+_hobby);}}13为什么需要构造方法2-2编写一个测试类,要求:实例化一个学生对象,并对其初始化输出该学生的自我介绍publicclassStudent1Test{publicstaticvoidmain(string[]args){Student1stu1=newStudent1();stu1.Name="张三";stu1.

7、Age=20;stu1.Hobby=“画画";stu1.sayHello();}}要简化对象初始化的代码,可以通过构造方法来解决大家好!我是张三,我今年20岁,喜欢画画Student1中有太多的字段及对应的属性,在初始化时,很容易就忘记了,有没有可能简化对象初始化的代码?14构造函数Studentzhang=newStudent();zhang._name="张靓靓";zhang.Age=20;zhang.Hobby="唱歌歌";班级来了新学员添加学员对象学员类实例化对象、设置属性初始属性若太多,设置麻烦能否在实例化时设置属性?publicStudent(str

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。