黑马程序员技术交流社区

标题: 主函数中调用内部类方法的问题 [打印本页]

作者: 朱辉    时间: 2012-3-28 15:01
标题: 主函数中调用内部类方法的问题
  1. class Outer{
  2.                 Outer(){}
  3.                 public void method(){
  4.                         final String name="abc";
  5.                         final int age=26;
  6.                         class Inner{
  7.                                 public void getValue(){
  8.                                         System.out.println(name+":"+age);
  9.                                 }
  10.                         }       
  11.                 }       
  12.         }
  13. }
复制代码
主函数应该怎样写才能调用到方法中内部类的getValue方法?
作者: 马云    时间: 2012-3-28 15:13
1。在外层类定义一个方法可以获取内部类的一个对象,在边边调用这个方法就可以访问内部类了,
2。外层类.内层类  name=外层类.内层类();
作者: 抓哇    时间: 2012-3-28 15:21
在外部无法被访问 鉴定完毕
作者: 王国华    时间: 2012-3-28 15:24
本帖最后由 王国华 于 2012-3-28 15:41 编辑

class Outer{

           Outer(){}
            public void getValue(){}
                public Outer method(){

                        final String name="abc";

                        final int age=26;

                        class Inner extend Outer{

                                public void getValue(){

                                        System.out.println(name+":"+age);

                                }

                        }
                return new Inner();      

                }        

        }

}

主函数中通过下列方法访问
Outer in = new Outer().method();
in.getValue();
//使用了多态
作者: 李成航    时间: 2012-3-28 15:31
在其他类中的访问方式:
Outer.Inner  i=new Outer().new Inner();
i.getValue();
作者: 抓哇    时间: 2012-3-28 15:34
各位大哥大姐说那么多 说到点子上好吗 外部类的方法中的内部类可以用这些格式调用吗 请仔细考虑考虑
作者: 抓哇    时间: 2012-3-28 15:36
yocean 发表于 2012-3-28 15:28
主要是得到内部类的对象,内部类对象创建有3中情况,
1.在外部类的一般方法中创建:直接使用Inner in = new ...

你这个万能总结能应用于 外部类中成员方法里的内部类吗????????
作者: izwj    时间: 2012-3-28 15:49
class Outer{

Outer(){}

public void method(){

                final String name="abc";

                final int age=26;

                class Inner{

                                public void getValue(){

                                                System.out.println(name+":"+age);

                                }

                }
                new Inner().getValue();//加上这句话就可以了
        }        

}

class N1
{
        public static void main(String[] args)
        {
                new Outer().method();               

        }
}
作者: 孙地豪    时间: 2012-3-28 15:49
无法访问的  你 必须提供 该方法中的 内部类  实例.
class Outer {
                Outer(){}
         public void method(){
                 final String name="abc";
             final int age=26;
             class Inner{
                 public void seeOuter(){
                     System.out.println(name+":"+age);
                 }
             }  
             Inner in = new Inner();
             in.seeOuter();
         }
         public static void main(String[] args) {
             Outer out = new Outer();
             out.method();
         }
     }




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