属性 - 上海交通大学继续教育学院

Download Report

Transcript 属性 - 上海交通大学继续教育学院

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