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等选项。
关于这个详细内容,稍后会进行说明。