public class ClassName
{
     private memberName;     public void MethodName()
     {
          //code to operate memberName
     }
}初学面向对象,表示有点困惑。老师只说这么做,没说为什么这么做。
习惯上我们都不直接对属性进行操作呢?采取消息传递的好处是什么呢?

解决方案 »

  1.   

    习惯上我们都不直接对属性进行操作呢
    ==
    private 就强制你不能直接对属性操作了,而不是靠习惯。 有些成员你总是不希望被随意改变的,private就干这个。你说是封装也可以。采取消息传递的好处是什么呢?
    ==
    这个就和设计模式有关了。 采用消息传递本身没什么好处,又麻烦,又容易出错。 但是在解决一些问题的时候,使用设计模式可以提高效率,减少冗余和复杂度,增强系统的健壮性等等,而有些模式就需要使用到消息传递。 所以消息传递的好处就是采用了设计模式的好处。 如果说采用了不合适的设计模式,即使你的消息机制再精巧,再高效,也没啥好处。总而言之,面向对象的特点,你可以用换位思考,假设你自己就是这个要设计的对象,你要解决这个对象要处理的事情时,你希望怎么样工作最好。
      

  2.   

    java的三大特点之一,封装性。
    定义为私有的,主要是把它包装起来,让对象中的属性不能让访问者直接访问它。保证它的安全性。
      

  3.   

    我的意思是说习惯上不使用public关键字已经在javaeye得到答案,感谢以上各位的回答。
      

  4.   

    我是我说哈,我觉得你们的答案说了等于没有说,大家都知道属性用private,用public方法来操作属性,这样把类封装起来有安全性,但是谁也没有说为什么这样安全???