黑马程序员技术交流社区

标题: 非法值的判定 [打印本页]

作者: 张鹏杰丶HM    时间: 2014-3-6 21:10
标题: 非法值的判定
有一些非法判定值需要在类中判断,例如   
     public int Age //这里面Age是一个属性
        {
            set //赋值
            {
                if(value<=10)
                {
                   Console.WriteLine("输入年龄不合法");
                   return;
               
                }
                this.age = value;
            }
            get //取值
            {
                return 20;
            
            }

        }
为什么不直接在主函数中去对非法值进行处理呢? 好处是什么?
作者: 李恒权    时间: 2014-3-6 22:47
这样做是达到了封装的目的,让主函数显得更加有条理。对于面向对象来说,在主函数中进行非法值处理就会显得有点杂乱,达不到封装的目的。
作者: Q.z.l    时间: 2014-3-6 23:01
以后你写的类不一定只有你自己一个人用的,别的程序员如果不知道给你类的对象赋非法值得时候可不会写判断的,
这些保护手段还是要的。
作者: czwanglei    时间: 2014-3-7 10:20
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这样设置字段 private int age;用属性来的话,侧面体现了类的封装和对成员的保护。在主函数里面只需调用Age属性就可以完成对age赋值或取值,这是对成员的保护;假如是个大程序,所有的东西都写在主函数里面,那样会觉得乱,也不符合编程的规范,把这些都放在一个类中,通过属性来调用,会觉得简单别了,这正是面向对象封装性的表现。
作者: 永远的小飞侠    时间: 2014-3-7 11:42
这样更有效的封装,达到了面向对象的要求,思路更加清晰。如果放在主函数会显得代码臃肿
作者: 张鹏杰丶HM    时间: 2014-3-7 15:27
czwanglei 发表于 2014-3-7 10:20
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这 ...

谢谢  你这个比较详细。我看懂了  呵呵
作者: czwanglei    时间: 2014-3-7 17:49
czwanglei 发表于 2014-3-7 10:20
不在主函数里面这是一个编程基本问题,这与属性,面向对象,保护成员(类中的字段)有关。一般在类中,会这 ...

不客气,有黑马在,我们一起加油。。




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