Java 变量的作用范围

是为了解释本文的目标

我正在学习Java,并且为了巩固知识,我将学到的内容整理成文章进行输出。下面是我将学到的内容进行分类并进行记录。

・Java变量声明、初始化、数据类型(类型转换和类型提升)
・类型转换
・变量的作用域
・字符串操作(准备中)
・数组操作(准备中)
・运算符(准备中)
・条件分支(准备中)
・循环处理(准备中)
・关于类(准备中)
・抽象类(准备中)
・接口(准备中)
・封装(准备中)
・关于模块(准备中)

变量的作用域

变量的范围指的是定义的变量的有效范围。

本地变量

基本上,变量不能从声明的位置之外被访问。在方法内声明的变量仅在该方法内有效。这被称为局部变量。

public class Main {
    public static void main(String[] args) {

        int one = 1;

        {
            int two = 2;
        } 
        System.out.println(one + two);
    } 
}

因为在上述的程序中,由于在inner的作用域范围之外调用了inner函数,所以会出现错误。
按照下述方式进行修改后,程序将能够正常运行。

public class Main {
    public static void main(String[] args) {

        int one = 1;
        {
            int two = 2;
            System.out.println(one + two);
        } 
    }
}

转述如下:

3

因为one在two的内部被调用,所以它也可以在two的内部使用。

在定义变量的作用域之外,无法使用在作用域内定义的变量。
另外,如下所示,if语句的{}内部是一个作用域,一旦超出该作用域,就无法访问在if语句内部定义的变量。

class Main{
  public static void main(String args[]){
    int n = 5;

    if (n == 5) {
      String seikai = "nは5です";
    }
    System.out.println(seikai);
  }
}


执行结果

seikai cannot be resolved to a variable

在if语句中调用seikai,即可执行。

class Main{
  public static void main(String args[]){
    int n = 5;

    if (n == 5) {
      String seikai = "nは5です";
      System.out.println(seikai);
    }
  }
}

执行结果

nは5です

关于for循环也是一样的。

class Main{
  public static void main(String args[]) {

    for (int i = 5; i <= 10; i++) {
      System.out.println(i);  //実行可
    }
    System.out.println(i);  //実行不可
  }
}

执行结果

i cannot be resolved to a variable

只需要一个选项,将以下内容用中文进行本地化:
在for循环中调用i变量可以执行。

class Main{
  public static void main(String args[]) {

    for (int i = 5; i <= 10; i++) {
      System.out.println(i);
    }
  }
}

执行结果

5
6
7
8
9
10

成员变量(字段)

除了像上述的局部变量之外,还有一种称为成员变量的变量。在类方法之外声明的变量被称为成员变量(字段)。即使在方法之外,成员变量也可以在同一个类中引用。
此外,Java不允许直接从外部操作数据,如果要引用另一个类中的变量,则可以通过使用修饰符来实现这一点。

修飾子:决定类和其成员可从何处访问的元素。包括private、protected、public等选项。

关于这个详细内容,稍后会进行说明。

广告
将在 10 秒后关闭
bannerAds