变量&常量
变量
- 每个变量都必须声明其类型
- 变量名必须是合法的标识符
- 变量声明是一条完整的语句,因此每个声明必须以分号结束
变量作用域
- 局部变量
方法或语句块内部定义的变量。生命周期是从声明位置开始到”}”为止。
在使用前必须先声明和初始化(赋初值)。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
public static void main(String[] args) {
int i;
int j = i+5 ; // 编译出错,变量i还未被初始化 System.out.println(j);
}
修改为:
public static void main(String[] args) { //变量i j只在方法main中有定义
int i=10;
int j = i+5 ;
System.out.println(j);
}
- 实例变量
方法外部、类的内部定义的变量。
从属于对象,生命周期伴随对象始终。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false,其他类型都是null)
public class Test {
// 这个实例变量对子类可见
public String name;
// 私有变量,仅在该类可见
private double salary;
...
}
- 类变量
使用static定义。
从属于类,生命周期伴随类始终,从类加载到卸载。
如果不自行初始化,他会自动初始化成该类型的默认初始值
(数值型变量初始化成0或0.0,字符型变量的初始化值是16位的0,布尔型默认是false,其他类型都是null)
public class Hello {
public static class Employee {
//salary是静态的私有变量
private static double salary;
// DEPARTMENT是一个常量
public static final String DEPARTMENT = "开发人员";
public static void main(String[] args){
salary = 10000;
System.out.println(DEPARTMENT+"平均工资:"+salary);
//结果是:开发人员平均工资:10000.0
}
}
}
常量
所谓常量可以理解成一种特殊的变量,它的值被设定后,在程序运行过程中不允许被改变。
public class Hello {
static final double PI = 3.14;//常量通常用大写表示
public static void main(String[] args){
System.out.println(PI);
}
}