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

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

1.定义的位置不一样

 局部变量:在方法内部定义

 成员变量:在方法外部定义,直接写在类当中

2.作用范围不一样

 局部变量:只有方法当中才可以使用,出了方法就不能再用

 成员变量:整个类全部都可以通用.

3.默认值不一样

 局部变量:没有默认值,如果想使用,必须手动进行赋值

 成员变量:如果没有赋值,会有默认值,规则和数组一样

4.内存的位置不一样

 局部变量:位于栈内存

 成员变量:位于堆区内存

5.生命周期不一样

 局部变量:随着方法进栈而诞生,随着方法出栈而消失

 成员变量:随着对象创建而诞生,随着对象被垃圾回收而消失

1
2
3
4
5
6
7
8
9
10
11
public class Main3 {

public static void main(String[] args) {
Phone one = new Phone();//在堆区诞生
int a;//在栈区诞生

System.out.println(one.color);//默认值为null
//System.out.println(a);//int a没有初始化,所以不能被使用.

}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//类的定义
public class Phone {
//成员变量在整个类作用域有效
String brand;//产品
double price;//价格
String color;//颜色

public void printAll()
{
System.out.println(brand);
System.out.println(price);
System.out.println(color);
}

}