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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

class Outer
{
        int x =3;
        void method(final int a)
        {
                final        int y=3;
                class Inner
                {
                        void function()
                        {
                        System.out.println(a);
                        }
                }
                new Inner().function();
        }
}

class InnerClassDemo
{
        public static void main(String [] args)
        {
        Outer.out= new Outer();
        out.method(5);
        out.method(6);
        }
}
InnerClassDemo.java:26: 找不到符号
符号: 变量 out
位置: 类 Outer
        Outer.out= new Outer();
             ^
InnerClassDemo.java:27: 找不到符号
符号: 变量 out
位置: 类 InnerClassDemo
        out.method(5);
        ^
InnerClassDemo.java:28: 找不到符号
符号: 变量 out
位置: 类 InnerClassDemo
        out.method(6);
        ^
3 错误

9 个回复

倒序浏览
  1. class Outer
  2. {
  3.         int x =3;
  4.         void method(final int a)
  5.         {
  6.                 final        int y=3;
  7.                 class Inner
  8.                 {
  9.                         void function()
  10.                         {
  11.                         System.out.println(a);
  12.                         }
  13.                 }
  14.                 new Inner().function();
  15.         }
  16. }

  17. class InnerClassDemo
  18. {
  19.         public static void main(String [] args)
  20.         {
  21.         Outer out= new Outer();   //这里错误, 应该这样写,而不是 Out.out = new Outer();
  22.         out.method(5);
  23.         out.method(6);
  24.         }
  25. }
复制代码
回复 使用道具 举报
Outer.out= new Outer();   //Quter 是个类类型  定义类类型后面加“.”  
Quter.java:14: 错误: 找不到符号
                        Outer.out= new Outer();
                             ^
  符号:   变量 out
  位置: 类 Outer
1 个错误
回复 使用道具 举报
LZ这道题代码如此简单,应该很好看出问题的,这种问题仔细看一下,分析分析就能得出结果了,是对象定义格式错误的原因,
回复 使用道具 举报
Outer.out= new Outer();//
Outer out= new Outer();//创建对象实例
回复 使用道具 举报
创建对象格式错误了啊,楼主。
回复 使用道具 举报
Outer.out= new Outer()
你把Outer后的点去掉,再编译一下看看,应该就过了。
对象创建也叫对象实例化,创建形式跟我们定义一个变量类似,严格遵循先创建后使用的原则。
楼主先是定义了一个Outer类,但是在实例化的时候却犯了糊涂。应该是先创建out对象,再调用它的构造方法。
所以楼主将Outer.out= new Outer()这句的点变成空格再编译应该是会通过的。
回复 使用道具 举报
Outer.out= new Outer();
这一步有问题Outer.XXX是用来调用Outer内部静态的变量或者方法的。创建对象应该是 Outer out= new Outer();
回复 使用道具 举报
声明类的实例与声明变量的语法是一样:类名 实例名;  调用类的静态方法或属性,才用楼主你写的那样:Outer.out
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马