Java的变量作用域

本文讲述了Java编程中全局变量和局部变量的概念、作用域、生命周期、默认值、访问规则以及修饰符的区别,通过实例详细解析了两者在代码中的行为差异。
摘要由CSDN通过智能技术生成

基本使用

在面向对象中,变量作用域是一个非常重要的知识点。

  1. 在Java编程中,主要的变量就是属性(成员变量)和局部变量。
  2. 我们说的局部变量一般是指在成员方法中定义的变量。
  3. Java作用于的分类:
  • 全局变量:也就是属性,作用域为整个类体
  • 局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中!

     4.全局变量(属性)可以不用赋值,直接使用,若没有赋值,则会之默认值,局部变量必须赋值后才能 使用,没有默认值。

举例代码如下:

局部变量没有赋值直接报错:

 注意事项和使用细节

  1. 属性和局部变量可以重名,访问时遵循就近原则。
  2. 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名。
  3. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡;局部变量生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡,即在一次方法调用过程中。
  4. 作用于范围不同
  • 全局变量/属性:可以在本类使用,或其他类使用(通过对象调用)
  • 局部变量:只能在本类中对应的方法中使用

      5.修饰符不同

  • 全局变量可以加修饰符
  • 局部变量不可以加修饰符

举例说明:

public class VarScopeDetail {
    public static void main(String[] args) {
        Person person = new Person();
        /*
        属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡;
        局部变量生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡,即在一次方法调用过程中。
         */
        person.say();
        /*
        当执行say方法时,say方法的局部变量(比如name)会创建,当say执行完毕后,
        name局部变量会销毁,但是属性(局部变量)仍然可以使用
         */
    }
}

class Person{
    String name = "张三";
    public void say(){
        //属性和局部变量可以重名,访问时遵循就近原则。
        String name = "jack";
        System.out.println("name=" + name);
    }
}

class Student{
    //全局变量/属性:可以在本类使用,或其他类使用(通过对象调用)
    public void test1(){
        Person person = new Person();
        System.out.println(person.name);
    }
    public void test2(Person person){
        System.out.println(person.name);
    }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值