A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 流浪的风 中级黑马   /  2013-9-24 11:41  /  1356 人查看  /  4 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

public class Outer {
        void method(){
                class Inner{
                       
                }
        }
}
class Test{
        public static void main(String [] args){
                //在这里怎么创建Inner内部类的对象?是直接创建,不是通过提供的方法间接创建;
        }
}

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

4 个回复

倒序浏览
比如,B是A的内部类,你要在C上创建B那么就可以使用
A a = new A();
A.B b =a.new B();

就像这样创建,需要一个引用.

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
  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. }
复制代码

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
  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(内部类访问规则)

评分

参与人数 1技术分 +1 收起 理由
乔兵 + 1

查看全部评分

回复 使用道具 举报
eclipse中new错了会报错的!
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马