作用域

发布时间:2022-06-08 发布网站:脚本宝典
脚本宝典收集整理的这篇文章主要介绍了作用域脚本宝典觉得挺不错的,现在分享给大家,也给大家做个参考。

作用域

● 基本使用

面向对象中,变量作用域是非常重要知识点,相对来说不是特别好理解,请大家注意听,认真思考,要求深刻掌握变量作用域。

Scope01.java

1.在java编程中,主要的变量就是属性(成员变量)和局部变量。

2.我们说的局部变量一般是指在成员方法中定义的变量。【举例Cat类:cry】

3.java中作用域的分类

全局变量:也就是属性,作用域为整个类体Cat类:cry eat等方法使用属性

【举例】

局部变量:也就是除了属性之外的其他变量,作用域为定义它的代码块中!

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

public class Scope01 {    public static void main(String[] args) {    }}class Cat{    //全局变量:也就是属性,作用域为整个整体    //属性在定义时,可以直接赋值    int age = 10; //指定的值是10    double weight;    //没有给属性赋值就会自带一个默认值    public void cry(){        int n = 10;        String name = "jack";        //这里的n和name就是局部变量        //n和name的作用域仅仅只在cry方法中        System.out.println("在cry属性中使用age=" + age);    }    public void eat(){        System.out.println("在eat属性中使用age=" + age);    }}

注意事项和细节使用

VarScopeDetail.java

  1. 属性和局部变量可以重名,访问时遵循就近原则。

  2. 在同一个作用域中,比如在同一个成员方法中,两个局部变量,不能重名。[举例

  3. 属性生命周期较长,伴随着对象的创建而创建,伴随着对象的死亡而死亡。

    局部变量,生命周期较短,伴随着它的代码块的执行而创建,伴随着代码块的结束而死亡。

    即在一次方法调用过程中生效。

  4. 作用域范围不同 全局变量:可以被本类使用,或其他类使用 (通过对象调用) 局部变量:只能在本类中对应的方法中使用

  5. 修饰符不同 全局变量/属性可以加修饰符 局部变量不可以加修饰符

public class VarScopeDetail {    public static void main(String[] args) {        Person p1 = new Person();        p1.say();        //当执行say方法时,say方法的局部变量比如name,会创建,当say执行完毕之后,name局部变量就会销毁        //但是全局变量(属性)仍然是可以使用的        Tamplex t1 = new Tamplex();        t1.test();        t1.test2(p1);        //此时可以传入一个对象    }}class Tamplex{    //创建一个类    public void test(){        //这里如果我们想要使用到其他类的变量        Person p1 = new Person();        System.out.println(p1.name);        //可以直接将别的类的属性实例化    }    public void test2(Person p1){        System.out.println(p1.name);        //这里参数的对象就为main的p1,此时参数p1就指向了main中p1指向的对象    }}class Person{    //属性可以添加修饰符(public protected private)    //局部变量是不能添加修饰符的    public String name = "jack";    public void say(){        String name = "King";        //属性和局部变量可以重名,访问时遵循就近原则。        System.out.println("say() name = " + name);    }    public void hi(){        String address = "北京";        //String address = "上海";        //错误,重复定义了变量        String name = "mike";        //这个name和say方法的name处于不同作用域,因此是正确的    }}

脚本宝典总结

以上是脚本宝典为你收集整理的作用域全部内容,希望文章能够帮你解决作用域所遇到的问题。

如果觉得脚本宝典网站内容还不错,欢迎将脚本宝典推荐好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。
标签: