目录
变量的本质上就是代表一个“可操作的存储空间”,空间位置是确定的,但是里面放置什么值不确定。我们可通过变量名来访问“对应的存储空间”,从而操纵这个“存储空间”存储的值。
1、局部变量
局部变量需要声明,并且初始化才能使用
public class TestVariable{
public void testA(){
int a1,a2; //声明
a2 = 2; //赋值
{
int a3 = 3;
}
int a4 = 4;
System.out.print(a0); //报错,因为变量a0没有声明
System.out.print(a1); //报错,因为a1是方法testA()的局部变量,只声明,没有初始化赋值
System.out.print(a2);
System.out.print(a3); //报错,因为a3只是非静态代码块的局部变量,这里已经出了代码块范围
}
public void testA2(){
System.out.print(a4); //报错,因为a4是方法testA()的局部变量,在方法testA2()中已超出范围
}
}
2、成员变量
成员变量从属与对象,只需声明,如果没有赋值,会自行的初始化默认值。
public class TestVariable{
int b1;
public void testB(){
System.out.print(b1); //输出0,因为b1是类TestVariable的成员变量,在方法外部,方法内可以调用,成员会自动初始化,int类型的初始值为0.
System.out.print(b2); //报错,因为类TestVariable没有变量b2
TestVariable2 t2 = new TestVariable2();
System.out.print(TestVariable2.b2); //报错,因为b2并没有从属于类TestVariable2
System.out.print(t2.b2); //输出2,因为b2从属于对象t2
}
}
class TestVariable2{
int b2 = 2;
}
3、静态变量
静态变量从属于类,不能定义在方法内部,类在,静态变量在,生命周期伴随着类始终,从类加载到类卸载。
public class TestVariable{
public static void main(String[] s){
static int b = 6; //报错,静态变量从属于类,不能再方法内部定义
System.out.println(Test2.a); //输出5,因为从属于类TestVariable2
}
}
class TestVariable2{
public static int a = 5; //静态变量,从属于类
}
4、常量
在Java语言中,只要是利用关键字final来定义一个常量,常量一旦被初始化后不能再更改其值。
public class Test {
final int a = 5;
String name1 = "name1String"; //name1是变量,“name1String”是常量
final String name2 = "name2String"; //name2是变量,“name2String”是常量
name2 = "name3String"; //报错,name2是常量,不能再修改值
public void aa(){
final int m = 4;
System.out.println(name2);
}
public void aa2(){
System.out.println(m); //报错,m是方法aa()的常量
}
}