当前位置: 代码迷 >> Java相关 >> java常识问题,被晒晕,原来知道,现在忘了??请提示!!
  详细解决方案

java常识问题,被晒晕,原来知道,现在忘了??请提示!!

热度:314   发布时间:2006-06-16 21:10:39.0
java常识问题,被晒晕,原来知道,现在忘了??请提示!!

同类的对象可以直接 访问 同类对象的私有成员,这是为什么?
怎么会这样呢??请各位高手解答一下。。谢谢!!
如 :
public class A{
private int x; //私有的
public A()
{
x=0;
}
public A( A aa )
{
x=aa.x; //<font color=red>直接用 点运算符 访问 对象 aa 中的 private 的成员.</font>
}
}

搜索更多相关的解决方案: java  提示  public  private  对象  

----------------解决方案--------------------------------------------------------
在同一个类里是可以被调用的
不同类里 只能调用public 的 而不能private 的
----------------解决方案--------------------------------------------------------
在同一个类里是可以被调用的,,我知道。
如:
public class A{
private int x;
public A(){};
public A(int xVal)
{
x=xVal;
}
private class B{
private int y=10;
public void set()
{
x=y;
}
}
}
我不问这个
是问上面那了的原因.

----------------解决方案--------------------------------------------------------

请各位解释一下 同类 “对象”可以访问 同类“对象”的私有成员,
的原因。也就是在类外 的 同类对象 之间的访问。


----------------解决方案--------------------------------------------------------

私有方法和变量只能在类的方法里调用,不能走出类这个范围
也就是说你在别的类里面造了这么一个对象,那么这个对象已经不在原来的自己那个类了
这个时候肯定不能调用了


----------------解决方案--------------------------------------------------------
再给你张表 就更能理解了

Private成员

缺省成员

Protected成员

public成员

同一类中成员

同一包中其他类

不同包中子类

不同包中非子类


----------------解决方案--------------------------------------------------------
public class A
{
private int x; //私有的
public A()
{
x=0;
}
public A( A aa )
{
x=aa.x; //<直接用 点运算符 访问 对象 aa 中的 private 的成员
}
}
----------------解决方案--------------------------------------------------------
以下是引用private在2006-6-16 21:35:58的发言:

请各位解释一下 同类 “对象”可以访问 同类“对象”的私有成员,
的原因。也就是在类外 的 同类对象 之间的访问。

public class A
{
private int x; //私有的
public A()
{
x=0;
}
public A( A aa )
{
this.x=aa.x;
}
你说的这个例子根本就不是同一个类的对象访问同类对象的私有成员。
我上面的改动你可能会看清楚一些。

----------------解决方案--------------------------------------------------------
public class A
{
private int x; //私有的
public A()
{
x=0;
}
public A( A aa )
{
x=aa.x; //<直接用 点运算符 访问 对象 aa 中的 private 的成员
}
}
现在不问上面的问题了,只问这个例子
为什么是正确的.和java虚拟机是则么理解它的.

A aa = new A();

A bb= new A(aa); // aa.x(直接用点成员访问) 赋给了bb中的x;
----------------解决方案--------------------------------------------------------
不太明白你要问的问题是什么 很乱
----------------解决方案--------------------------------------------------------

  相关解决方案