默认构造函数在创建Java对象时未被调用。

huangapple go评论105阅读模式
英文:

Default Constructor not called while creating object in Java

问题

public class StaticFinalExample {
    static String str;

    public void StaticFinalExample() {
        System.out.println("在构造函数中");
        str = "H";
    }

    public static void main(String[] args) {
        StaticFinalExample t = new StaticFinalExample();
        System.out.println(str);
    }
}

在上面的示例中,输出结果是 null。

为什么构造函数没有被调用?

英文:
public class StaticFinalExample {
    static String str;

    public void StaticFinalExample() {
        System.out.println("In Constr");
        str = "H";
    }

    public static void main(String[] args) {
        StaticFinalExample t = new StaticFinalExample();
        System.out.println(str);
    }
}

In above example the output is null.

Why was not the constructor called?

答案1

得分: 3

构造函数没有返回类型。如果StaticFinalExample()是你的构造函数,那么在该方法中不应该有void

英文:

Constructors don't have a return type. There shouldn't be void in your StaticFinalExample() method, if that's your constructor.

答案2

得分: 0

避免将类名用作方法名,这会造成歧义。当我们注意到任何名称与类具有相同的值时,我们会将其视为类名,而不是实际用法(在您的情况下是方法名)。

这不是一个好的做法。这并不意味着您不能将方法名用作类名,但您应该避免使用相同的名称。

英文:

Avoid using class name as a method name, it's ambiguous. When we notice any name having same value as class, our mind reads as a class name not as actual usage (method name in your case).

It's not a good practice. It does not mean you can not use method name as class name, but you should avoid using same name.

huangapple
  • 本文由 发表于 2020年8月18日 14:45:55
  • 转载请务必保留本文链接:https://go.coder-hub.com/63463189.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定