java吧 关注:1,275,266贴子:12,789,839
  • 21回复贴,共1

成员变量和局部变量的区别

只看楼主收藏回复

在java中,变量可以分为局部变量和成员变量(即属性)两种。


1楼2013-05-07 14:19回复


    2楼2013-05-07 14:19
    收起回复
      2025-08-24 01:48:49
      广告
      不感兴趣
      开通SVIP免广告
      1、局部变量
      局部变量一般是指在方法体内部定义的变量,其作用域是在方法块内部有效。局部变量在使用时,必须先初始化然后才能使用,否则程序则不能通过编译,错误示例代码如下:
      public class Test{
      public void f1(){
      int i; // 变量i未初始化,编译将产生错误
      // int i = 0; 正确的使用方法
      System.out.pringtln(i);
      }
      }


      3楼2013-05-07 14:19
      收起回复
        这分得大刀阔斧 霸气
        就是看不出依据何在


        IP属地:广东4楼2013-05-07 14:20
        回复
          2、成员变量
          成员变量是指在类中定义的变量,也就是指属性,其作用域是在整个类中有效。成员变量在定义时可以不指定初始值,系统可以按默认原则初始化,具体初始化原则如下:
          Byte 0
          Short 0
          Int 0
          Long 0L
          Boolean false
          Float 0.0f
          Double 0.0d
          Char ‘\u0000’
          其他类型(引用类型) null


          5楼2013-05-07 14:20
          回复
            注意:被final修饰并且没有被static修饰的成员变量必须显式赋初值。


            6楼2013-05-07 14:21
            回复
              成员变量和局部变量的区别
              public,protect,private,static等修饰符可用于修饰成员变量,但不能修饰局部变量。final都可以修饰。
              成员变量存储在堆内存中,局部变量存储在栈内存中。
              作用域不同,成员变量在整个类中有效,局部变量在方法体中有效,在方法体外不可见。
              成员变量可以默认初始化,局部变量必须显式初始化。变量根据定义的位置不同可以分为成员变量和局部变量,使用时需注意两者的差别,例如使用范围、初始化规则以及变量开辟内存空间的大小等。
              附原文链接:
              http://www.51songl.com/member-variables-and-local-variables-of-the-difference.html


              7楼2013-05-07 14:22
              收起回复
                局部变量、成员变量主要是作用域的区别:
                成员变量-类内部;局部变量-方法体内部
                成员变量:可以由系统设定默认值;局部变量:必须设定初始赋值
                内存中的位置:成员变量所在类被实例化后,存在堆内存中;局部变量所在方法调用时,存在栈内存中。


                IP属地:广西8楼2013-06-05 19:43
                回复
                  2025-08-24 01:42:49
                  广告
                  不感兴趣
                  开通SVIP免广告


                  9楼2013-06-05 20:39
                  回复


                    10楼2013-06-05 20:47
                    回复


                      来自Android客户端11楼2013-06-22 04:01
                      回复