JAVA基础-2:变量作用域

   软件即是程序+数据,程序是以某种规则告知计算机如何操作数据。因此对于程序员来说,最应该时刻铭记的是:你操作在什么数据
so...变量的作用域的重要性就显得尤为重要!

在JAVA中,变量的作用域分为四个级别:类级、对象实例级、方法级、块级。
      类 对象实例 方法 代码块
  类级变量又称全局级变量静态变量,需要使用static关键字修饰
类级变量在类定义后就已经存在,占用内存空间,可以通过类名来访问,不需要实例化
  对象实例级变量就是成员变量,实例化后才会分配内存空间,才能访问。访问的时候需要使用实例对象才能进行访问(如object.memberVariablesthis.memberVariables)。
成员变量是定义在方法之外,类之内的。成员变量随着对象的创建而存在,随着对象的消失而消失。
  方法级变量就是在方法内部定义的变量,就是局部变量。局部变量在调用了对应的方法时执行到了创建该变量的语句时存在,局部变量的作用域从它被声明的点开始,到方法体结束。一旦方法出栈,局部变量就访问不到了   块级变量就是定义在一个块内部的变量,变量的生存周期就是这个块,出了这个块就消失了,比如 if、for 语句的块。块是指由大括号包围的代码

上代码样例:

public class Scope {

  /**
   * 类级变量
   */
  public static String str = "我是类级变量";

  /**
   * 对象实例级变量
   */
  final int num = 10;

  public void display() {
    // 方法级变量
    int num = 20;
    // 方法级变量
    String str = "我是方法级变量";
    System.out.println("类级变量: " + str);
    Runnable runnable = new Runnable() {

      /**
       * 类级变量
       */
      final int num = 30;

      @Override
      public void run() {
        // 方法级变量
        int num = 40;
        // this关键字代表当前对象即变量 runnable ,访问该对象的对象实例级变量num(value=30)
        System.out.println("num = " + this.num);
      }
    };
    runnable.run();
  }

  public static void main(String[] args) {
    Scope scope = new Scope();
    scope.display();
    System.out.println("类级变量: " + Scope.str);
    System.out.println("对象实例级变量: " + scope.num);
    if (true) {
      // 块级变量
      String str = "块级变量";
      System.out.println(str);
    }
  }
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
禁止转载,如需转载请通过简信或评论联系作者。