Java 局部变量
局部变量声明在方法、构造方法或者语句块中。
局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁。
局部变量必须在使用前声明,并且不能被访问修饰符修饰,因为它们的作用域已经被限制在了声明它们的方法、代码块或构造函数中。
局部变量只在声明它的方法、构造方法或者语句块中可见,不能被其他方法或代码块访问。
局部变量是在栈上分配的。
局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。
局部变量的声明语法为:
type -- 表示变量的类型。
variableName -- 表示变量的名称。
局部变量必须在使用之前进行初始化,否则编译器会报错。初始化可以在声明时或后面的代码中进行。如果在声明时未初始化,变量将被赋予默认值,如 int 类型的变量默认为 0,boolean 类型的变量默认为 false,引用类型的变量默认为 null。
局部变量只在声明它的方法、构造方法或语句块内可见,其他方法、构造方法或语句块不能访问该局部变量。当方法、构造方法或语句块执行完毕后,局部变量将被销毁,其占用的内存也会被释放。
实例
以下是一个简单的例子,展示了局部变量的使用:
实例
以上实例中我们声明并初始化了两个局部变量 a 和 b,然后打印出它们的值。注意,如果在使用局部变量之前不初始化它,编译器会报错。
在以下实例中 age 是一个局部变量,定义在 pupAge()方法中,它的作用域就限制在这个方法中:
以上实例编译运行结果如下:
在下面的例子中 age 变量没有初始化,所以在编译时会出错:
以上实例编译运行结果如下:
成员变量(实例变量)
成员变量声明在一个类中,但在方法、构造方法和语句块之外。
当一个对象被实例化之后,每个成员变量的值就跟着确定。
成员变量在对象创建的时候创建,在对象被销毁的时候销毁。
成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取实例变量信息。
成员变量可以声明在使用前或者使用后。
访问修饰符可以修饰成员变量。
成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见。
成员变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是 false,引用类型变量的默认值是 null。变量的值可以在声明时指定,也可以在构造方法中指定;
成员变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。
成员变量的声明语法为:
accessModifier --表示访问修饰符,可以是 public、protected、private 或默认访问级别(即没有显式指定访问修饰符)。
type -- 表示变量的类型。
variableName -- 表示变量的名称。
与局部变量不同,成员变量的值在创建对象时被分配,即使未对其初始化,它们也会被赋予默认值,例如 int 类型的变量默认值为 0,boolean 类型的变量默认值为 false。
成员变量可以通过对象访问,也可以通过类名访问(如果它们是静态成员变量)。如果没有显式初始化成员变量,则它们将被赋予默认值。可以在构造函数或其他方法中初始化成员变量,或者通过对象或类名访问它们并设置它们的值。
实例
以下实例我们声明了两个成员变量 a 和 b,并对其进行了访问和设置。注意,我们可以通过对象访问成员变量,也可以通过类名访问静态成员变量。
实例
以上实例编译运行结果如下: