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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 张鹏杰丶HM 中级黑马   /  2014-3-6 21:10  /  1892 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

有一些非法判定值需要在类中判断,例如   
     public int Age //这里面Age是一个属性
        {
            set //赋值
            {
                if(value<=10)
                {
                   Console.WriteLine("输入年龄不合法");
                   return;
               
                }
                this.age = value;
            }
            get //取值
            {
                return 20;
            
            }

        }
为什么不直接在主函数中去对非法值进行处理呢? 好处是什么?

评分

参与人数 1技术分 +1 收起 理由
czwanglei + 1

查看全部评分

6 个回复

正序浏览
czwanglei 发表于 2014-3-7 10:20
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这 ...

不客气,有黑马在,我们一起加油。。
回复 使用道具 举报
czwanglei 发表于 2014-3-7 10:20
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这 ...

谢谢  你这个比较详细。我看懂了  呵呵
回复 使用道具 举报
这样更有效的封装,达到了面向对象的要求,思路更加清晰。如果放在主函数会显得代码臃肿
回复 使用道具 举报
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这样设置字段 private int age;用属性来的话,侧面体现了类的封装和对成员的保护。在主函数里面只需调用Age属性就可以完成对age赋值或取值,这是对成员的保护;假如是个大程序,所有的东西都写在主函数里面,那样会觉得乱,也不符合编程的规范,把这些都放在一个类中,通过属性来调用,会觉得简单别了,这正是面向对象封装性的表现。
回复 使用道具 举报 1 0
以后你写的类不一定只有你自己一个人用的,别的程序员如果不知道给你类的对象赋非法值得时候可不会写判断的,
这些保护手段还是要的。
回复 使用道具 举报
这样做是达到了封装的目的,让主函数显得更加有条理。对于面向对象来说,在主函数中进行非法值处理就会显得有点杂乱,达不到封装的目的。
回复 使用道具 举报 1 0
您需要登录后才可以回帖 登录 | 加入黑马