根据作用域的不同,变量通常分为不同类型:成员变量和局部变量。下面更详细地解释这些变量。
成员变量
Java中有两种类型的成员变量:全局变量和静态变量(类变量)。定义位于方法体和语句块之外,不属于任何方法,并且作用范围为整个类。
| 姓名 | 改变 | 使用权 | 生命周期 |
|---|---|---|---|
| 全局变量(实例变量) | 静止的 | 对象名.变量名 | 只要对象被视为引用,实例变量就存在。 |
| 静态变量(类变量) | 静止的 | 类名.变量名或对象名.变量名 | 它的生命周期取决于类的生命周期。一个类只有在被垃圾回收机制完全回收后才会被销毁。 |
假设类中声明了四个变量,下面是根据测试类的输出更改变量值的示例代码。
变量声明代码如下所示:
public class DataClass {
String name; // メンバ変数、インスタンス変数
int age; // メンバ変数、インスタンス変数
static final String website = "IT基礎"; // メンバ変数、静的変数(クラス変数)
static String URL = "https://it-kiso.com"; // メンバ変数、静的変数(クラス変数)
} 这是测试类的代码:
public class Test {
public static void main(String[] args) {
// クラスのオブジェクトを作成する
DataClass dc = new DataClass();
// オブジェクト名.変数名でインスタンス変数(グローバル変数)を呼び出す
System.out.println(dc.name);
System.out.println(dc.age);
// オブジェクト名.変数名で静的変数(クラス変数)を呼び出す
System.out.println(dc.website);
System.out.println(dc.URL);
// クラス名.変数名で静的変数(クラス変数)を呼び出す
System.out.println(DataClass.website);
System.out.println(DataClass.URL);
}
} 本例中的第一段代码定义了四个成员变量,输出显示了name和age的系统默认初始化值,以及website和URL的初始化值,可以看到显示的值。此外,必须为使用 static Final 修改的变量分配初始值。
局部变量
局部变量是指在方法或方法代码块中定义的变量,其作用域是它所在的代码块。它可以分为以下三种类型。
- 方法参数变量(parameters):在整个方法中有效。
- 方法局部变量(在方法内定义):从变量定义时到方法结束期间有效。
- 代码块局部变量(在代码块内定义):从该变量的定义到代码块末尾有效。
局部变量在使用之前必须由程序员主动初始化为一个值。
1)方法局部变量
声明两个局部变量并打印它们的值的实现代码如下:
publicクラスTest2 {
public static void main(String[] args) {
int a = 7;
if (5 > 3) {
int s = 3; // int型のローカル変数を宣言
System.out.println("s=" + s);
System.out.println("a=" + a);
}
System.out.println("a=" + a);
}
} 上面的例子中,定义了两个局部变量a和s,int类型a的作用域是整个main()方法,int类型变量s的作用域是if语句执行的代码块内。
如果在if方法之外调用变量s,则会报错该变量无法解析。
2)方法参数变量
声明为方法参数的变量的范围是整个方法。
声明方法的参数变量。实现代码如下。
public class Test3 {
public static void testFun(int n) {
System.out.println("n=" + n);
}
public static void main(String[] args) {
testFun(3);
}
} 在上面的例子中,一个 testFun() 方法定义了一个 int 类型的参数变量 n,它的作用域在 testFun() 方法的主体内。调用该方法时,传递参数3,因此输出控制台中的n值为3。
3)代码块局部变量
代码块局部变量经常用在try catch代码块中,成为异常处理参数变量。
异常处理参数变量的作用域位于异常处理块内,并且与方法参数变量一样,它们将异常处理参数传递给异常处理块。
声明异常处理语句。实现代码如下。
public class Test4 {
public static void test() {
try {
System.out.println("こんにちは!例外発生!");
} catch (Exception e) { // 例外処理ブロック、引数は Exception 型
e.printStackTrace();
}
}
public static void main(String[] args) {
test();
}
} 上面的例子中,定义了一条异常处理语句,异常处理块catch的参数是一个Exception类型的变量e,作用域是整个catch块。




![2021 年如何设置 Raspberry Pi Web 服务器 [指南]](https://i0.wp.com/pcmanabu.com/wp-content/uploads/2019/10/web-server-02-309x198.png?w=1200&resize=1200,0&ssl=1)

