#三问:
什么是变量?
变量的作用?
如何使用变量?
变量:变量是指内存中的一个存储区域,该区域要有自己的类型(数据类型)、'名称(变量名),该区域的数据可以在同一数据类型的范围内不断变化,分为成员变量和局部变量;
成员变量与局部变量的区别
1、在类中的位置不同
成员变量:在类中方法外面(又分为静态变量和实例变量)
例如:
public class Test {
static int age;//静态变量,在类外通过类名进行调用
int inc =0 ;//实列变量,通过实例对象的get()方法进行调用
public int getInc() {
return inc;
}
}
局部变量:在方法或者代码块中,或者方法的声明上(即在参数列表中)
2、在内存中的位置不同,可以看看Java程序内存的简单分析
成员变量:在堆中(方法区中的静态区)
局部变量:在栈中
3、生命周期不同
成员变量:随着对象的创建而存在,随着对象的消失而消失
局部变量:随着方法的调用或者代码块的执行而存在,随着方法的调用完毕或者代码块的执行完毕而消失
4、初始值
成员变量:有默认初始值
局部变量:使用局部变量时,需要初始化否则报错 Variable ‘name’ might not have been initialized
public class Demo {
String name = “成员变量”;
public static void main(String[] args) {
new Demo().show();
}
public void show() {
String name="局部变量";
System.out.println(name);
}
}
输出结果:局部变量
我们看到输出的是show方法中定义的name变量,在使用变量时遵循的原则是就近原则,那么如何访问到成员变量name呢,Java中提供了this(表示调用对象本身)这个关键字用于访问成员变量,
public class Demo {
String name = “成员变量”;
public static void main(String[] args) {
new Demo().show();
}
public void show() {
String name="局部变量";
System.out.println(this.name);
}
}
对于静态变量:
静态方法中不能直接调用非静态变量,但可以直接调用静态变量
方法中却可以直接调用静态变量