英文:
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.
通过集体智慧和协作来改善编程学习和解决问题的方式。致力于成为全球开发者共同参与的知识库,让每个人都能够通过互相帮助和分享经验来进步。
评论