请问大家,以下四种在外部类中创建内部类对象的方法有什么区别?请比较一下这三种方法。
前提:A是外部类,B是A的内部类,getB()是A中一个返回B的对象的函数。
1. B b = getB();
2. A a = new A();
A.B b = a.getB();
3. B b = new B();
4. A a = new A();
A.B b = a.new B();
前提:A是外部类,B是A的内部类,getB()是A中一个返回B的对象的函数。
1. B b = getB();
2. A a = new A();
A.B b = a.getB();
3. B b = new B();
4. A a = new A();
A.B b = a.new B();
2.这是比较正常的使用方法,只要main函数类有足够访问权限都可以用,与4的差别是B类的构造函数可以是private的,
因为B类是在类A内部创建的。
3.这种方法最好别用,如果main函数在A类中有可能能用,否则不可能使用。内部类不能在类外不经由外部类创建。
4.这是最常用的创建方法了,只要main函数类有足够访问权限都可以用(比如A、B类都是public权限就可以)。
2.这是比较正常的使用方法,只要main函数类有足够访问权限都可以用,与4的差别是B类的构造函数可以是private的,
因为B类是在类A内部创建的。
3.这种方法最好别用,如果main函数在A类中有可能能用,否则不可能使用。内部类不能在类外不经由外部类创建。
4.这是最常用的创建方法了,只要main函数类有足够访问权限都可以用(比如A、B类都是public权限就可以)。