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

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© xuqangxing 中级黑马   /  2013-5-26 17:15  /  1499 人查看  /  7 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

本帖最后由 xuqangxing 于 2013-5-26 22:26 编辑

class Outer
{
        int x=3;
        void method(final int a)
        {
                final int y=4;
                class Inner
                {
                        void function()
                        {
                                System.out.println(y);
                                System.out.println(x);
                                
                        }
                }
                new Inner().function();
        }
}
public class  InnerClassDemo
{
        public static void main(String[] args)
        {
                Outer out = new Outer();
                out.method(7);
                out.method(8);
        }

}
输出结果为:
4
3
4
3
如果在function()中加上一行代码System.out.println(a)
void function()
                        {
                                System.out.println(y);
                                System.out.println(x);
                                System.out.println(a);
                        }
输出结果为:
4
3
7
8
疑问:为什么输出结果不是
4
3
7
4
3
8
???????

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

7 个回复

倒序浏览
额,,你确定不是437438么? 为什么我运行了一下 是后者。。。{:soso_e197:}
回复 使用道具 举报
  1. class Outer
  2. {
  3.         int x=3;
  4.         void method(final int a)
  5.         {
  6.                 final int y=4;
  7.                 class Inner
  8.                 {
  9.                         void function()
  10.                         {
  11.                                 System.out.println(y);
  12.                                 System.out.println(x);
  13.                                 System.out.println(a);
  14.                         }
  15.                 }
  16.                 new Inner().function();
  17.         }
  18. }
  19. public class  InnerClassDemo
  20. {
  21.         public static void main(String[] args)
  22.         {
  23.                 Outer out = new Outer();
  24.                 out.method(7);
  25.                 out.method(8);
  26.         }
  27. }
复制代码
是这样的不。。

评分

参与人数 1技术分 +1 收起 理由
袁梦希 + 1 赞一个!

查看全部评分

回复 使用道具 举报
我运行也是后者。你自己再运行一下看看
回复 使用道具 举报
秦久启 发表于 2013-5-26 19:26
我运行也是后者。你自己再运行一下看看

晕  我先前运行了好多次都是4378   刚运行结果是437438         谢谢你哦  
回复 使用道具 举报
张旺达 发表于 2013-5-26 18:18
额,,你确定不是437438么? 为什么我运行了一下 是后者。。。

晕  我先前运行了好多次都是4378   刚运行结果是437438         谢谢你哦
回复 使用道具 举报
xuqangxing 发表于 2013-5-26 22:26
晕  我先前运行了好多次都是4378   刚运行结果是437438         谢谢你哦

{:soso_e113:}{:soso_e181:}
回复 使用道具 举报
xuqangxing 发表于 2013-5-26 22:26
晕  我先前运行了好多次都是4378   刚运行结果是437438         谢谢你哦

:lol:handshake
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马