《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-2/9

C#程序设计 第3章C#面向对象编程
C# 程序设计 第3章 C#面向对象编程

基本内容 属性 索引器 方法的参数 小结
2 基本内容 属性 索引器 方法的参数 小结

本节目标 ■理解面向对象的基本概念 ■理解类和对象的区别和联系 ■掌握属性的使用 ■区别只读属性和可读写属性 ■掌握方法的声明和使用 3
3 本节目标 ▪ 理解面向对象的基本概念 ▪ 理解类和对象的区别和联系 ▪ 掌握属性的使用 ▪ 区别只读属性和可读写属性 ▪ 掌握方法的声明和使用

数据安全 示例 static void Main(string args) Student myStudent=new Student(); myStudent.age =-2; 非法数据 myStudent.id ="123456"; 有时候将类中 的字段公开是 身份证号不能被修改 不安全的 无法正常赋值 如果设为私有成员 无法获得数据 问题 能否对这些字段进行规则约束或者只读呢?
4 数据安全 static void Main(string[] args) { Student myStudent = new Student(); myStudent.age = -2; myStudent.id = "123456"; } 非法数据 身份证号不能被修改 无法获得数据 无法正常赋值 有时候将类中 的字段公开是 不安全的 如果设为私有成员 能否对这些字段进行规则约束或者只读呢?

什么是属性(property) [属性修饰符类型属性名 C#不直接访问类的数据 get{return字段名;} 通过访问器访问(get,set) set{字段名=value;} class Student 属性的类型和字段类 型必须一致。 get和set都存在:读写属性 ∥姓名 private string name; 只有get时:只读属性 public string Name 只有set时:只写属性 get return name; 返回name set name value; 给name赋值 get用于获取 set用于设置 相应字段的值 字段的值 5
5 什么是属性(property) ▪ 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赋值 [属性修饰符]类型 属性名 { get {return 字段名;} set {字段名 = value;} }

属性的特点 private int age;∥年龄 public int Age 类型可以是各种数据类型,如:对象、数组等等 { get return age;} set { 控制私有字段的可访问性 if(value>0&&value 100) { 保护内部数据的安全 age value; else age 18; 建议类内部敏感字段使用 属性来控制访问 6
6 属性的特点 private int age; //年龄 public int Age { get { return age; } set { if (value > 0 && value < 100) { age = value; } else { age = 18; } } } 控制私有字段的可访问性 保护内部数据的安全 建议类内部敏感字段使用 属性来控制访问 类型可以是各种数据类型,如:对象、数组等等

在类中使用属性 private int age;∥年龄 不公开age public int Age 录入非法数据 { 公开Age get return age; myStudent.Age =-20; set .打印 myStudent.Age =40; if (value>0&&value<100) .打印 没有访问age age value; } 打印私有变量age else C:\TIHDOTS\system32\cmd.exe =▣x 年龄是18 age 18; 年龄是40 请按任意键继续 通过公有Age访问和约束私有字段age 演示示例: MyAttribute
7 在类中使用属性 private int age; //年龄 public int Age { get { return age; } set { if (value > 0 && value < 100) { age = value; } else { age = 18; } } } myStudent.Age = -20; .//打印 myStudent.Age = 40; .//打印 没有访问age 公开Age 录入非法数据 打印私有变量age 演示示例: MyAttribute 不公开age 通过公有Age访问和约束私有字段age

属性注意事项 ■属性可以被声明为 public,private,protected,internal,or protected internal ■同一属性的get和set可以有不同的访问限制 ■不能同时为get、set指定访问修饰符。 ■get或set的访问修饰符可以和属性不同,但必须是比属 性有更高的限制 8
8 属性注意事项 ▪ 属性可以被声明为 ◼ public, private, protected, internal, or protected internal ◼ 同一属性的get和set可以有不同的访问限制 ◼ 不能同时为get、set指定访问修饰符。 ◼ get或set的访问修饰符可以和属性不同,但必须是比属 性有更高的限制

自动实现的属性 class Point class Point public int X get;set; } private int x; public int Y{get;set; private int y; g puiic Sring Name ge;privat public int X public int CustomerID get;prit get return x; 州木还穴头小州以俩工,州时⊙心 set x value; public int Y { get return y; set {y value; } 9
9 自动实现的属性 ▪ 自动实现的属性声明的基本形式如下: ◼ [属性修饰符] 类型 属性名{get;set;}[;] ▪ 编译器将创建一个私有的匿名后备字段,该字段只能通过 属性的 get 和 set 访问器进行访问 ▪ 必须同时定义get和set访问器 ▪ 如果想只读访问该属性,则将set访问器设置为private

基本内容 属性 索引器 方法的参数 小结
10 基本内容 属性 索引器 方法的参数 小结
按次数下载不扣除下载券;
注册用户24小时内重复下载只扣除一次;
顺序:VIP每日次数-->可用次数-->下载券;
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-1/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-4/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-3/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-2/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第2章 C#语言基础-1/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第1章 Microsoft.NET简介和C#概述.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第13章 Windows应用程序的部署.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第12章 GDI + 图形编程-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第12章 GDI + 图形编程-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-3/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-2/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第10章 ADO.NET数据库-1/3.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第9章 表单.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第8章 面向对象程序设计.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第7章 面向过程的程序设计.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第6章 数据库和数据表的命令.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第5章 查询与视图.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第4章 数据库和数据表的可视化操作.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第3章 项目管理器.ppt
- 《Visual FoxPro程序设计及其应用系统开发》课程电子教案(PPT教学课件)第2章 数据表达式和函数.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-3/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-4/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-5/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-6/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-7/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-8/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第3章 C#面向对象编程-9/9.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第4章 数组与集合-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第4章 数组与集合-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第5章 泛型-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第5章 泛型-2/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-1/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-2/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-3/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第6章 WinForm用户界面-4/4.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-1/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-2/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第7章 窗体的高级应用-3/3.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第8章 多线程-1/2.ppt
- 《C#语言程序设计》课程教学课件(PPT讲稿)第8章 多线程-2/2.ppt