java内部类如何被外部引用
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了java内部类如何被外部引用相关的知识,希望对你有一定的参考价值。
内部类也可以通过创建对象从外部类之外被调用,只要将内部类声明为Public即可。
class Outer
private int size=10;
public class Inner //被外部引用,必须声明为public
public void doStuff()
System.out.println(++size);
public class TestInner
public static void main(String[] args)
Outer a =new Outer();
Outer.Inner b=a.new Inner();
b.doStuff();
这个是张孝祥书里面的, 被外部引用要把内部类声明为PUBLIC ,为什么我把内部类Inner前的public去掉了 运行结果也一样?
而在同一个包中的友元中的类是可以被引用的。 参考技术A Outer a =new Outer(); 因为你加了这个,追究说明在你下面那个类里面添加了上面的类里面的东西,可以随时随地引用的不过不要忘记导入包
内部类
JAVA 的内部类,如果是静态的,则只是一个层次结构多了一层而以。
但是如果不是静态的,做为一个实例类型的内部类。那么这个内部类就拥有它所属的外部类的实例对象的引用,内部类不释放,那么所属的外部类也不会被释放。
创建一个内部类对象的实例:
1. 需要有一个外部类的实例对象;
Outer out = new Outer();
2. 通过这个外部类的实例来创建它的内部类对象;
Inner in = out.new Inner();
3. 在内部类中可以直接使用所属外部类的一切资源,同时还包括外部类的this;
在内部类中使用外部类的this 需要明确指定:Outer.this;
使用自己的this 则直接使用即可:this;
以上是关于java内部类如何被外部引用的主要内容,如果未能解决你的问题,请参考以下文章
Java内部类引用外部类中的局部变量为何必须是final问题解析