黑马程序员技术交流社区

标题: 问个内部类的问题 [打印本页]

作者: 流浪的风    时间: 2013-9-24 11:41
标题: 问个内部类的问题
public class Outer {
        void method(){
                class Inner{
                       
                }
        }
}
class Test{
        public static void main(String [] args){
                //在这里怎么创建Inner内部类的对象?是直接创建,不是通过提供的方法间接创建;
        }
}


作者: jìng╮煜    时间: 2013-9-24 12:09
比如,B是A的内部类,你要在C上创建B那么就可以使用
A a = new A();
A.B b =a.new B();

就像这样创建,需要一个引用.
作者: code_geass    时间: 2013-9-24 12:43
  1. public class Outer {
  2.     void method(){
  3.             class Inner{
  4.                   void show(){}  
  5.             }
  6.             Inner in=new Inner();
  7.             in.show();
  8.     }
  9. }
  10. class Test{
  11.     public static void main(String [] args){
  12.             /*无法直接创建,因为内部类在局部。外界无法获得其引用。如果想调用内部类的方法,
  13.             只能在局部创建引用,然后调用*/
  14.             new Outer().method();
  15.     }
  16. }
复制代码

作者: 咕咕猫    时间: 2013-9-24 13:05
  1. <p>public class Outer {

  2.             class Inner{

  3.                   void show(){}  

  4.             }
  5. }

  6. class Test{

  7.     public static void main(String [] args){

  8.             Outer.Inner oi = new Outer().new Inner()//成员内部类建立对象
  9.     }

  10. }</p><p> </p><p>class Outer
  11. {
  12. int x= 3;
  13. void method(final int a)//final修饰才能被下方访问
  14. {
  15.   final int y=4;//必须为最终类型final修饰局部类才能访问它
  16.   class Inner//局部内部类 不能私有不能静态 非静态没对象不运行。
  17.   {
  18.    void function()//不能静态修饰
  19.    {
  20.     System.out.println(Outer.this.x);
  21.     System.out.println(y);//上边y必须为最终类final修饰型局部类才能访问它
  22.     System.out.println(a);//final修饰才能被此访问
  23.    }
  24.   }
  25.   new Inner().function();//要想运行上方局部内部类必须建立对象调用其才行
  26. }
  27. }</p><p>
  28. class InnerClassDome3
  29. {
  30. public static void main(String[]args)
  31. {
  32.   new Outer().method();//匿名对象调用功能
  33.   Outer out = new Outer();
  34.   out.method(7);//都能运行ok
  35.   out.method(8);//都能运行ok
  36. }
  37. }</p>
复制代码
你所写的内部类为局部内部类,详细可以看看毕老师的java基础视频:09(内部类访问规则)
作者: 369833818    时间: 2013-9-24 13:30
eclipse中new错了会报错的!




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2