当前位置:  技术问答>java相关

请教,关于JAVA中变量的作用域的问题!

    来源: 互联网  发布时间:2015-06-23

    本文导语:  下面的代码为什么可以通过编译呢~ --------------------------------------------------- // Demonstrate block scope   class SDemo{     public static void main(String args[]){        int x;                 x = 10;       if(x==10){...

下面的代码为什么可以通过编译呢~

---------------------------------------------------
// Demonstrate block scope
  class SDemo{
    public static void main(String args[]){
       int x; 
      
        x = 10;
      if(x==10){ 
       int y = 20; 
           
      System.out.println("x and y: "+ x +" "+y);
        x = y*2;
     }
       int y = 100; 
       
      System.out.println("x is "+x);
      System.out.println(y);
    }
  }
----------------------------------------------------------
JAVA的作用域规则中不是说"内部作用域声明的变量与其包围作用域中声明的变量不能重名!"的吗?那为什么最后还能输出Y的值呢~它不是已经与代码块中的Y重名了吗?
请指教~

|
请比较:
class SDemo{
    public static void main(String args[]){
(1)     int y; 
        ...

        if(x==10){ 
(2)         int y = 20; 
            ...
(3)     }
        y = 100; 
        ...
(4) }
}

编译时将出错:
SDemo.java:8: y is already defined in main(java.lang.String[])
            int y = 20;
                ^
解释:
局部变量的作用域(the scope of a local variable),比如例中的 y ,并非整个main函数,而是从其声明那一处(1)开始,至(4)结束。即在我的例子里,外部变量 y 的作用域是(1)到(4),而 if 中的 y 作用域为(2)到(3),因此出现重名错。

但再你的实例里,由于 if 外部的 y 声明在(3)之后,因此不出现作用域相互覆盖问题。 

|
没错啊他的道理其实和
for(int i=0;i

    
 
 

您可能感兴趣的文章:

  • 请教:(static)静态变量和静态方法是什么意思?
  • 请教:使用什么命令查看导出的环境变量?
  • 请教个shell环境变量的问题
  • 论坛 iis7站长之家
  • 请教进程与变量的问题
  • 请教关于环境变量的问题
  • 请教一奇怪的环境变量的问题
  • shell变量和子shell的问题请教
  • 请教:如何在两个javaBean之间传送变量
  • 基础问题,刚学的!请教,两个日期格式变量,我要求两个日期之间的天数,怎么求?
  • 请教 变量= { function:函数名};什么意思
  • 请教SuSE Linux的环境变量设置?
  • 请教:<xsl:template match="/">中,match得值可以是变量吗,如:match="$node"
  • 请教关于linux内存管理问题,如何给定义的变量指定固定内存段
  • 请教大虾们:在shell脚本中如何用expr连续进行多个变量之间的计算
  • 请教JSP变量在JavaScript中使用的问题.
  • 请教一下, .bash_profile文件里面的环境变量没有生效
  • awk 输出值给变量请教!
  • shell和c之间的变量传递问题,请教!
  • 请教:整合apache/tomcat时设置JAVA_HOME/TOMCAT_HOME环境变量起什么作用?没有用到啊?
  • 请教一段shell语句的作用
  • 请教:system.out.println("a="+a),a是int类型的,那个+号到底起什么作用呢?
  • 各位老大,可以提供一个EJB(BMP)的例子吗? 同时请教PK类的作用?(给例子就有分)
  • linux下ulimit命令的具体作用,不是很明白,请教一下
  • 请教apt-get install x-window-system-core gnome-core synaptic的"synaptic"有什么作用
  • 请教:linux 2.6内核汇编中的.size起什么作用?
  • 请教3个问题:1.setleds设置numlock 2./dev/null写法的作用 3.关于path打通
  • 请教:有了JRUN了,为什么还要装个APACHE,APACHE这个软件起什么作用的呢?
  • 【请教】libc.so的具体作用
  • 真正请教:Serializable接口有哪些主要作用,为什么它与Socket类可实现邮件发送?在概念或原理上是如何实现的呢?
  • 请教一下这几个qmail函数的作用
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • 请教,请教,这个问题是为什么????
  • 请教本地硬盘安装问题请教本地硬盘安装问题
  • ■请教■请教redhat最基本的问题!
  • 请教一个 shell 问题,我用下面这个 shell 语句总是失败,请教
  • 高分请教,各位大侠,请教一个问题,理论高手请进??谢谢
  • 请教Linux下pgadmin3-1.0.2的编译和安装!!高分请教!
  • 各位大虾,请教装了REDHAT9操作系统后,启动时无法引导到LINUX,请教该如何解决啊
  • 请教,请教,,,一定要看!!一定要看!!
  • 请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • :请教高手,小弟打印width=1500,height=600(A3纸)的Applet,在预览中是该区域是黑的,打印出来也是黑的,请教高手解决一下
  • 请教象我这样的硬盘应如何安装Linux,我昨天试装了,但有问题。(老问题了,也看了前面的帖子,但还是来请教,请多指教)
  • 请教这种循环的执行过程
  • 请教两个redhat9问题
  • 请教如何在指定目录下查找包含指定文字的文件
  • 请教局域网中如何通过ip地址得到主机名
  • 请教kdevelop的问题
  • 请教linux 下的adsl拨号问题.
  • 请教,如何用虚拟订机安装liux
  • 【请教】LINUX 下SNMP的MIB开发
  • 请教一个opengl的问题


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3