gpt4 book ai didi

java - 我认为内部类可以访问外部类变量/方法?

转载 作者:太空狗 更新时间:2023-10-29 22:52:07 26 4
gpt4 key购买 nike

我确实阅读了许多讨论内部类的主题,我的印象是内部类可以访问封闭类的变量和方法。下面我有一个外部类和一​​个内部类,在测试类中我创建了一个外部类的实例,然后从中创建了一个内部类的实例。但是我无法通过内部类引用访问 String 变量 a。帮助?

public class OuterClass {

String a = "A";
String b = "B";
String c = "C";

class InnerClass {
int x;

}

public static class StaticInnerClass {
int x;
}

public String stringConCat() {
return a + b + c;

}
}

public class TestStatic {

public static void main(String args[]) {

OuterClass.StaticInnerClass staticClass = new OuterClass.StaticInnerClass();
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();

System.out.println(inner.a);// error here, why can't i access the string
// variable a here?

}
}

最佳答案

内部类可以通过自己的方法访问外部类的方法和属性。看下面的代码:

class OuterClass {

String a = "A";
String b = "B";
String c = "C";

class InnerClass{
int x;
public String getA(){
return a; // access the variable a from outer class
}
}

public static class StaticInnerClass{
int x;
}

public String stringConCat(){
return a + b + c;
}
}


public class Test{

public static void main(String args[]) {

OuterClass.StaticInnerClass staticClass = new OuterClass.StaticInnerClass();
OuterClass outer = new OuterClass();
OuterClass.InnerClass inner = outer.new InnerClass();

System.out.println(inner.getA()); // This will print "A"
}
}

关于java - 我认为内部类可以访问外部类变量/方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12251922/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com