java中的属性为什么使用private关键字?

chenwei1108 2010-10-09 09:24:20
public class ClassName
{
private memberName;

public void MethodName()
{
//code to operate memberName
}
}

初学面向对象,表示有点困惑。老师只说这么做,没说为什么这么做。
习惯上我们都不直接对属性进行操作呢?采取消息传递的好处是什么呢?
...全文
424 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
cwlwwl 2011-05-17
  • 打赏
  • 举报
回复
我是我说哈,我觉得你们的答案说了等于没有说,大家都知道属性用private,用public方法来操作属性,这样把类封装起来有安全性,但是谁也没有说为什么这样安全???
chenwei1108 2010-10-09
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 clariones 的回复:]
习惯上我们都不直接对属性进行操作呢
==
private 就强制你不能直接对属性操作了,而不是靠习惯。 [/Quote]
我的意思是说习惯上不使用public关键字

已经在javaeye得到答案,感谢以上各位的回答。
ysj300 2010-10-09
  • 打赏
  • 举报
回复
java的三大特点之一,封装性。
定义为私有的,主要是把它包装起来,让对象中的属性不能让访问者直接访问它。保证它的安全性。
clariones 2010-10-09
  • 打赏
  • 举报
回复
习惯上我们都不直接对属性进行操作呢
==
private 就强制你不能直接对属性操作了,而不是靠习惯。 有些成员你总是不希望被随意改变的,private就干这个。你说是封装也可以。

采取消息传递的好处是什么呢?
==
这个就和设计模式有关了。 采用消息传递本身没什么好处,又麻烦,又容易出错。 但是在解决一些问题的时候,使用设计模式可以提高效率,减少冗余和复杂度,增强系统的健壮性等等,而有些模式就需要使用到消息传递。 所以消息传递的好处就是采用了设计模式的好处。 如果说采用了不合适的设计模式,即使你的消息机制再精巧,再高效,也没啥好处。

总而言之,面向对象的特点,你可以用换位思考,假设你自己就是这个要设计的对象,你要解决这个对象要处理的事情时,你希望怎么样工作最好。
ysj300 2010-10-09
  • 打赏
  • 举报
回复
java的封装性

62,614

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧