下面随便写了一个类, 注意其中override了equals()方法.public class FriendType
{    private String strType;
    private FriendType SuperType = null;    public FriendType(String Type)
    {
        super();
        strType = Type;
        
    }    public boolean equals(FriendType Type)
    {
//这里的Type是个外来成员.
//strType是一个私有成员.
//为什么我们可以访问一个外来者的私有成员呢(尽管他们属于同类型),
//我认为这有悖于面相对象程序设计的初衷.   //  Type.strType = "XXXXX"; //这样写都能通过编译        return Type.strType.equals(strType);
    }    public FriendType getSuperType()
    {
        return SuperType;
    }    public String getType()
    {
        return strType;
    }    public void setSuperType(FriendType type)
    {
        SuperType = type;
    }    public void setType(String type)
    {
        strType = type;
    }    public String toString()
    {
        return strType;
    }
}

解决方案 »

  1.   

    这样当然可以啦!
    Type不能说是外来成员,他是函数特有的参数,其作用域就在这个函数里!
    既然作用域在这个函数里,他自己的私有成员当然可以访问了
      

  2.   

    //  Type.strType = "XXXXX"; //这样写都能通过编译
    是可能的.方法可以访问同类的所有对象的私有数据..
    java2 核心技术 第六版 卷I,108页中间.
      

  3.   

    多谢  nimifeng(人之为学有难易乎,为之,则难者亦易矣!)