访问私有成员的问题,很简单

zhf0021 2005-03-08 10:46:00
public class Test{
public static void main(String[] args) {
TestAccess a = new TestAccess(1);
TestAccess b = new TestAccess(2);
System.out.println(a.add(b));
}
}

class TestAccess{
public TestAccess(int x){
this.x = x;
}
public int add(TestAccess t){
return x + t.x;//这里可以直接使用t.x,x不是私有的么,为什么可以这样?
}
private int x;
}
...全文
132 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhf0021 2005-03-08
  • 打赏
  • 举报
回复
谢谢各位
54783szg 2005-03-08
  • 打赏
  • 举报
回复
别人在你们家吃饭时可以用你们家的饭碗吧?如果在别的地方吃饭用你们家的饭碗,你同意吗?
yangki 2005-03-08
  • 打赏
  • 举报
回复
私有成员在类内部是是可以使用的。如果类外使用某的对象的私有成员,在C++中可以通过友元来实现,java中我还不知道有没有友元的概念,但是这样会破坏封装性,并不好。
icebluenet 2005-03-08
  • 打赏
  • 举报
回复
一个类当然能使用了
yuanye2008 2005-03-08
  • 打赏
  • 举报
回复
在类的成员函数中可以直接使用类的私有数据成员。
add是TestAccess的成员函数。
像下面的例子才是错的:
public class Test{
public static void main(String[] args)
{
int temp;
TestAccess a = new TestAccess(1);
temp = a.x; //错误访问私有成员。
}
}
本人刚学java请大家多多执教!
enrico 2005-03-08
  • 打赏
  • 举报
回复
zhutouzip(吃青春饭不肖子!) 的说法很对
quiton 2005-03-08
  • 打赏
  • 举报
回复
因为x在estAccess这个类中,在同一个类中当然可以使用了!
飞行的兔子 2005-03-08
  • 打赏
  • 举报
回复
首先要注意private的用法.
private只能在定义该类的内部使用,所以该类的其它成员都可以使用该private变量,但是在该类外部就不能使用了.
ChDw 2005-03-08
  • 打赏
  • 举报
回复
因为你就是在自己的TestAccess类当中,你访问TestAccess的x是被允许的,无论这个t是自己本身还是另外一个TestAccess实例

62,614

社区成员

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

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