有关public与private的问题

evergreen2000 2004-04-29 03:23:48
谁能解释为什么类中有时要用public以及private来对属性或方法进行限制?
例如:对于能够进行修改的属性,为什么还要用private,通过set、get方法?
...全文
46 13 打赏 收藏 举报
写回复
13 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
learnner 2004-04-30
有些属性的修改也不是可以让外部任何程序都可以操作的,可以通过访问某个public方法来再调用,这样如果你更改这个属性修改方法的实现或者参数,只需要更改这个方法和那个public的调用方式就可以了,不需要到所有调用的地方都去修改,程序大了这个是很麻烦的。
  • 打赏
  • 举报
回复
thumb3344 2004-04-30
class Card {
public String name;
private String password;
}
比如这个类是一个银行卡类。把卡号设为public可以让其它人看到,以便于其它人向你的账户里汇钱。你如果不想让别人把账号里的钱拿走,密码就要设为private。别人无论如何也是得不到你的密码的。
  • 打赏
  • 举报
回复
evergreen2000 2004-04-30
请给出一个例子,能够说明为什么要用private而不用public(只是针对能够进行修改的属性,只读属性就不用了),然后解释原因。先谢谢了。
  • 打赏
  • 举报
回复
xiangbo520 2004-04-29
public 公有
private 私有 只有内部成员函数才能访问;不能继承,
protected 不能水平继承,只能垂直访问;
private 以及public 是为了一些安全性考虑设置的。
在程序中你可以自由的调用你的private 以及public 方法以及变量
但是在程序实例对象中,你就不能在调用属于private 的方法和变量了!
  • 打赏
  • 举报
回复
binny 2004-04-29
就像你的居室,

你可以把钥匙挂在门上,任何人都可以随便进入(public);

或者是把钥匙挂在自己的腰上,任何人通过允许你才可以进入(private以及setter&getter)

你喜欢哪种。

反正我是喜欢第二种,我可不喜欢别人随便闯入,就算要进入的话

我的先准备一下:)

当然你也可以把钥匙给你的家人每人一把(默认)

如果,你认为你的儿子也可以随便进而不用担心他看到什么的话:),给他也留一把(protected)
  • 打赏
  • 举报
回复
kingmaxno1 2004-04-29
一个很简单的程序,如果把它扩大一万位,那么他维护起来就相当困难,这样就产生了设计模式,:)
你说的那个主要是为了在大量中用的,如果只有十几行,怎么定都无所
  • 打赏
  • 举报
回复
qiuyc 2004-04-29
也要避免混淆

要不每个都是public,就是每个都有那么多的方法了
:)
  • 打赏
  • 举报
回复
Arias 2004-04-29
private 以及public 是为了一些安全性考虑设置的。
在程序中你可以自由的调用你的private 以及public 方法以及变量
但是在程序实例对象中,你就不能在调用属于private 的方法和变量了!
  • 打赏
  • 举报
回复
lovelanzhi716 2004-04-29
对于安全性来说还是有用的
  • 打赏
  • 举报
回复
figer 2004-04-29
体现了封装性,同时可以更好的使类的接口保持不变。
  • 打赏
  • 举报
回复
VVV_lucky 2004-04-29
安全,移植,升级都会有问题。
  • 打赏
  • 举报
回复
ygx119 2004-04-29
public 公有
private 私有 只有内部成员函数才能访问;不能继承,
protected 不能水平继承,只能垂直访问;
set,get 方法这是访问函数的接口而已。
欲知详情,看书去
  • 打赏
  • 举报
回复
Philzzf 2004-04-29
这个属于程序封装的问题,你可以把一个类中所有的属性都设为public,并且这样也不会引起程序错误,但这样的话你就把一个类中所有的信息都透漏出来,会引起诸多方面的安全问题。
这方面的讨论很多,可以找找相关的资料
  • 打赏
  • 举报
回复
相关推荐
发帖
Web 开发
加入

8.0w+

社区成员

Java Web 开发
社区管理员
  • Web 开发社区
申请成为版主
帖子事件
创建了帖子
2004-04-29 03:23
社区公告
暂无公告