欢迎
游客
,
注册
|
登录
|
会员
|
界面
|
简洁版本
|
在线
|
帮助
闪客动漫天地论坛
闪客动漫天地论坛
设计乐园
彩信制作乐园
存取器方法 (转)
本主题被查看931次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
上一主题
下一主题
标题: 存取器方法 (转)
我风了
新手上路
UID: 309719
来自:
精华:
0
积分: 11
帖子: 11
注册: 2007-6-20 16:01:00
状态:
离线
威望: 0.00
金钱: 2.75 元
发短消息
用户资料
树型
回复
引用
只看楼主
2007-06-21 15:40
存取器方法 (转)
前段时间,由于工作的原因,没有时间学习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
}
}
#1
大
中
小
本主题被查看931次, 共1个帖子, 1页, 当前为第
1
页 选择页数: 1 跳转到第
页
论坛跳转...
Flash专区
动画技术学习
平面设计交流
课件专题讨论
脚本编程技术
作品欣赏评论
设计乐园
设计策划资料
人设造型贴图
酷站资源共享
彩信制作乐园
多格漫画娱乐
交朋识友
音乐游戏发烧
精彩图片中心
情感心情茶舍
闪妹特别区域
闲聊灌水唠嗑
精彩互动
供求信息发布
版务建议交流
flash大赛活动
聚会活动专区
现在的时间是 2008-09-08 18:44:46
沪ICP备05003105号
版权所有
闪客俱乐部
Powered by
Discuz!NT
1.0.6666 Copyright © 2001-2008
Comsenz Inc
.
Processed in 0.128 seconds
切换界面...
Default