zoukankan      html  css  js  c++  java
  • 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

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

  • 相关阅读:
    2017.10.27
    2017.10.26
    codeforces 652 E Pursuit For Artifacts
    bzoj 1123 BLO
    bzoj 2839 集合计数
    bzoj 3170: [Tjoi 2013]松鼠聚会
    bzoj 2503 相框 欧拉回路
    bzoj 1786 [Ahoi2008]Pair 配对
    bzoj 1014 [JSOI2008]火星人prefix 哈希+splay
    csp-s74 瓶颈
  • 原文地址:https://www.cnblogs.com/liyihua/p/11833640.html
Copyright © 2011-2022 走看看