120 likes | 323 Views
第 4 章 面向对象编程方法. 王德俊 上海交通大学继续教育学院. 第 4 章 面向对象编程方法. 4.1一个简单的程序 4.2 类和对象 4.3 类的继承、重载与多态 4.4 运算符的重载 4.5 接口及其实现 4.6 方法的委托 4.7 常用的几个类 4.8 命名空间. 4.2 类和对象. 4.2.4 类的属性. 对 private 或 protected 数据成员 常见的访问是 读取与设置修改数据值 ,在类定义外部,这种访问可通过 属性成员 实现 通过属性可以控制对数据的访问方式,甚至设置数据可接受的值域 1 声明属性
E N D
第4章 面向对象编程方法 王德俊 上海交通大学继续教育学院
第4章 面向对象编程方法 4.1一个简单的程序 4.2 类和对象 4.3 类的继承、重载与多态 4.4 运算符的重载 4.5 接口及其实现 4.6 方法的委托 4.7 常用的几个类 4.8 命名空间
4.2 类和对象 4.2.4 类的属性 • 对private或protected数据成员常见的访问是读取与设置修改数据值,在类定义外部,这种访问可通过属性成员实现 • 通过属性可以控制对数据的访问方式,甚至设置数据可接受的值域 1 声明属性 2 使用属性
1 声明属性 • 在类定义中声明属性的语法格式为: 访问修饰符 类型 属性名 { get { } set { } } • 可以将属性声明为读写属性、只读属性或只写属性 (1) 声明读写属性 (2) 声明只读或只写属性
(1)声明读写属性 class Student// 类名为Student { // 声明字段 private string id,name,sex; // 声明属性 public string ID // 对应id的属性 { get { return id; } set { id=value; } } public string Name // 对应name的属性 { get { return name; } set { name=value; } } public string Sex // 对应sex的属性 { get { return sex; } set { sex=value; } } }
在属性的声明中,get与set叫属性访问器 • get完成对数据值的读取,return用于返回读取的值 • set完成对数据值的设置修改,value是一个关键字,表示要写入数据成员的值 • 属性名应和其要访问的数据成员名相关但不相同 • 可以采取数据成员名单词首字母全用小写,而属性名的单词首字母全用大写的方式
(2)声明只读或只写属性 • 在属性声明中,如果只有get访问器,则该属性为只读属性 • 例如: publicstring Sex { get { return sex; } } • 只读属性意味着,数据成员的值是不能被修改的 • 在属性声明中如果只有set访问器,则该属性为只写属性 • 只写属性在程序设计中不常使用
2 使用属性 • 属性成员的使用就如同公有数据成员的使用一样 • 可以为可写的属性赋值,可以用可读的属性为其他变量赋值 • 例如: // 用属性设置修改数据成员值 s1.ID="2005003"; s1.Name="李四"; s1.Sex=“男”; // 用属性读取数据成员值,为其他变量赋值 string ssex=s1.Sex;
使用属性 • 在C#程序设计中,窗体与控件的属性就是属性成员 • 在“属性”窗口显示的属性,均为可读写属性 • 只读属性只能在代码中使用,并且只能读取这些属性的值
使用属性 public class Date { private int month = 7; public int Month { get { return month; } set { if ((value > 0) && (value < 13)) { month = value; } } } }
只读属性 class Employee { private string name; public string Name { get { return name != null ? name : "NA"; } } }
本讲小结 • 对程序员而言,属性是一种读写“字段”的特殊方法,类通常提供公有(public)属性让类的使用者(客户端)设置或取得私有(private)的成员变量,实现对私有数据的可控访问,如: publicget存取程序可以控制数据格式和显示,public set设置程序可以检查修改成员变量值的尝试。