Java 仅对拥有对象的类的公共访问
我一直在想。我有一个顶点类,它是一般图类的一部分。该顶点类拥有一个作为实体的对象。在我的系统中,一切都是通过顶点发生的,你不能直接用getter访问实体对象。我意识到我必须在实体类中创建公共方法,以便可以从Vertex类调用它们。有没有办法只向拥有所述对象的类公开方法 因为现在我可以实例化一个实体并使用它的公共方法,但在Vertex类之外就没有意义了。我不知道是否有一种模式或者人们所做的事情只允许所有者使用他们持有的任何东西的方法 我现在使用java,C++也很好。我相信C++可以使用朋友关键词。p>Java 仅对拥有对象的类的公共访问,java,c++,Java,C++,我一直在想。我有一个顶点类,它是一般图类的一部分。该顶点类拥有一个作为实体的对象。在我的系统中,一切都是通过顶点发生的,你不能直接用getter访问实体对象。我意识到我必须在实体类中创建公共方法,以便可以从Vertex类调用它们。有没有办法只向拥有所述对象的类公开方法 因为现在我可以实例化一个实体并使用它的公共方法,但在Vertex类之外就没有意义了。我不知道是否有一种模式或者人们所做的事情只允许所有者使用他们持有的任何东西的方法 我现在使用java,C++也很好。我相信C++可以使用朋友关键词
//Vertex.java
public class Vertex
{
private NodeDrawable _node;
...
}
//NodeDrawable.java
public class NodeDrawable
{
private disable();
}
我想让Vertex成为唯一允许访问NodeDrawable方法的类。内部类很酷,但我不喜欢在一个文件中包含多个类 一个人应该对对象及其元素具有最低限度的访问权限。如果您不需要访问实体,并且仅通过Vertex访问实体是有意义的,请将所有对象句柄和方法设置为Vertex中的私有对象。首先,我会问自己是否可以公开实体类。在此之后,您可以将Entities方法设置为私有,您的Vertex类仍然可以访问它们,而其他所有人都不能访问它们-与受保护的方法相比,受保护的方法可以由同一源代码包中的类访问 编辑