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

© 马蒙蒙 黑马帝   /  2011-7-29 16:25  /  1833 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

如下代码:
public class Outer{
public String name = "Outer";
public static void main(String argv[]){
Inner i = new Inner();
i.showName();
}//End of main
private class Inner{
String name =new String("Inner");
void showName(){
System.out.println(name);
}
}//End of Inner class
}
当我编译运行时出错了?

3 个回复

倒序浏览
黑马网友  发表于 2011-7-29 17:24:04
沙发
[code=java]class Outer {
        public String name = "Outer";

        public static void main(String argv[]) {
                Inner i = new Outer().new Inner();
                i.showName();
        }// End of main

        private class Inner {
                String name = new String("Inner");

                void showName() {
                        System.out.println(name);
                }
        }// End of Inner class
}[/code]要先创建一个外部类对象,然后再利用这个外部类的对象,创建出内部类对象。
关于内部类的具体信息,请在论坛中,搜索关键字“内部类”。
回复 使用道具 举报
黑马网友  发表于 2011-7-29 17:32:08
藤椅
虎哥正解,你也可以试试将private class Inner 定义成静态的。
回复 使用道具 举报
黑马网友  发表于 2011-7-29 18:05:22
板凳
[img]file:///C:/Users/Administrator/Desktop/4.jpg[/img]
要使用内部类的方法,必须要有外部类支持。
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马