当前位置: 首页 > 知识库问答 >
问题:

为什么“初始化测试类”没有得到打印?[副本]

吉岳
2023-03-14

有人能解释一下为什么TestClass构造函数没有被调用吗?如果我创建另一个类,但不使用包含main方法的类,它就能工作?

public class TestClass {

    public void TestClass(){
        System.out.println("initializing Test Class");
    }


    public static void main(String[] args) {
        TestClass testClass  = new TestClass();

    }

}

共有1个答案

贲宏硕
2023-03-14

您在类TestClass中创建的不是一个没有参数的构造函数,而是一个与您的类同名的方法。这在Java中是允许的,事实上,您通过添加返回类型void来了解这一点。
在您的例子中,当您在main方法中实例化类时,您实际上是在调用“default”构造函数,该构造函数是编译器自动添加的。
如果您想看到您的行被打印出来,您必须删除“void”子句,这样才能有一个没有参数的正确构造函数。应该是这样的:

public class TestClass {

    public TestClass(){
        System.out.println("initializing Test Class");
    }


    public static void main(String[] args) {
        TestClass testClass  = new TestClass();

    }

}
 类似资料:
  • 为什么x没有在下面初始化? 平均而言,对于一半的迭代,for循环中的将是,从而初始化。对于另一半,找到的 循环替换为 同样糟糕。只有

  • 如果我有一个struct Foo和一个struct Bar: 如果我初始化一个条并打印正确得到的值: 但是现在如果我声明这样的构造函数: 我失去了Bar::foo的默认构造,程序输出了32764 0 5! 为什么我不得不像这样无声地初始化每个成员变量: 只要我声明一个构造函数?在这种情况下,为什么默认构造不起作用?

  • 问题内容: 我有这个代码: 这会导致编译错误:可能尚未初始化,这很公平。 现在,我将代码更改为: 我得到同样的编译错误!我必须初始化为null: 那么,不初始化对象和初始化为null有什么区别?如果我声明一个没有初始化的对象,它是否为null? 谢谢 问题答案: 字段(成员变量)被初始化为(或初始化为默认的原始值,如果它们是原始的) 局部变量未初始化,您有责任设置初始值。

  • 为什么打印(或其他一些随机数)?什么是 printing?为什么它不是 (或 )?

  • 问题内容: 我对Swift类有疑问。我有一个UITableViewController类和UITableViewCell类的快捷文件。我的问题是UITableViewCell类和插座。此类存在错误 类别“ HomeCell”没有初始化程序 ,并且我不理解此问题。 感谢您的回复。 问题答案: 您必须使用隐式展开的可选变量,以便Swift可以在初始化阶段处理循环依赖关系(在这种情况下,UI组件的父级<