什么是变量?
变量是什么呢?字眼看上去就是会变化的量,就是一个会改变大小的数据,那么这个变量应该怎么使用呢?
首先先了解它的两种命名方式:
//1.数据类型 标识符;
int a;
//2.数据类型 标识符 = value;
int a = 10;
需要注意的是,在java中,变量必须赋值后才能使用,否则报错。
变量有哪些?
局部变量(储存在栈)
或许你看过电视的天气预报,某天,你会听到某地区局部有雨,那么这个局部只是针对这个地区而言的,并不是全国。局部变量也是,它也是有范围的,超出这个范围就无法使用它了。对它的定义就是方法体内。
public static void main(String[] args){
int a = 10; //超出这个方法体就无法使用它了
}
成员变量(存储在堆)
它的定义是方法体外,类体内,相对于局部变量,成员变量的使用范围就更大了。
public class Test {
int a; //成员变量
String name; //成员变量
public static void main(String[] args) {
int b = 10; //局部变量
}
}
那么,对于成员变量,如何使用它。它需要通过对象的方式来使用它,即:
public class Test {
int a; //成员变量
String name; //成员变量
public void use() {
Test test = new Test();
System.out.println(test .a); //使用成员变量,"test."可以省略
}
}
注意一个小细节,上面我们说,变量必须赋值才能使用。而成员变量不需要,因为它是通过对象来使用的,对象通过new的方式来创建,对象一旦实例化结束了,此时的成员变量就有了默认值。
常见类型的默认值:
//数据类型的默认值
//命名不规范,为了更好的表达
byte、short、int、long name = 0;
char name = ''; (空串)
double、float name = 0.0;
boolean name = false;
//引用数据类型的默认值为null
静态变量(存储在方法区)
使用static关键字修饰的是静态变量,静态变量不需要对象,通过类名的方式来使用,比如:
public class Test{
static int age = 10;
public static void main(String[] args){
Test test = new Test();
System.out.println(Test.age); //10
test.get(); //10
}
public void get(){
System.out.println(age);
}
}
思考:局部变量、成员变量、静态变量分别使用在什么地方?
通过上面的代码,你可以发现:
局部变量:只能在某一个在方法体内。
成员变量:通过对象来使用,可以理解为对象有一个属性,而且不能在静态方法中使用。
静态变量:通过类名来使用,可以出现在实例方法和静态方法里。