存取器方法
前段时间,由于工作的原因,没有时间学习C#.
现在好了,工作不太忙了.可以继续学习了,哈哈!
不过以前学习都忘记的差不多了,现在还得重新学起了.
存取器方法:就是get和set语句组成的方法.他们可以在私有成员中提取值和赋值.这个方法让用户可以对私有变量进行操作.
在C#中的存取器方法.比java中提取值和赋值方便多了.
设计类时的—个好的目标总是不仅仅隐藏类成员的实现,而且禁止任何对类字段成员的直接访问。
通过“存取器方法”——其职责就是获取和设置字段的值,您就可以确保字段可以被正确处理,也就是说,根据您特定的问题域规则而执行必要的操作处理。
比如,假设您有—个地址类Address包含一个邮政编码字段ZipCode和一个城市字段City,当客户修改字段Address.ZipCode时,您希望通过一个数据库来验证邮政编码是否有效,并且根据邮政编码自动设置Address.City字段的值。如果客户可以直接访问一个公共的Address.ZipCode成员的话,上面这两个任务就有点难了。因为直接更改成员变量并不需要方法。因此,除了可以直接访问Address.ZipCode字段之外,更好的解决方案是将Address.ZipCode和Address.Cipy这两个字段定义为“protected”,然后提供存取器方法来获取和设置Address.ZipCode字段的值。这样,您就可以附加一些代码来执行需要的操作了。 这个邮政编码的程序在C#中的示例代码如下。注意真正的ZipCode字段被定义为“protected”,因此客户不能直接访问它。而存取器方法GetZipCode和SetZipCode被定义为“public”:
class Address {
protected string ZipCode;
protected string City;
public string GetZipCode()
{ return ZipCode; }
public string SetZipCode(string zipcode) {
//Validate value against some datasource ZipCode = zipcode;
//Update city based on validated zipCode } }
客户可以这样来访问 ZipCode 的值。
class TestApp {
[STAThread] static void Main(string[] args)
{ Address addr = new Address();
addr.SetZipCode("710041");
string zip = addr.GetZipCode();
属性主要用于描述和维护类对象的状态。从客户端看,对属性的访问就好像直接访问public字段成员一样,但是,在类内部是通过类方法访问的,从而实现了优秀的面向对象数据隐藏。类属性的建立有其自身的一套语法规则。通常,创建一个属性包含两个步骤:
声明一个私有字段来存储属性值。
编写一个属性声明,为属性值提供访问接口。
1、属性声明格式 属性的建立要使用属性声明,
语法: [访问修饰符] 类型名 属性名
{ get
{
return 私有字段;
}
set
{
私有字段 = value;
}
}
例如:
private string p_name;
public string name
{
get
{
return p_name;
}
set
{
p_ame = value
}
}
现在好了,工作不太忙了.可以继续学习了,哈哈!
不过以前学习都忘记的差不多了,现在还得重新学起了.
存取器方法:就是get和set语句组成的方法.他们可以在私有成员中提取值和赋值.这个方法让用户可以对私有变量进行操作.
在C#中的存取器方法.比java中提取值和赋值方便多了.
设计类时的—个好的目标总是不仅仅隐藏类成员的实现,而且禁止任何对类字段成员的直接访问。
通过“存取器方法”——其职责就是获取和设置字段的值,您就可以确保字段可以被正确处理,也就是说,根据您特定的问题域规则而执行必要的操作处理。
比如,假设您有—个地址类Address包含一个邮政编码字段ZipCode和一个城市字段City,当客户修改字段Address.ZipCode时,您希望通过一个数据库来验证邮政编码是否有效,并且根据邮政编码自动设置Address.City字段的值。如果客户可以直接访问一个公共的Address.ZipCode成员的话,上面这两个任务就有点难了。因为直接更改成员变量并不需要方法。因此,除了可以直接访问Address.ZipCode字段之外,更好的解决方案是将Address.ZipCode和Address.Cipy这两个字段定义为“protected”,然后提供存取器方法来获取和设置Address.ZipCode字段的值。这样,您就可以附加一些代码来执行需要的操作了。 这个邮政编码的程序在C#中的示例代码如下。注意真正的ZipCode字段被定义为“protected”,因此客户不能直接访问它。而存取器方法GetZipCode和SetZipCode被定义为“public”:
class Address {
protected string ZipCode;
protected string City;
public string GetZipCode()
{ return ZipCode; }
public string SetZipCode(string zipcode) {
//Validate value against some datasource ZipCode = zipcode;
//Update city based on validated zipCode } }
客户可以这样来访问 ZipCode 的值。
class TestApp {
[STAThread] static void Main(string[] args)
{ Address addr = new Address();
addr.SetZipCode("710041");
string zip = addr.GetZipCode();
属性主要用于描述和维护类对象的状态。从客户端看,对属性的访问就好像直接访问public字段成员一样,但是,在类内部是通过类方法访问的,从而实现了优秀的面向对象数据隐藏。类属性的建立有其自身的一套语法规则。通常,创建一个属性包含两个步骤:
声明一个私有字段来存储属性值。
编写一个属性声明,为属性值提供访问接口。
1、属性声明格式 属性的建立要使用属性声明,
语法: [访问修饰符] 类型名 属性名
{ get
{
return 私有字段;
}
set
{
私有字段 = value;
}
}
例如:
private string p_name;
public string name
{
get
{
return p_name;
}
set
{
p_ame = value
}
}