黑马程序员技术交流社区

标题: 谁能详解一下get与set的用法? [打印本页]

作者: 忘忧草    时间: 2012-4-24 23:23
标题: 谁能详解一下get与set的用法?
谁能详解一下get与set的用法?
作者: 王志龙    时间: 2012-4-25 00:01
get   set用法中get是读取属性时进行的操作,set是设置属性时进行的操作。定义一个属性如果只有get,这个属性便是只读的 。同理set。
据上课老师讲的银行例子:
private   m_money;
private class bank()
{
get
{
return  m_money;
}
set
{
m_money=value;
}

}
m_money就像存取款一体机,你看不见里面有钱,但是你能set(存钱),用还能get(取钱)。m_money是一个私有字段是封装在类中的,类外程序是不允许访问的。而get    set用法中,类的get和set是外部程序访问类内部属性的唯一方法,就像你去银行取钱,你并不是直接从金库里拿现金(哪怕你是去抢劫)而是银行的工作人员把钱拿给你(get set)
作者: 陈世伟    时间: 2012-4-25 00:42
本帖最后由 陈世伟 于 2012-4-25 00:54 编辑

get用于读取,set用于写入.可以通过get和set控制用户只能读,或只能写,或者让用户输入的内容合法
例如:
在一个类中
       class person
       {
        int age;//我们不想让用户直接访问这个age,所以通过下面那个大写的Age把值传给小写的age,下面的意思是,如果用户输入的值>=0就把用户的值传给小age,如果<0就让age=0,这样就控制了用户只能输入>0的值,如果想让age只读就把set整个删掉,只保留get,如果想让age只能写,不能读,就把get整个删掉,只保留set
    public int Age
        {
         get{
               return age;
              }
         set{
              if(value>=0)
                {
                 age=value;
                 }
              else
                {
                age=0
                }
              }
         }
作者: 黄燕京    时间: 2012-4-26 21:28
如果在封装字段时只用到了get就只能读取而不能写入。
也就是get是用来读取字段中的值的,而Set是用来获取用户指定的值并保存的




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2