ITPUB??ì3
ITPUB论坛 » Java入门与认证版 » 请教大虾一道SCJP考试题

新一届的微软MVP评选已经开始,欢迎各位推荐!

标题: 请教大虾一道SCJP考试题
离线 huxingan
中级会员



精华贴数 0
个人空间 0
技术积分 1630 (1034)
社区积分 10 (10610)
注册日期 2003-5-14
论坛徽章:2
会员2006贡献徽章授权会员    
      

发表于 2004-4-8 11:18 
请教大虾一道SCJP考试题

Which of the following variables are visible on the line marked with the comment //Here?

public class FinAc
{
        static int l = 4;
        private int k = 2;

        public static void main(String argv[])
        {
                FinAc a = new FinAc();
                a.amethod();
        }

             public void amethod()
        {
                final int i = 99;
                int j = 6;
               
                class CInMet
                {
                        public void mymethod(int q)
                        {
                                //Here
                             }
                }
                CInMet c = new CInMet();
                c.mymethod(i);
             }
}

说一下为什么吧


__________________
来了这个地方,就不想走了。。。
只看该作者    顶部
离线 omencathay
菜田守望者


精华贴数 7
个人空间 80
技术积分 5037 (268)
社区积分 7013 (215)
注册日期 2002-10-21
论坛徽章:7
现任管理团队成员     
      

发表于 2004-4-8 22:23 
这个考的是作用域的问题
你把public,private,{},protected,等弄清楚了就知道了


只看该作者    顶部
离线 omencathay
菜田守望者


精华贴数 7
个人空间 80
技术积分 5037 (268)
社区积分 7013 (215)
注册日期 2002-10-21
论坛徽章:7
现任管理团队成员     
      

发表于 2004-4-8 22:25 
最直接的方式,把所有的变量都放到
public void mymethod(int q)
{
//Here
}
调用,编译器会给你提示的


只看该作者    顶部
离线 Arrayit_horse
中级会员


精华贴数 4
个人空间 0
技术积分 927 (2005)
社区积分 454 (1479)
注册日期 2002-3-15
论坛徽章:5
ITPUB元老会员2006贡献徽章铁扇公主授权会员2008北京奥运纪念徽章:艺术体操 
      

发表于 2004-4-8 23:21 
应该是: j !

这个问题编译一下不就可以了!很简单!

编译器给出错误提示:

不能引用其它方法中定义的内部类中的非 final 变量!


只看该作者    顶部
离线 bkdgou
初级会员



精华贴数 0
个人空间 0
技术积分 42 (30975)
社区积分 0 (62144)
注册日期 2002-8-12
论坛徽章:0
      
      

发表于 2004-4-9 10:18 
這是一個 nested class宣告在method內的使用,又稱為local class
所以變數 I k i 三個都可以visible,只有j 不行


只看该作者    顶部
 
    

相关内容


CopyRight 1999-2006 itpub.net All Right Reserved.
北京皓辰广域网络信息技术有限公司. 版权所有
E-mail:Webmaster@itpub.net
京ICP证:010037号 联系我们 法律顾问