Java静态方法和静态变量详解:以StaticLearning类为例
package step5;
public class StaticLearning {
// ---------------------Begin------------------------
static String name = '张三'; // 添加static关键字,使name成为静态变量
public static void sayHello() { // 添加static关键字,使sayHello方法成为静态方法
System.out.println('静态方法被调用');
}
public static void main(String[] args) {
System.out.println('类静态代码块被调用');
sayHello();
System.out.println(StaticLearning.name);
}
}
如何修改代码以保证预期输出:
为了使代码能够按照预期输出 '类静态代码块被调用'、'张三' 和 '静态方法被调用',需要对 StaticLearning 类进行以下修改:
-
将
name变量声明为静态变量: 在String name = '张三';前面添加static关键字。这使得name成为类级别的变量,可以直接通过类名StaticLearning访问。 -
将
sayHello方法声明为静态方法: 在public void sayHello()前面添加static关键字。这使得sayHello方法成为类级别的方法,可以直接通过类名StaticLearning调用。
修改后的代码解释:
static String name = '张三';声明了一个名为name的静态变量,并将其初始化为 '张三'。静态变量属于类,所有该类的实例共享同一个静态变量。public static void sayHello()声明了一个名为sayHello的静态方法,该方法打印 '静态方法被调用'。静态方法可以直接通过类名调用,无需创建类的实例。System.out.println(StaticLearning.name);通过类名StaticLearning直接访问静态变量name。sayHello();通过类名StaticLearning直接调用静态方法sayHello。
通过以上修改,代码就能按照预期输出结果。
原文地址: https://www.cveoy.top/t/topic/bp7f 著作权归作者所有。请勿转载和采集!