Java 成员变量与局部变量

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

  • 什么是局部变量、什么是成员变量:

    • 局部变量:在方法内部的变量

      • 形参:在方法签名中定义的变量。
      • 方法局部变量:在方法内部定义的变量。
      • 代码块局部变量:在代码块内定义的变量。
    • 成员变量:定义在类里的变量

      • 实例变量:不用 static 修饰的变量。
      • 类变量:static 修饰的变量。
    • 代码:

      /**
       * @Author: YiHua Lee
       * @Version: jdk1.8.0_221.jdk, x86_64: "Java SE 8"
       * @Application: IntelliJ IDEA
       * @CreateTime: 2019/11/11 9:17 上午
       * @Package: PACKAGE_NAME
       * @Description:
       */
      public class ValueDifference {
          String name;
          // 实例变量
      
          static int id;
          // 类变量
      
          public ValueDifference(int id1, String name1) {
              this.name = name1;
              id = id1;
          }
      
          public void value1(int number) {
              int age;
              // 方法局部变量
      
              for (int i = 0; i < number; i++) {
                  System.out.println("i 代码块局部变量");
              }
          }
      
          public static void value2() {
              String gender;
              // 方法局部变量
          }
      }
      View Code
  • 定义位置不同:

    • 局部变量:在方法内部。

    • 成员变量:在方法的外部,直接写在类当中的变量。

    • 代码理解:

      /**
       * @Author: YiHua Lee
       */
      
      public class ValueDifference {
          String name;
          // 成员变量
      
          public void value() {
              int id;
              // 局部变量
          }
      }
      View Code

      

      注意:什么是局部变量、什么是成员变量

    • 作用范围不同:

      • 局部变量:只有在方法中才可以使用,如果出了方法,就不可以再用了。

      • 成员变量:整个类中都是可以使用的。

      • 代码理解:

        /**
         * @Author: YiHua Lee
         */
        public class ValueDifference {
            String name;
            // 成员变量
        
            public void value1() {
                int id1;
                // 局部变量
                System.out.println(id2);
            }
        
            public void value2() {
                int id2;
                // 局部变量
                System.out.println(id1);
            }
        }
        View Code

        注意:什么是局部变量、什么是成员变量

  • 默认值不同:

    • 局部变量:没有默认值,假如想使用,一定要手动进行赋值。

    • 成员变量:如果没有赋值,会有默认值

    • 代码理解:

      /**
       * @Author: YiHua Lee
       */
      public class ValueDifference {
          String name;
          // 成员变量
      
          public void value1() {
              int id1;
              // 局部变量
              System.out.println(id1);
              System.out.println(name);
          }
      
          public void value2() {
              int id2 = 2;
              // 局部变量
              System.out.println(id2);
              System.out.println(name);
          }
      }
      View Code

      注意:什么是局部变量、什么是成员变量

原文地址:https://www.cnblogs.com/liyihua/p/11833640.html