




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第二章,用对象思考:属性和方法,理解类与对象的概念理解属性和方法的概念能够定义一个简单的类,本章目标,对象,对象是人们要进行研究的任何事物,描述汽车的特征和行为,有各自不同的状态,类和对象,小汽车,类的实例化,是由类具体化对象,类,产地,车体颜色,行驶,刹车,归纳一组相似对象的共性,对象,属性,方法,类描述一组相似对象的共性,类和对象的应用,类和对象的简单应用,/Carferrari=NewCar();ferrari.Run();/,类,对象,实例化对象,调用方法,publicclassStudentintage=26;/姓名privatestringname;publicstringNamegetreturnname;setname=value;/问候publicvoidSayHi(),类和类的成员,类的成员,字段,属性,方法,类名,自定义一个类,自定义类DBHelper,classDBHelper/数据库连接字符串privatestaticstringconnString=;/数据库连接Connection对象publicstaticSqlConnectionconnection=newSqlConnection(connString);,访问修饰符,私有,公有,公有成员和私有成员,classstudentprivatestringname;/姓名publicintage;/年龄publicstringidNumber;/身份证号staticvoidMain(stringargs)studentmyStudent=newstudent();myS=张三;myStudent.age=20;,私有成员,公有成员,实例化一个对象,可以访问,演示示例1:访问修饰符,无法访问编译错误,数据安全,staticvoidMain(stringargs)studentmyStudent=newstudent();myStudent.age=-2;myStudent.idNumber=123456;,非法数据,身份证号不能被修改,无法获得数据,无法正常赋值,有时候将类中的字段公开是不安全的,如果设为私有成员,能否对这些字段进行规则约束或者只读呢?,在类中使用属性,privateintage;/年龄publicintAgegetreturnage;setif(value0,myStudent.Age=-20;/打印myStudent.Age=40;/打印,没有访问age,公开Age,录入非法数据,打印私有变量age,演示示例2:MyAttribute,不公开age,通过公有Age访问和约束私有字段age,什么是属性,C#不直接访问类的数据通过访问器访问(get,set),classStudent/姓名privatestringname;publicstringNamegetreturnname;setname=value;,返回name,get用于获取相应字段的值,set用于设置字段的值,只有get时:只读属性,只有set时:只写属性,get和set都存在:读写属性,属性的类型和字段类型必须一致。,给name赋值,属性的特点,privateintage;/年龄publicintAgegetreturnage;setif(value0,控制私有字段的可访问性,保护内部数据的安全,建议类内部敏感字段使用属性来控制访问,类型可以是各种数据类型,如:对象、数组等等,封装字段,将类中的字段、属性绑到一起,封装字段,封装是面向对象的三大特性之一,避免非法数据的访问,保证数据的完整性,演示:在VS中使用重构封装字段,小结,编写MySchool中的Student类包含的属性年龄(0-100)不符合的设为18姓名(只读属性)爱好(读写)给属性赋值并打印出来,在类中使用方法,方法是类或对象的行为对象需要做某些事情,在类中添加方法回顾方法的定义,访问修饰符返回类型方法名(参数列表)/方法的主体,通过return返回值,如果返回类型是void,方法是否需要返回值?,第一学期我们学习了几种参数传递方式?,方法的参数,回顾:参数传递使用值传递,参数值的更改不能保留。使用ref可以将参数值的更改保留out类型参数,privatestaticvoidAddScore(refintscore,outintscoreResult)if(score50,都可以输出结果,ref侧重修改,out侧重输出,不能写成AddScore(outintscoreResult),方法的使用,实现两个整型的加法,classAddpublicintSum(intpara1,intpara2)returnpara1+para2;,AddmyAdd=newAdd();intsum=myAdd.Sum(2,3);,使用方法,实例化一个对象,返回结果,演示示例3:方法的使用,调用方法,静态方法,classmySwappublicstaticvoidSwap(refintnum1,refintnum2)inttemp;temp=num1;num1=num2;num2=temp;,classProgramstaticvoidMain(stringargs)intnum1=5,num2=10;mySwap.Swap(refnum1,refnum2);,回顾一下,Swap方法在另一类中如何调用?,静态方法使用类名调用,静态方法,静态方法和实例方法,使用static修饰的方法称为静态方法使用实例对象调用的方法叫做实例方法,为什么要重载,publicintSum(intpara1,intpara2)returnpara1+para2;,整形参数,返回值整型,如果想让两个string型、两个double型相加,怎么做?,编写两个不同名字的方法,这样我们在进行调用时要先判断是什么类型,能否不判断直接就能相加呢?,方法的重载,同一个类中添加几个名字相同,参数与返回值不同的方法,publicstringSum(stringpara1,stringpara2)returnpara1+para2;,publicdoubleSum(doublepara1,doublepara2)returnpara1+para2;,调用时只要传递参数即可,无需判断类型,演示示例4:方法的重载,classAddpublicstringSum(stringpara1,stringpara2)publicintSum(intpara1,intpara2),重载的方式,基于不同类型参数的重载,classAddpublicintSum(intpara1,intpara2)publicintSum(intpara1,intpara2,intpara3),相同类型不同参数个数的重载,不允许重载方法仅仅是返回值不同,演示示例5:构造函数,Studentzhang=newStudent();zhang.Name=张靓靓;zhang.Age=20;zhang.Hobby=唱歌歌;,一种特别的方法,班级来了新学员添加学员对象,学员类实例化对象、设置属性,初始属性若太多,设置麻烦,能否在实例化时设置属性?,publicStudent(stringname,intage,stringhobby)this.Name=name;this.Age=age;this.Hobby=hobby;,Studentzhang=newStudent(张靓靓,20,唱歌歌);,一次设置完成,类中加入这个方法,添加的方法叫做构造函数,构造函数,是类中的一种特殊的方法构造函数名与类名相同,不返回任何值可初始化成员变量,classStudentpublicStudent(stringname,intage,stringhobby)this.Name=name;this.Age=age;this.Hobby=hobby;,初始化成员变量,this关键字引用类的当前实例,将参数的值,分别赋给当前实例的属性,使用构造函数,new关键字可以实例化一个新的对象指定对某个带参数的构造函数,Studentzhang=newStudent(张靓靓,20,唱歌歌);,每次创建类的实例都会调用此方法,实例化对象调用构造函数,使用new关键字,Studentscofield=newStudent();Studentzhang=newStudent(张靓靓,20,唱歌歌);,实例化一个对象,实例化一个新对象,publicStudent()publicStudent(stringname,intage,stringhobby)=name;this.age=age;this.hobby=hobby;,构造函数的重载,构造函数也可以重载,Studentscofield=newStudent();Studentzhang=newStudent(张靓靓,20,唱歌歌);,方法名相同,参数不同,综合实战,构造函数的重载,可以使类实例化对象更灵活,演示示例6:重载(RssRead类的搭建),都是读写属性,privateinta;publicintAgetreturna;seta=value;,你喜欢读哪段代码?,合格的程序要符合编码规则直观易于理解、有意义的单词方便维护有利于调试,编码规则的必要性,如name,age,student,privateintname;publicintNamegetreturnname;setname=value;,无法理解是什么,Pascal命名法变量采用有意义的单词单词的一个字母大写StudentName、MaxAgeCamel命名法变量采
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 财务报销流程问题及整改措施
- 小学美术课后儿童画拓展活动计划
- 部编版语文课堂游戏教学计划
- 小学篮球社团安全管理工作计划
- 江西省期中考试数学试卷
- 江阴市初三联考数学试卷
- (高清版)T∕CESA 1154-2021 《信息技术服务 从业人员能力评价指南(设计开发)》
- 名师工作室教育信息化建设计划
- 金融风控软件项目实施方案范文
- 八年级班主任个别辅导计划
- 低值耗材管理制度
- 农机项目可行性研究报告
- (正式版)S-H-T3533-2024石油化工给水排水管道工程施工及验收规范
- 2025年《界面交互设计》课程标准
- JG/T 348-2011纤维增强混凝土装饰墙板
- 2025云南楚雄州金江能源集团有限公司选聘中层管理人员7人笔试参考题库附带答案详解析版
- 2025年征兵心理测试题及答案
- T/CECS 10274-2023防沉降井盖
- 消防吸水操作训练课件
- 新能源电池商业计划书
- 2025年法学概论考试有效模拟试题及答案
评论
0/150
提交评论