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

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

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

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

      • 实例变量:不用 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;
      // 方法局部变量
      }
      }
  • 定义位置不同:

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

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

    • 代码理解:

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

      

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

    • 作用范围不同:

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

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

      • 代码理解:

        /**
        * @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);
        }
        }

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

  • 默认值不同:

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

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

    • 代码理解:

      /**
      * @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);
      }
      }

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

Java 成员变量与局部变量的更多相关文章

  1. Java成员变量和局部变量

    Java成员变量和局部变量 一.成员变量和局部变量 二.static关键字 三.成员变量和静态变量区别 四.main函数 五.静态函数什么时候用 六.静态代码块 七.构造代码块 构造代码块先于构造函数 ...

  2. Java 成员变量和局部变量

    1.成员变量 在类中定义,用来描述对象将要有什么. 2.局部变量 在类的方法中定义,在方法中临时保存数据. 成员变量和局部变量的区别 作用域不同: 局部变量的作用域仅限于定义它的方法 成员变量的作用域 ...

  3. java 成员变量和局部变量的区别

    将对象的存储在数组中会报错 public static void main(String[] args) { ArrayList<Goods> arrayList = new ArrayL ...

  4. Java成员变量与局部变量的区别

    从语法形式上看,成员变量是属于类的,而局部变量是在方法中定义的变量或是方法的参数:成员变量可以被public,private,static等修饰符所修饰,而局部变量不能被访问控制修饰符及static所 ...

  5. Java成员变量与局部变量同名

    看到成员变量和局部变量同名这个知识点的时候一开始有点懵逼,想了一下其实特别简单. 先来看一个简单的代码. 首先我定义了一个Person类. public class Person { private ...

  6. Java成员变量和局部变量区别

    成员变量和局部变量区别 变量根据定义位置的不同,我们给变量起了不同的名字.如下图所示: 区别 在类中的位置不同  (重点) 成员变量:类中,方法外 局部变量:方法中或者方法声明上(形式参数) 作用范围 ...

  7. 7.3 java 成员变量和局部变量区别

    /* * 成员变量和局部变量的区别: * A:在类中的位置不同 * 成员变量:类中,方法外 * 局部变量:方法中或者方法声明上(形式参数) * B:在内存中的位置不同 * 成员变量:堆内存 * 局部变 ...

  8. java成员变量与局部变量修饰符的区别

    成员变量: 可以被 public,static ,protected,default,final修饰. 局部变量:包括方法里的和 代码块里的(静态和非静态) 可以被default, final修饰 参 ...

  9. java成员变量和局部变量的初始化和内存中的运行机制

    成员变量: 当系统加载类或创建类的实例时,系统会自动为成员变量分配内存空间,并在分配内存空间后,自动为成员变量指定初始值. eyeNum是类属性.name是实例属性 所有person实例访问eyeNu ...

随机推荐

  1. 一次操作系统报错OutOfMemory Error的处理记录

    在启动公司内嵌的tomcat容器时出现报错, 如下: # There is insufficient memory for the Java Runtime Environment to contin ...

  2. java StringBuffer 与 StringBuilder

    String是不可变类,一旦String对象被创建,包含在对象中的字符序列是不可变的,直到对象被销毁: StringBuffer 与 StringBuilder对象则是可变的! 举例说明这两个的好处: ...

  3. Vue递归菜单

    一.效果图: 二.代码(Vue Cli 快速原型开发) App.vue <template> <div id="app"> <template v-f ...

  4. 51nod 1380"夹克老爷的逢三抽一"(贪心+set)

    传送门 •参考资料 [1]:51Nod-1380-夹克老爷的逢三抽一 •题意 从长度为 n 的数组中抽取 $\frac{n}{3}$ 个不相邻的值使得加和最大(首尾也不能同时取) •题解 贪心选择当前 ...

  5. H5 网络状态接口

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  6. java 内省综合案例和Beanutils工具包

    演示用eclipse自动生成 ReflectPoint类的setter和getter方法. 直接new一个PropertyDescriptor对象的方式来让大家了解JavaBean API的价值,先用 ...

  7. vue 改变数据DOM不更新,获取不到DOM的解决方法

    1.获取不到DOM的解决方案(使用$nextTick) 定义:在下次 DOM 更新循环结束之后执行延迟回调.在修改数据之后立即使用这个方法,获取更新后的 DOM. 理解:nextTick(),是将回调 ...

  8. tf.contrib.learn.preprocessing.VocabularyProcessor()

    tf.contrib.learn.preprocessing.VocabularyProcessor (max_document_length, min_frequency=0, vocabulary ...

  9. js 实用技巧 短路求值

    &&运算符  如果操作有false  则返回false  例如 0&&1  // 返回0 true&&false  //返回false 0&&a ...

  10. ASP.NET Core 连接 GitLab 与 MatterMost 打造 devops 工具

    在现代化开发工具链里面就包含了自动化的通讯工具,而日志写代码我是推到 Gitlab 平台上,我今天听了郭锐大佬的分享之后,感觉我现在的团队的自动化做的远远不够.我在他的课程上学到的最重要一句话就是做工 ...