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 类进行以下修改:

  1. name 变量声明为静态变量:String name = '张三'; 前面添加 static 关键字。这使得 name 成为类级别的变量,可以直接通过类名 StaticLearning 访问。

  2. 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

通过以上修改,代码就能按照预期输出结果。

Java静态方法和静态变量详解:以StaticLearning类为例

原文地址: https://www.cveoy.top/t/topic/bp7f 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录