A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 黑马姜硕 黑马帝   /  2011-12-16 17:13  /  2338 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 黑马姜硕 于 2011-12-16 20:47 编辑

get和set 属性到底怎么保护私有变量了 不是很理解 为什么要用这个两个属性 还有为什么他们没有小括号()只有大括号 别的方法都有小括号和大括号还是不能省略的???

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

4 个回复

倒序浏览
董伟 黑马帝 2011-12-16 17:49:40
沙发
GET和SET只是对属性进行封装的2个关键字,是对属性值进行读写操作的工具而已。你可以理解成方法,
但是至于为什么没有小括号那就不需要去研究了,因为这是语法。

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
属性的访问器包含与获取(读取或计算)或设置(写)属性有关的可执行语句。访问器声明可以包含 get 访问器或 set 访问器,或者两者均包含!
      get 访问器体与方法体相似。它必须返回属性类型的值。执行 get 访问器相当于读取字段的值。当引用属性时,除非该属性为赋值目标,否则将调用 get 访问器读取该属性的值。
     set 访问器与返回 void 的方法类似。它使用称为 value 的隐式参数,此参数的类型是属性的类型。  当对属性赋值时,用提供新值的参数调用 set 访问器

评分

参与人数 1技术分 +2 收起 理由
李荣壮 + 2

查看全部评分

回复 使用道具 举报
get与set, 为系统封装的, 如果没有特殊要求也可以省略不写
保护私有变量的方法:
可以通过只写get来达到只读的效果,只写set达到只写的效果
也可以通过判断条件来实现,比如:
set
{
   if(字段>0)
       value=5;
}// 只有字段(也就是私有变量)大于0的时候,才为他赋值
get的写法也跟set差不多的,自己研究下

get,set不是方法, 虽然我们可以用方法也能实现这种功能, 所以是没有小括号的
回复 使用道具 举报
{:soso_e179:}
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马