我一直在尝试创建一个人,在第三版之后,在我了解了嵌套类的存在之后,决定从头开始。到目前为止,我已将其输入:
public class Person {
public Person() {
side left = new side();
side.limb arm = left.new limb();
left.arm.hi();
// Arm can not be resolved or is not a field.
}
class side {
class limb {
public void hi() {
System.out.println("Hi");
}
}
}
}
我该如何解决这个问题?我从来没有尝试过在类中嵌套类,我真的希望这可以工作,但是:
它只需要写在一个类文件中,所以我可以使用嵌套类但只有一个大型公共类文件。
我希望能够使用“arm.left.method”或“left.arm.method”来使用左臂的方法。因为我想指明我在谈论哪一只手臂。
答案 0 :(得分:0)
我相信你遇到的问题是你正在将Limb视为Side类中的成员变量。即你正在使用side.limb,好像这个类是写的:
class Side {
public Limb sidesLimb;
class Limb {
public void hi();
System.out.println();
}
}
现在您可以执行以下操作:
Side left = new Side();
left.sidesLimb = new Limb();
left.sidesLimb.hi();
实际上,您忘记在Side类中添加Limb类型的成员变量。
答案 1 :(得分:0)
确定。我所做的是为了保持指定它的哪一方的能力,如下:
public class Person{
public static void main(String[] args){
Person joe = new Person();
}
public Person(){
doubleLimb arm = new doubleLimb();
arm.left.hi();
}
class doubleLimb{
limb right;
limb left;
public doubleLimb(){
left = new limb();
right = new limb();
}
}
class limb{
public void hi(){
System.out.println("Hi");
}
}
}
它的作用基本上是针对具有左侧和右侧的东西,它使肢体名称成为一个空类的名称,它只创建左右命名的新肢体。