成员变量Java 的成员变量有两种,分别是全局变量和静态变量(类变量)。定义在方法体和语句块之外,不属于任何一个方法,作用域是整个类。 名称 | 修饰 | 访问 | 生命周期 | 全局变量 (实例变量) | 无 static 修饰 | 对象名.变量名 | 只要对象被当作引用,实例变量就将存在 | 静态变量 (类变量) | 用 static 修饰 | 类名.变量名 对象名.变量名 | 其生命周期取决于类的生命周期。类被垃圾回收机制彻底回收时才会被销毁 |
实例测试 第1步:我们定义个BianliangQuanjuClass.java类,里面主要是是声明4个变量,代码如下: 【示例小白教程网www.2d5.net 】BianliangQuanjuClass.javapublic class BianliangQuanjuClass { String name; // 成员变量、实例变量 int age; // 成员变量、实例变量 //如果直接运行下面代码,提示错误: 变量 website 未在默认构造器中初始化 //static final String website; static final String website = "小白教程网"; // 成员变量、静态变量(类变量) static String URL = "http://www.2d5.net"; // 成员变量、静态变量(类变量) //下面代码运行的话,调用的时候url的值是null //static String URL; } 第2步:我们新建BianliangQuanju.java类,用户测试该4个变量全局变量和静态变量的使用,代码如下: 【示例小白教程网www.2d5.net 】BianliangQuanju.javapublic class BianliangQuanju { public static void main(String[] args) { // 创建类的对象 BianliangQuanjuClass qj = new BianliangQuanjuClass(); // 对象名.变量名调用实例变量(全局变量) System.out.println(qj.name); System.out.println(qj.age); // 对象名.变量名调用静态变量(类变量) System.out.println(qj.website); System.out.println(qj.URL); // 类名.变量名调用静态变量(类变量) //下面代码如果运行,会提示错误:无法从静态上下文中引用非静态 变量 name //System.out.println(BianliangQuanjuClass.name); System.out.println(BianliangQuanjuClass.website); System.out.println(BianliangQuanjuClass.URL); } } 运行效果如下: null 0 小白教程网 http://www.2d5.net 小白教程网 http://www.2d5.net 由输出结果可以看出,name 和 age 显示系统默认初始化的值,website 和 URL 显示初始化的值。且用 static final 修饰的变量必须赋予初始值;只有static修饰的变量可以不用初始化赋值。
|