問一個有關於設計理念的簡單問題 我寫一個類,這個類的成員可以讀取也可以寫入.一般是成員private,然後使用屬性set, get來訪問呢,還是是成員public直接訪問.這樣做的好處? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请找任何一本讲述OO编程的书(Delphi,java,.net俱可).....唉....看书,真的这么难吗? 你說說不是很好嗎?我使用成員private然後通過屬性訪問,可是我發現我的同事都是使成員public的方法來做的.但是具體什麼優點我也不是很清楚 F.Y.I属性是字段的自然扩展,此两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。然而,与字段不同,属性不表示存储位置。相反,属性有访问器,这些访问器指定在它们的值被读取或写入时需执行的语句。因此属性提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来;甚至,它们还可以对此类特性进行计算。 在set get 的时候,可以多做些事set {if( value < 0 ) //类试很多 a = 0; else a = value;} 好吧.用访问器的优点就是隔离变化. 比如说,如果你定义了一个属性,用来保存姓名.但有一天,出于一些原因,你想让它全部以大写的方式保存.如果你没有定义访问器,而是直接写它的值,那你可能必须找出所有调用的地方,然后逐个加上UPPER方法.但如果你通问访问器访问的,那只要修改此访问器的代码就行了. private的字段可以更有效的保护这个字段,不让其它程序更改例如银行的存款一样,存款值是private,这样引用这个类的就不能随意更改这个值,只能按你的提供的public方法和属性去更改 当然是用set和get了。好处就是在set或者get体内可以执行额外的操作,比如判断输入有效性等。还可以在里面写事件的触发。 求正态分布函数C#算法 寻找最优组合 祝今天上班的所有人工作有个好心情 请问怎么实现程序复制自已并删除自已??!! wince C# Datagrid列宽设置 请教SqlCommand 写了一个C#连接ORCAL9的例子,报错,请指导 急: 大家帮帮忙,关于二进制数组入库的问题 跨线程访问控件的问题 IE控件axWebBrowser中先浏览空页面,再用write()方法对doc写入内容正常. 怎样清空页面重新写入新内容? 谁知道这个错误 关于类库之间接口调用的问题,急!
唉....看书,真的这么难吗?
我使用成員private然後通過屬性訪問,可是我發現我的同事都是使成員public的方法來做的.但是具體什麼優點我也不是很清楚
属性是字段的自然扩展,此两者都是具有关联类型的命名成员,而且访问字段和属性的语法是相同的。然而,与字段不同,属性不表示存储位置。相反,属性有访问器,这些访问器指定在它们的值被读取或写入时需执行的语句。因此属性提供了一种机制,它把读取和写入对象的某些特性与一些操作关联起来;甚至,它们还可以对此类特性进行计算。
set {
if( value < 0 ) //类试很多
a = 0;
else
a = value;
}
用访问器的优点就是隔离变化. 比如说,如果你定义了一个属性,用来保存姓名.但有一天,出于一些原因,你想让它全部以大写的方式保存.如果你没有定义访问器,而是直接写它的值,那你可能必须找出所有调用的地方,然后逐个加上UPPER方法.但如果你通问访问器访问的,那只要修改此访问器的代码就行了.
例如银行的存款一样,存款值是private,这样引用这个类的就不能随意更改这个值,只能按你的提供的public方法和属性去更改
好处就是在set或者get体内可以执行额外的操作,比如判断输入有效性等。还可以在里面写事件的触发。