作用域

SOBER大约 2 分钟

作用域

基本使用

  1. 在java编程中,主要的变量就是属性(成员变量)和局部变量
  2. 我们说的局部变量一般是指在成员方法中定义的变量。[举例 Cat类: cry]
  3. java中作用域的分类
    • 全局变量: 也就是属性,作用域为整个类体 Cat类: cry eat 等方法使用属性
    • 局部变量: 也就是除了属性之外的其他变量,作用域为定义它的代码块中!
  4. 全局变量可以不赋值,直接使用,因为有默认值,局部变量必须赋值后,才能使 用,因为没有默认值。

演示

class Cat {
    /**
     * 全局变量:也就是属性,作用域为整个类体 Cat类 :cry eat 等方法使用属性
     */
     int age = 20;
    public void cry {
        /**
         * 1.局部变量一般是指在成员方法中定义的变量
         * 2.n 和 name 就是局部变量
         * 3.n 和 name 的作用域在 cry 方法中
         */
         int n = 10;
         String name = 'jack';
         System.out.println("输出全局变量" + age);
    }
    public void eat {
        System.out.println("输出全局变量" + age);
    }
}

作用注意事项和细节

  1. 属性和局部变量可以重名,访问时遵循就近原则。
    class Cat {
        int age = 20;
        public void cry {
            int age = 10;
            System.out.println(age);
        }
    }
    
  2. 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名
  3. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡。局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡,即在一次方法调用过程中。
  4. 作用域范围不同
    • 全局变量/属性: 可以被本类使用,或其他类使用(通过对象调用)
    • 局部变量: 只能在本类中对应的方法中使用
    class test {
        public void cry {
            Person p1 = new Person();
            System.out.println(p1.age);
        }
    }
    class Person {
        int age = 20;
    }
    
  5. 修饰符不同
    • 全局变量/属性: 可以加修饰符
    • 局部变量: 不可以加修饰符