Java 如何用静态值定义内部类并使其能够访问外部类对象
我想定义这样一个类:Java 如何用静态值定义内部类并使其能够访问外部类对象,java,class,Java,Class,我想定义这样一个类: class Tree{ ArrayList<Node> nodes; //... class Node{ static int n = 0; private int id; public Node(){ id = n++; Tree.this.nodes.add(this); } } } 类树{ 阵列列表节点; //.
class Tree{
ArrayList<Node> nodes;
//...
class Node{
static int n = 0;
private int id;
public Node(){
id = n++;
Tree.this.nodes.add(this);
}
}
}
类树{
阵列列表节点;
//...
类节点{
静态int n=0;
私有int-id;
公共节点(){
id=n++;
Tree.this.nodes.add(this);
}
}
}
似乎如果我定义
static int n=0
,节点必须是static
。当我在节点上添加静态
时,树。此
不起作用。我该怎么办?如果满足您的需要,您可以尝试以下方法:-
class Tree{
ArrayList<Node> nodes;
private static int n = 0;
//...
class Node{
private int id;
public Node(){
id = n++;
Tree.this.nodes.add(this);
}
}
}
类树{
阵列列表节点;
私有静态int n=0;
//...
类节点{
私有int-id;
公共节点(){
id=n++;
Tree.this.nodes.add(this);
}
}
}
如果满足您的需要,您可以尝试以下方法:-
class Tree{
ArrayList<Node> nodes;
private static int n = 0;
//...
class Node{
private int id;
public Node(){
id = n++;
Tree.this.nodes.add(this);
}
}
}
类树{
阵列列表节点;
私有静态int n=0;
//...
类节点{
私有int-id;
公共节点(){
id=n++;
Tree.this.nodes.add(this);
}
}
}
如果满足您的需要,您可以尝试以下方法:-
class Tree{
ArrayList<Node> nodes;
private static int n = 0;
//...
class Node{
private int id;
public Node(){
id = n++;
Tree.this.nodes.add(this);
}
}
}
类树{
阵列列表节点;
私有静态int n=0;
//...
类节点{
私有int-id;
公共节点(){
id=n++;
Tree.this.nodes.add(this);
}
}
}
如果满足您的需要,您可以尝试以下方法:-
class Tree{
ArrayList<Node> nodes;
private static int n = 0;
//...
class Node{
private int id;
public Node(){
id = n++;
Tree.this.nodes.add(this);
}
}
}
类树{
阵列列表节点;
私有静态int n=0;
//...
类节点{
私有int-id;
公共节点(){
id=n++;
Tree.this.nodes.add(this);
}
}
}
不要使用内部类。将树实例传递给节点构造函数。@ElliottFrisch,但内部类就是为了这个目的而创建的。。。当内部类专门为此而创建时,如何用额外的引用证明代码凌乱?不要使用内部类。将树实例传递给节点构造函数。@ElliottFrisch,但内部类就是为了这个目的而创建的。。。当内部类专门为此而创建时,如何用额外的引用证明代码凌乱?不要使用内部类。将树实例传递给节点构造函数。@ElliottFrisch,但内部类就是为了这个目的而创建的。。。当内部类专门为此而创建时,如何用额外的引用证明代码凌乱?不要使用内部类。将树实例传递给节点构造函数。@ElliottFrisch,但内部类就是为了这个目的而创建的。。。当内部类专门为此而创建时,如何用额外的引用证明代码凌乱?IIRCn
将需要默认可见性,但我可能错了。@Qix内部类可以访问外部类的成员,反之亦然。还要注意,这将为每个节点创建一个唯一的id,即使来自不同的树。要单独索引每个树节点,只需从n
中删除static
修饰符即可。IIRCn
将需要默认可见性,但我可能错了。@Qix内部类可以访问外部类的成员,反之亦然。还要注意,这将为每个节点创建一个唯一的id,即使来自不同的树。要单独索引每个树节点,只需从n
中删除static
修饰符即可。IIRCn
将需要默认可见性,但我可能错了。@Qix内部类可以访问外部类的成员,反之亦然。还要注意,这将为每个节点创建一个唯一的id,即使来自不同的树。要单独索引每个树节点,只需从n
中删除static
修饰符即可。IIRCn
将需要默认可见性,但我可能错了。@Qix内部类可以访问外部类的成员,反之亦然。还要注意,这将为每个节点创建一个唯一的id,即使来自不同的树。要单独索引每个树节点,只需从n
中删除static
修饰符即可。