我打算在另一个类
中创建一个类path="**/background_palette_drawable_6.xml"
它有效...所以我可以访问内部的私人字段,我也添加了Inner2类并尝试更改" a"来自Inner2,它也起作用:/
所以内部类中的私有看起来不那么私密,在整个班级中看起来像是它的公共。
答案 0 :(得分:1)
对于外部类,嵌套类为public
,对于所有其他类,嵌套类为private
...
一些参考:Nested Classes
声明private
嵌套/内部类不会改变外部类本身的可见性,只需将嵌套类(私有或非私有)视为外部类的变量/方法。
public class Sq {
public int publicNumber = 0;
private int number = 0;
private class Inner { ... }
}
修改强>
从内部类中,您还可以调用外部类的一些变量/方法,否则没有问题
public class Sq {
private int number = 0;
class Inner {
private int a;
private Inner(int a1) {
this.a = a1;
number++;
}
private String getOuterClassString()
{
return getOuterString();
}
private String getPrivateString()
{
return "privateString";
}
public String getPublicString()
{
return "publicString";
}
}
private String getOuterString()
{
return "outerString";
}
public static void main(String[] args) {
Sq outter = new Sq();
Inner d = outter.new Inner(3);
System.out.println("Number = " + outter.number);
System.out.println("Private a = " + d.a);
System.out.println("Number = " + outter.number);
System.out.println(d.getPrivateString());
System.out.println(d.getPublicString());
System.out.println(d.getOuterClassString());
}
}
答案 1 :(得分:0)
内部类最终意味着在组织方面为外部类提供一些实用程序。内部类可以完全被外部类访问,因为最终你真的不需要隐藏来自你自己的类的数据。当代码的复杂性要求您隐藏getter和setter背后的数据时,您应该认真考虑将该类放在自己的文件中的可能性。