下面随便写了一个类, 注意其中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;
}
}
{ 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;
}
}
Type不能说是外来成员,他是函数特有的参数,其作用域就在这个函数里!
既然作用域在这个函数里,他自己的私有成员当然可以访问了
是可能的.方法可以访问同类的所有对象的私有数据..
java2 核心技术 第六版 卷I,108页中间.