我遇到了一个问题,当对象从main
方法中实例化时,试图让构造函数方法打印到控制台:
public class HelloWorld {
public static void main(String[] args) {
Message message = new Message();
System.out.println(message.helloWorld());
}
}
下面是已经实例化的对象:
public class Message {
public void Message() {
// constructor method
System.out.println("Constructor Method!");
}
public String helloWorld() {
return "Hello, World!";
}
}
我假设构造函数方法将打印到控制台?
没有声明构造函数:
public void Message() {
构造函数没有返回类型;这是一种方法。移除void
:
public Message() {
问题:
public void Message() {
它不是构造函数,它是一个方法,因此在创建类的实例时不会调用它
应该是这样的:
public Message()
这不是一个构造函数,而是一个普通的方法,你必须删除void才能成为一个构造函数:
public Message(){…}
不public void Message(){…}
为什么你认为构造函数方法应该打印?它不会打印。因为您没有声明构造函数。你只有两个方法。
这不是构造函数。这是另一种方法。构造函数没有返回类型
public void Message() {
// constructor method
System.out.println("Constructor Method!");
}
但是如果你有这样的
public Message() {
// constructor method
System.out.println("Constructor Method!");
}
那么它就是一个构造函数它会得到print
构造函数声明错误,public void Message() { }
应该是public Message() { }
:
public class Message {
public Message() { // <-- Here's the correct constructor declaration
System.out.println("Constructor Method!");
}
public String helloWorld() {
return "Hello, World!";
}
}