学习笔记1“局部变量静态变量与成员变量的区别”
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
学习笔记1“局部变量、静态变量与成员变量的区别”
写在前面——之前一直搞不清楚各种变量,特此整理,不完善的地方欢迎大家批评指正!首先是局部变量和成员变量的区别:
1、在类中的位置不同
成员变量在类中方法外,而局部变量则是方法内或者方法声明上。
2、在内存中的位置不同
成员变量加载到堆内存而局部变量则是在栈内存。
3、生命周期不同
成员变量是随着对象的存在而存在,随着对象的消失而消失;而局部变量
则是随着方法的调用而存在,随着方法的调用完毕而消失。
4、初始化值不同
成员变量都有默认的初始化值而局部变量则没有默认的初始化值,必须先
定义赋值,才能使用。
除此之外,局部变量和成员变量的名字可以相同,如果出现了同名的变
量,遵循就近原则。
示例:
*/
class Demo{
//成员变量
int num=10;
public void method(){
//局部变量
//int a=5;
//int num=20;
System.out.println(num);
}
}
class Test{
public static void main(String[]args){
//创建对象
Demo d=new Demo();
//System.out.println(d.num);
//释放对象
//d=null;
//System.out.println(d.num);
//调用method()方法
d.method();
}
然后是静态变量与成员变量的区别
1、所属不同
静态变量属于类,被类的所有对象共享,所以又称为类变量;而成员变量只属于对象,
所以也称为实例变量(对象变量)。
2、内存中位置不同
静态变量存储于方法区的静态区,而成员变量存储于堆内存。
3、内存出现时间不同
静态变量随着类的加载而加载,随着类的消失而消失;成员变量随着对象的创建而存在,随着对象的消失而消失。
4、调用不同
静态变量可以通过类名调用,也可以通过对象调用,如:
对象名.静态成员
类名.静态成员
而成员变量只能通过对象名调用,如:
对象名.成员变量
示例:
class Person{
private String name;//姓名
private int age;//年龄
static String country;//国家
//构造方法
public Person(){}
//带有一个参数的构造方法
public Person(String name){
=name;
}
//带有二个参数的构造方法
public Person(String name,int age){
=name;
this.age=age;
}
//带有三个参数的构造方法
public Person(String name,int age,String country){
=name;
this.age=age;
this.country=country;
}
//显示成员信息
public void show(){
System.out.println(name+"---"+age+"---"+country);
}
}
class PersonDemo{
public static void main(String[]args){
//创建对象
Person p1=new Person("张三",38,"中国");
Person p2=new Person("李四",43);
Person p3=new Person("王五",43);
p1.show();
p2.show();
p3.show();
p3.country="日本";
p3.show();
p1.show();
p2.show();
//-------------
//静态的方式
System.out.println(Person.country);
}
}