象上面的读取属性的方法也被叫做“只读方法”,同样地也有“只写方法”,一样样的道理,我懒得赘述了.需要说的是,并不是所有的内部属性都拥有通向外界的接口.记住,类的设计总是要让它在它的使用者看起来更简单,因此如果某个类的编写者认为其中某个数据成员没有必要被使用这个类的人感知到它的存在,那么如果那天他没有喝太多酒的话,他就不会对那个数据提供任何相应的接口.这样,这个属性就彻底地被封装起来了.
“总款哦……”你茅厕顿开,“类就是这么一回事呀!把它的数据隐藏,而通过它公开的方法来实现其与类的使用者的互动.魔兽中那么多英雄,每个族四个,加上六个中立英雄,二十二个英雄就是二十二个类哈!”那我会摸着你的头说:“对,你真是可以这么认为的.hmmm,都有四种魔法,都有生命值.魔法值.最大攻击力值.最小攻击力值.防御力值,etc.那么二十二个英雄,我们都可以慢慢地写,没问题……” 【程序编程相关:WebSphere下从helloWorl】
当然没有人会阻止你把变量声明成public,但是也绝没有人推荐你这么做,所以这样声明之前请你确信这样是必要的.你可以试想一下,如果月之女祭司把控制她的生命力值的权利完全地公诸于众,那么游戏还有什么公平性可言呢? 【推荐阅读:将小写金额转换为中文大写的SQL函数】
这时你突然用力推开了我的手:“且慢!既然二十二个类有这么多公用的属性与方法,那你干屌不试着直接写出一个抽象的英雄类呢?”我说你狂有思想的,因为这就是当初引进继承的滥觞.不单单魔兽中的英雄如是,你细细观察一下,生活中与机器世界里也充斥着这样的例子.如果不利用它们的派生继承的关系,而冲动地将每个类都设计成一个独立的类,那么你将要重复写多少行代码?这么一想来似乎有点恐怖吧?所以我们要继承,因为这样的机制在很大程度上提高了我们开发软件的效率.
... 下一页