可能是一个菜鸟问题,但是为什么此代码显示null?

public class Bug1 {
    private String s;
    public void Bug1() {
        s = "hello";
    }
    public String toString() {
        return s;
    }
    public static void main(String[] args) {
        Bug1 x = new Bug1();
        System.out.println(x);
    }
}

最佳答案

您在此处使用void关键字,使您的“构造函数”成为一种方法(从不调用),因此不会初始化String s。默认情况下,类级别的对象引用为null

public void Bug1() {


要修复,请更改为:

public Bug1() {


构造函数没有返回类型。

10-07 20:42