欢迎访问宙启技术站
智能推送

Java函数中的局部变量和全局变量

发布时间:2023-05-21 20:11:36

Java程序设计语言简称Java,是一种面向对象的高级程序设计语言,由Sun Microsystems开发,于1995年正式发布。Java语言最大的特点就是具有跨平台性,可以在不同操作系统和硬件上运行,因此受到了广泛的应用。Java中的函数是程序执行的基本单元,也是跨平台的基础。函数中的局部变量和全局变量是Java程序设计中非常重要的概念,下面我来详细介绍一下。

一、局部变量

局部变量是在函数内部定义的变量,在函数外部无法访问。局部变量只在函数内部存在,并且在函数执行完毕后就会被销毁。局部变量的作用范围仅限于它所在的代码块或函数。在函数的参数中定义的变量也是局部变量。在Java中,局部变量使用前必须先初始化,否则会编译错误。

示例代码

public class LocalVariableTest {

public static void main(String[] args) {

LocalVariableTest lvt = new LocalVariableTest();

lvt.printNumber();

}

public void printNumber() {

int number = 10; // 局部变量必须先初始化

System.out.println(number);

}

}

在上面的代码中,定义了一个printNumber()函数,并在函数内部定义了一个名为number的局部变量,赋值为10。这里如果不对number进行初始化,则编译会报错。 

二、全局变量

全局变量通常也叫做成员变量,是在类内部定义,在整个类中都可使用的变量。类中的每个对象都共享这些变量。全局变量有默认的初值。如果不设置初值,则数值型变量默认值为0,布尔型变量默认为false,对象型变量默认值为null。全局变量可以在定义时初始化,也可以在构造方法中初始化。全局变量的作用域范围是整个类。在Java中,全局变量定义时必须加上访问修饰符,如private、public、protected等。

示例代码

public class GlobalVariableTest {

private int number = 10; // 定义一个成员变量并初始化为10

public void printNumber() {

System.out.println(number);

}

public static void main(String[] args) {

GlobalVariableTest gvt1 = new GlobalVariableTest();

GlobalVariableTest gvt2 = new GlobalVariableTest();

gvt1.printNumber();

gvt2.number = 20; // 全局变量可以在任何地方被修改

gvt2.printNumber();

}

}

在上面的代码中,定义了一个GlobalVariableTest类,其中定义了一个名为number的全局变量,并赋值为10。在printNumber()函数中输出number的值,默认为10。同时,定义了两个对象gvt1和gvt2,分别调用printNumber()函数,输出的结果分别为10和20,即全局变量可以在任何地方被修改。

三、局部变量和全局变量的区别

1.作用域范围:局部变量的作用域仅限于它所在的代码块或函数,全局变量的作用域范围是整个类。

2.存储位置:局部变量存储在栈上,函数执行完毕就被销毁;全局变量存储在堆上,类中的每个对象都共享这些变量。

3.访问权限:局部变量只在函数内部可以访问,外部无法访问;全局变量可以被整个类中的所有对象访问。

4.初始值:局部变量需要在使用前进行初始化,否则编译会报错;全局变量有默认的初始值,数值型变量默认值为0,布尔型变量默认为false,对象型变量默认值为null。

5.生存周期:局部变量在函数执行完毕后就被销毁;全局变量在程序运行期间一直存在,直到程序结束。

四、总结

局部变量和全局变量是Java程序设计中非常重要的概念,在程序设计时要根据需要灵活运用,合理使用它们可以提高程序的效率,使代码更加简洁易懂。在选择使用局部变量还是全局变量时,需要考虑到变量的作用域范围、存储位置、访问权限、初始值和生存周期等方面的差异,从而更好地完成程序设计的任务。