局部变量与成员变量,成员变量与类变量之间的区别
局部变量与成员变量
1.概念
成员变量:定义在类中,对象私有的特征;
局部变量:在方法钟定义,只能在方法内使用。
2.区别
2.1应用范围
成员变量:在整个类中都可以调用;
局部变量:只能在方法内调用,一旦出了方法不能用。
int num = 100;//成员变量
public static void main(String []args){
int age=20;//局部变量
}
在方法中调用成员变量就必须实例化
int num = 100;//成员变量
public static void main(String []args){
int age=20;//局部变量
System.out.println(age);
Demo d = new Demo();
System.out.println(d.num);
}
在整个类中调用
public void test(){
System.out.println(num);
}
成员变量在整个类中都可以调用,局部变量不能出方法内
2.2生存周期
成员变量:属于对象,随着对象的创建而创建,随着对象的消失而消失;
局部变量:一旦使用完成就销毁.
2.3存储位置
成员变量:因为属于对象,存在堆内存中, new;
局部变量:都是存在栈内存中,使用完成马上销毁。
2.4初始值
成员变量:成员变量因为存在堆中,如果没有赋值,有初始值
类型 | 初始值 |
---|---|
整数:byte、short、int、long | 0 |
浮点:double float | 0.0 |
booelan | false |
String | null |
类类型 | null |
类类型值得是什么?
class test{}
然后在另一个类直接实例化调用
test t= new test();
局部变量:没有初始值,必须手动的初始化,初始化后才能使用。
2.4.1:方法中的参数列表,语句中
2.4.2:必须赋值,如果没有初始值不能使用
2.4.3:存在栈内存中
成员变量与类变量
3.概念
成员变量:在类中定义,属于对象所私有
类变量:在类中定义,属于类,所有对象所共有的
案例:
public class Demo {
public static void main(String []args){
//创建对象
Demo test = new Demo();
System.out.println(test.a);
System.out.println(test.b);
}
}
test.a可以重新再次赋值,每次赋值后,syso输出都是当前值,成员变量信息的改变对其他没有任何影响
test.b一旦被改变,后面的全部都改变,以最后一次的为准(类变量)
class Demo{
int a=10;//成员变量
static b =100;//类变量
}