Java中内部类的对象具有外部对象的特殊句柄,即b
。但是,外部对象对内部对象的访问权限不同。
这允许内部对象访问外部变量或方法,即使它们是私有的。
这些假设是否正确?
答案 0 :(得分:1)
答案 1 :(得分:1)
private
限制只能访问编译单元(源文件)的范围,因此同一文件中的所有类都可以访问彼此的私有成员,无论它们是否为内部类或不。
关于内部类的唯一特殊之处是(如你所说)它的每个实例引用外部类的特定实例,但是如果它以某种方式获得对另一个外部类实例的引用(例如作为参数)方法调用),它也可以访问其他实例的成员。类似地,如果外部类的实例以某种方式被赋予对内部类的实例的引用,则它可以访问其成员,即使它不“拥有”该特定内部类实例。