收藏 分享(赏)

管理类及对象.ppt

上传人:天天快乐 文档编号:1466308 上传时间:2018-07-20 格式:PPT 页数:26 大小:2.07MB
下载 相关 举报
管理类及对象.ppt_第1页
第1页 / 共26页
管理类及对象.ppt_第2页
第2页 / 共26页
管理类及对象.ppt_第3页
第3页 / 共26页
管理类及对象.ppt_第4页
第4页 / 共26页
管理类及对象.ppt_第5页
第5页 / 共26页
点击查看更多>>
资源描述

1、管理类和对象,江苏(淮安)微软技术中心,回顾,小汽车、奔驰汽车和楼下那辆奔驰S500汽车。哪个是类,哪个是对象?声明一个方法不需要返回值的关键字是什么?,本章目标,理解类与对象的概念了解属性的作用了解构造函数的作用了解ref和out,类和对象,对象是人们要进行研究的任何事物类描述一组相似对象的共性,/Car BMW = new Car();BMW.Run(); /,类一种类型的定义,对象:该类型的一个实例,实例化对象,调用方法,new:用于创建类型的实例,注意:每一个类的实例都是一个对象。在内存中都有自己的空间,而且独立于其他所有实例运行,public class Student int ag

2、e = 26; / 姓名 private string name; public string Name get return name; set name = value; /问候 public void SayHi() ,类和类的成员,类的成员,字段,属性,方法,类名,封装的目的,封装是面向对象的三大特性之一,封装有时也称之为信息隐藏 封装的中心思想是让我们在使用一个类的时候,不需要关心类的内部是如何工作的,我们只需要创建类的一个实例,然后使用这个类提供的方法。,将方法、数据(字段、属性)合并到一个类中,通过访问修饰符控制方法和数据的可访问性。 保证数据的完整性,避免非法数据访问,封装的目

3、的,公有成员和私有成员,class student private string name;/姓名 public int age; /年龄 public string idNumber ;/身份证号static void Main(string args) student myStudent = new student(); myStudent.name = 张三; myStudent.age = 20; ,私有成员,公有成员,实例化一个对象,可以访问,无法访问编译错误,数据安全,static void Main(string args) student myStudent = new stu

4、dent(); myStudent.age = -2; myStudent.idNumber = 123456; ,非法数据,身份证号不能被修改,无法获得数据,无法正常赋值,有时候将类中的字段公开是不安全的,如果设为私有成员,能否对这些字段进行规则约束或者只读呢?,在类中使用属性,private int age; /年龄public int Age get return age; set if (value 0 ,myStudent.Age = -20;/打印myStudent.Age = 40;/打印,没有访问age,公开Age,录入非法数据,打印私有变量age,演示示例: MyAge,不公

5、开age,通过公有Age访问和约束私有字段age,什么是属性,C#不直接访问类的数据通过访问器访问(get,set),class Student / 姓名 private string name; public string Name get return name; set name = value; ,返回name,get用于获取相应字段的值,set用于设置字段的值,只有get时:只读属性,只有set时:只写属性,get和set都存在:读写属性,属性的类型和字段类型必须一致。,给name赋值,属性的特点,private int age; /年龄public int Age get retu

6、rn age; set if (value 0 ,控制私有字段的可访问性,保护内部数据的安全,建议类内部敏感字段使用属性来控制访问,类型可以是各种数据类型,如:对象、数组等等,在类中使用方法,方法是类或对象的行为对象需要做某些事情,在类中添加方法回顾方法的定义,访问修饰符 返回类型 方法名 ( 参数列表 ) / 方法的主体,通过return返回值,如果返回类型是void,方法是否需要返回值?,参数的值传递方式,工资计税的方法为:低于等于3500不计税,超出3500的部分按10%缴税,为什么使用 ref,下面代码输出结果是什么?,static void Main(string args) int

7、 num1 = 5, num2 = 10; / 两个数字 Console.WriteLine(交换前两个数的值分别为:0和1, num1, num2); Swap(num1, num2); / 交换两个数的值 Console.WriteLine(交换后两个数的值分别为:0和1, num1, num2); / 交换两个数的方法private static void Swap(int num1, int num2) int temp; / 中间变量 temp = num1; num1 = num2; num2 = temp;,值传递不能保留参数的修改要按引用传递,使用 ref,通过引用传递参数,r

8、ef 修饰参数:调用方法后,参数值的更改仍然保留,通过引用传递参数,static void Main(string args) Console.WriteLine(交换前两个数的值分别为:0和1, num1, num2); / 交换两个数的值 Swap(ref num1, ref num2); Console.WriteLine(交换后两个数的值分别为:0和1, num1, num2);,/ 交换两个数的方法private static void Swap(ref int num1, ref int num2) int temp; / 中间变量 temp = num1; num1 = num2

9、; num2 = temp;,调用时也要使用 ref,方法的参数,参数传递使用值传递,参数值的更改不能保留。使用 ref 可以将参数值的更改保留out 类型参数,private static void AddScore(ref int score,out int scoreResult) if (score 50 ,都可以输出结果,ref侧重修改,out侧重输出,不能写成AddScore(out int scoreResult),演示示例2:自定义方法计算税后工资,演示示例:构造函数,Student zhang = new Student();zhang.Name = 张靓靓;zhang.Ag

10、e = 20;zhang.Hobby = 唱歌歌;,一种特别的方法,班级来了新学员添加学员对象,学员类实例化对象、设置属性,初始属性若太多,设置麻烦,能否在实例化时设置属性?,public Student(string name, int age, string hobby) this.Name = name; this.Age = age; this.Hobby = hobby;,Student zhang = new Student(张靓靓, 20, 唱歌歌);,一次设置完成,类中加入这个方法,添加的方法叫做构造函数,构造函数,是类中的一种特殊的方法构造函数名与类名相同,不返回任何值可初始

11、化成员变量,class Student public Student(string name, int age, string hobby) this.Name = name; this.Age = age; this.Hobby = hobby; ,初始化成员变量,this 关键字引用类的当前实例,将参数的值,分别赋给当前实例的属性,使用构造函数,new 关键字可以实例化一个新的对象指定对某个带参数的构造函数,Student zhang = new Student(张靓靓, 20, 唱歌歌);,每次创建类的实例都会调用此方法,实例化对象调用构造函数,使用 new 关键字,Student sc

12、ofield = new Student();Student zhang = new Student(张靓靓, 20, 唱歌歌);,实例化一个对象,实例化一个新对象,public Student() public Student(string name, int age, string hobby) this.name = name; this.age = age; this.hobby = hobby;,构造函数的重载,构造函数也可以重载,Student scofield = new Student();Student zhang = new Student(张靓靓, 20, 唱歌歌);,方

13、法名相同,参数不同,静态方法和实例方法,使用static修饰的方法称为静态方法使用实例对象调用的方法叫做实例方法,常量,常量在使用过程中值不会发生变化常量程序中反复使用,const 类型 常量名 = 常量值,程序中不会被改变,static void Main(string args) const int PI = 3.14; PI = 3.20;,强制赋值会发生错误,常量名通常使用大写,为什么使用常量,public class Compute double pi = 3.14; /计算圆的周长 public double Perimeter(double radius) return 2 * pi * radius; /计算圆的面积 public double area(double radius) return pi * radius * radius;,这个类中,会反复使用pi,如果pi在类中被修改了,计算结果错误,如何避免pi在类中被修改?,总结,简述属性和字段的区别?只读属性中只有哪个访问器?new关键字有什么作用?this关键字的作用是什么?构造函数的作用?,

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 企业管理 > 经营企划

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报