Java开发之道
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

谬误20 误入歧途——Java中没有全局变量

全局变量是指不属于任何类型的全局可见的成员变量。按照这个定义来看,Java 中并没有全局变量,因为在Java中,任何数据成员都必须属于某个类型,所有程序集都是由类型组成的。

Java 中没有传统意义上的全局变量,但是这并不代表不能定义一个全局可见的成员,例如,定义一个公共静态变量或静态属性,虽然这个变量或属性必须属于某个类型,并且对该变量或属性的访问也必须通过某个类型来实现,但是这个变量或属性是所有引用该程序集的程序都可以访问的,实际上它还是起到了全局变量的作用,示例代码如下:

    public class Test {
    public static int Count=2;                         //公共的静态变量
    private static String Operator;                        //私有的静态变量
     public static String getOperator() {                   //获取变量
        return Operator;
    }
 
    public static void setOperator(String operator) {      //设置静态属性
        Operator = operator;
    }
    }

在其他的类中,可以通过以下方式访问这些变量,关键代码如下:

    public class Manger {
    //main方法
    public static void main (String[] args) {
        System.out.println("Count的值为:"+Test.Count);                    //输出信息
        Test.setOperator("明日科技");                                      //设置变量的值
        System.out. println ("Operator的值为:"+Test.getOperator());         //输出变量值
    }
    }

运行上述代码后,程序运行的效果如图4.21所示。

图4.21 获取变量值所输出的信息

说明

可以通过以上的方式,使静态变量实现与全局变量相同的作用。