构造函数和方法无法应用

时间:2018-11-29 00:00:43

标签: java

正在处理此代码,却不知道为什么总是出现错误 “类中的构造方法……不能应用于给定的类型; 必需:java.lang.String, 找到:没有参数, 原因:实际参数和形式参数列表的长度不同:”。 有任何想法吗?预先感谢。

public class Book {

private String title;

    public Book(String title) {
       this.title = title;

    }



    public String getTitle(){
        return title;
    }
    public void setTitle(String title) {
        this.title = title;
    }

}

1 个答案:

答案 0 :(得分:0)

您不能像这样声明Book的实例:

Book book = new Book();

因为您没有它的构造函数。到目前为止,您只有一个在字符串参数中接受String参数的构造函数:

Book book = new Book("My Book Title");

如果您还想使用一个空的构造函数,以便必须使用setTitle() setter方法来设置Title,则将其添加到您的类中:

class Book {
    private String title;

    // Empty Constructor
    public Book() {

    }

    // Overloaded Constructor which accepts a
    // Title string argument.
    public Book(String title) {
        this.title = title;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }
}

您也可以只修改现有的构造函数,如下所示:

public Book(String... optionalTitle) {
    if (optionalTitle.length > 0) {
        this.title = optionalTitle[0];
    }
}

此构造函数允许您可选地提供标题参数。这样,您可以以任何一种方式进行声明(或者,如果愿意,还可以添加多个标题,但还要进行一些更改)。