关于私有变量在类中调用的问题

ylj1079 2004-11-19 08:25:24
有如下类定义:
class Test{
private int b;
public int c(Test a){
int i;
return i+a.b;
}
}

按照类中关于私有的实例变量的理解,a是一个Test的对象,那么实例成员变量b由于是私有的,应该不能利用a.b来访问,但程序中该编译是可以通过的,而且也能正常运行得到结果。
我不知道大家对此是怎么理解的?
...全文
183 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
jFresH_MaN 2004-11-19
  • 打赏
  • 举报
回复
看来只能这么理解了
okitgo 2004-11-19
  • 打赏
  • 举报
回复
像这种程序也是可以执行的
public class Test {
private static int xxx=99; //私有变量
public static void main(String[] args) {
Test ww=new Test();
System.out.println(ww.xxx); //访问私有变量
}
}
okitgo 2004-11-19
  • 打赏
  • 举报
回复
privat(私有)意味着除您自己、类型的创建者以及那个类型的内部函数成员,其他任何人都不能访问后续的定义信息. 因为a的类型也是Test,现在的a是在Test的内部.所以是可以访问的. 这是说的是类,不是对象!!!
jFresH_MaN 2004-11-19
  • 打赏
  • 举报
回复
我测试了一下,确实没问题
我也觉得很奇怪
难道说真的是只要是再类的内部就能访问私有成员?
可能吧

呵呵,涨知识了
ylj1079 2004-11-19
  • 打赏
  • 举报
回复
本来私有变量的目的是封装,但这样的话在该类的内部生成的对象可以随意的操作该变量,一些类似的有效性检查好象就没办法控制了,而且破坏了关于私有变量定义理解,好象有点不伦不类的感觉。。
pbMaster 2004-11-19
  • 打赏
  • 举报
回复
这很不合理,应该编译不通过的!
treeroot 2004-11-19
  • 打赏
  • 举报
回复
你的说法是有一定道理的,但是这里确实是在Test的内部,即使生成新的实例,也是可以访问私有变量的.

62,634

社区成员

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

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