学习笔记1“局部变量静态变量与成员变量的区别”

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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);

}

}

相关文档
最新文档