Java成员变量(全局变量)和局部变量

在Java中变量类型有成员变量局部变量静态变量(类变量、static变量),本篇文章主要介绍成员变量(全局变量)和局部变量的区别。

根据变量的作用范围,将程序中的变量分为成员变量(全局变量)和局部变量。

一、成员变量(全局变量)

成员变量(全局变量):定义在类中方法外的变量,成员变量的作用范围是整个类。

(1)成员变量声明在一个类中,但在方法、构造方法和语句块之外;
(2)当一个对象被实例化之后,每个成员变量的值就跟着确定;
(3)成员变量在对象创建的时候创建,在对象被销毁的时候销毁;
(4)成员变量的值应该至少被一个方法、构造方法或者语句块引用,使得外部能够通过这些方式获取成员变量信息;
(5)成员变量可以声明在使用前或者使用后;
(6)访问修饰符可以修饰成员变量;
(7)成员变量对于类中的方法、构造方法或者语句块是可见的。一般情况下应该把成员变量设为私有。通过使用访问修饰符可以使成员变量对子类可见;
(8)成员变量具有默认值。数值型变量的默认值是0,布尔型变量的默认值是false,引用类型变量的默认值是null。变量的值可以在声明时指定,也可以在构造方法中指定;
(9)成员变量可以直接通过变量名访问。但在静态方法以及其他类中,就应该使用完全限定名:ObjectReference.VariableName。

二、局部变量

局部变量:定义在方法中或某个结构中的变量,局部变量的作用范围仅限于对应的方法内或结构内。

(1)局部变量声明在方法、构造方法或者语句块中
(2)局部变量在方法、构造方法、或者语句块被执行的时候创建,当它们执行完成后,变量将会被销毁;
(3)访问修饰符不能用于局部变量;
(4)局部变量只在声明它的方法、构造方法或者语句块中可见;
(5)局部变量是在栈上分配的。
(6)局部变量没有默认值,所以局部变量被声明后,必须经过初始化,才可以使用。

public class Demo01 {

    public static void main(String[] args) {
        int num=1;
        do{
//            int num =1;局部变量
            System.out.println(num);
            num++;
        }while(num<=100);

    }

}

三、成员变量(全局变量)和局部变量的区别

(1)成员变量在声明的时候可以初始化(赋值),如果不赋值,系统会给成员变量赋予一个默认的初始值;局部变量在使用之前必须赋值,如果不赋值,会报错,系统不会给局部变量赋予一个默认值,一般局部变量会在声明的同时进行赋值。
      
(2)成员变量和局部变量可以同名,在使用的时候,局部变量具有更高的优先级(就近原则);

(3)一个类中不能有同名的成员变量,一个方法内不能有同名的局部变量,不同的方法内可以有相同名称的局部变量。

(4)成员变量:

          ①成员变量定义在类中,在整个类中都可以被访问。

          ②成员变量随着对象的建立而建立,随着对象的消失而消失,存在于对象所在的堆内存中。

          ③成员变量有默认初始化值。

      局部变量:

          ①局部变量只定义在局部范围内,如:函数内,语句内等,只在所属的区域有效。

          ②局部变量存在于栈内存中,作用的范围结束,变量空间会自动释放。

          ③局部变量没有默认初始化值

public class Demo02 {
    
    public String name;//成员变量
//    public String name;一个类中不能有同名的成员变量

    public void test(){
        int num=10;//局部变量
//        int num =10;一个方法内不能有同名的局部变量
        String name="张三";
        System.out.println(name);
        System.out.println(num);
    }
    
    public void test2(){
        int num =10;//局部变量
//        System.out.println(num);
    }

}

评论 6
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

豪仔思密达

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值