Java常量与变量
在程序执行过程中,其值不能被改变的量称为常量,其值能被改变的量称为变量。
Java关键字
int | public (公有的,可跨包) | new | finally | throw (抛出一个异常对象) |
continue | float | long | short | extends (继承,用于类继承类) |
return | break | for | static (用于声明静态成员,被类的所有实例对象共享) | do (运行,常与while连用) |
if | goto | default | byte | protected (受保护的,当前包内可用) |
strictfp (严格精准) | package (用于定义包) | super (调用父类的方法) | void | final (最终的不可被改变的, final修饰的类不能被继承, final修饰的方法不能被子类重写,final修饰的属性就是常量 ) |
else | catch | implements (实现,用于类或接口实现) | private (限定访问权限为私有,当前类可用) | instanceof (用于检查对象是否是特定类型的实例) |
extends (继承,用于类继承类) | volatile (用于声明变量在多线程环境中可见) | while | synchronized (用于同步方法或代码块,线程同步) | this (当前类的父类的对象,调用当前类中的方法) |
try | import | transient (用于声明字段不被序列化) | boolean | abstract (声明抽象) |
interface (用于定义接口) | case (返回开关里的结果) | switch (用于多重选择语句) | class | enum (枚举,代表一组常用常量,可用来代表一类相同类型的常量) |
null (空值) | char | native (用于声明本地方法) | double | throws (在执行这个方法的时候,可能产生一个异常,如果产生异常了,那么谁调用了这个方法,就抛给谁) |
1 常量
程序运行过程中一直不会改变的量称为【常量(constant)】,也被称作【final变量】,常量在整个程序中只能被赋值一次。
Java声明一个常量除了要指定数据类型,还需通过【final】关键字进行限定,标准语法:
final 数据类型 常量名称[=值]
//声明常量
final double PI = 3.141592D; //声明double型常量并赋值
final boolean BOOL = false; //声明boolean型常量并赋值
当定义的final常量是成员变量/全局变量时,必须在定义时就赋值初始值,否则编译会报错。
public class Part {
static final double PI = 3.1415d; //声明常量PI为成员变量,如果这里不赋值,会错误提示
static int age = 6; //声明int型并赋值变量
public static void main(String[] args) {
final int number; //声明int型常量number
number = 1225; //对常量进行赋值
age = 31; //再次对变量age进行赋值
//number = 1236; //错误代码,因为number为常量,常量只能进行一次赋值
System.out.println("常量PI的值为:" + PI);
System.out.println("赋值后number的值为:" + number);
System.out.println("int型变量age的值为:" + age);
}
}
输出:
常量PI的值为:3.1415
赋值后number的值为:1225
int型变量age的值为:31
2 变量
2.1 成员变量
在类体中所定义的变量称为【成员变量/全局变量】,成员变量的作用域为整个类,类的成员变量又分为【静态变量】和【实例变量】
2.1.1 静态变量
2.1.2 实例变量
class Var{
int x = 45; //x为实例变量
static int y = 90; //y为静态变量/类变量
}
示例中,x为实例变量,y为静态变量(也称作类变量),如果在成员变量的前面加上关键字static,这样的成员变量就称为静态变量。静态变量的有效范围可以跨类,甚至可以到达整个应用程序内,静态变量既能在定义它的类中访问使用,也能直接以【类名.静态变量名】的方式在其他类中访问使用。
2.2 局部变量
类的方法体中定义的变量(包括方法的参数)称为【局部变量】,局部变量只在当前方法代码块中有效。
局部变量的生命周期取决于方法被调用,方法被调用时JVM为方法中的局部变量分配内存空间,当该方法调用结束后,就会释方法中放局部变量占用的内存空间。
局部变量可与成员变量(全局变量)同名,此时成员变量将被隐藏,即这个成员变量在此方法中暂时失效。
变量的作用域
public class Val {
static int times = 3; //定义成员变量
public static void main(String[] args) {
int times = 4; //定义局部变量
System.out.println("times的值为:" + times);
}
}
输出:
times的值为:4