问题:什么是成员变量与局部变量
- 成员变量:类中的方法外的变量 就是成员变量
- 局部变量:方法中的变量 局部变量
区别 | 成员变量 | 局部变量 |
类中位置不同 | 类中方法外 | 类中方法里 |
内存中 位值 | 堆内存 | 栈内存 |
生命周期不同 | 随着对象存在而存在,随着对象消失而消失 | 随方法调用存在而存在,随方法结束消失而消失 |
初始化值不同 | 有默认的初始值 | 没有默认的初始化值,必须先定义赋值后使用 |
Student.java如下:
package com.面向对象;public class Student {String name;int age;public void work() {System.out.println("开始敲代码...");}public void work2() {
// public void work2(int i){// 在方法中传递的参数(形参)也属于该方法里面的局部变量Student s = new Student(); // 单独的一个线程GC线程 在堆内存中 不可用的对象// new Student存放在堆内存中,s存放在栈空间中,直接引用到堆内存地址/*** 局部变量int i/age 在什么时候被销毁呢?work2方法执行结束之后* GC 垃圾回收* Student s ------引用到堆内存 new Studnet对象的内存地址*/int i = 20;int age = 30;// 局部变量 变量名称 在同一个方法中 不允许 存在 多个相同的变量名称int z;
// System.out.println(z); //局部变量 使用前 必须 先赋值System.out.println(this.age); // 成员变量 有默认初始值this.age = age; //在work2方法中 将局部变量age 赋值给 成员变量的age(在方法内调用成员变量使用this)}
}
下一篇文章:访问修饰符之private && this 关键字