【问题标题】:Set / Get methods, tostring & ask method - Java设置/获取方法、tostring 和询问方法 - Java
【发布时间】:2014-10-29 13:24:09
【问题描述】:

我对java比较陌生,并且已经设置了一些要完成的任务,我(认为)我已经完成了前两个要求我完成的任务:

  1. 设计具有以下属性的类手册:

序列号-字符串,-默认:??????

标题 - 字符串,- 默认:无标题

作者 - 字符串,- 默认值:未知

编写构造函数和方法以在控制台上打印手册的详细信息。

.

  1. 通过编写以下附加方法来修改您的 Manual 类:

设置和获取手册属性的方法

一种向用户询问手册详细信息的方法

一个 toString() 方法。

编写一个简单的应用程序来测试您的其他方法。 "


到目前为止,我有这个代码:

public class Manual {

    String serialNumber, title, author;

    public static void main(String [] args){
        Manual man= new Manual();
        man.print();
    }

    public Manual(){
        set("??????", "Untitled", "Unknown");
    }

    public Manual(String serialNumber, String title, String author)
    {
        set(serialNumber, title, author);
    }

    public void set(String serialNumber, String title, String author)
    {
        this. serialNumber = serialNumber;
        this. title = title;
        this.author = author;
    }

    public void print()
    {
        System.out.println("Serial Number : " +serialNumber);
        System.out.println("Title : " +title);
        System.out.println("Author : " +author);
    }

    public void print(String heading)
    {
        System.out.println(heading);
        print();
    }

    public void ask()
    {
        serialNumber = Console.askString("Please enter the serial number: ");
        title = Console.askString("Please enter the title: ");
        author = Console.askString("Please enter the author: ");
        set(serialNumber, title, author);
    }

    public String toString()
        {
            return serialNumber +"    " +title +"    " +author +"    ";
        }
    }

如果我正确完成了前两个问题的所有方面,以及我的代码中是否存在任何错误,请问有人能告诉我吗?

谢谢

【问题讨论】:

  • 上面的代码编译成功了吗?您还需要为每个单独的变量添加 get 方法。
  • 我不知道给你这个任务的人期望什么。然而,典型的 set 方法是针对每个属性的,而不是一次性的:stackoverflow.com/questions/2036970/… - 说到 getter,“设置和获取手册属性的方法”(应该可能也会在您的测试中进行测试)
  • @zapl 非常感谢您的反馈,到目前为止,我将如何将 get 方法添加到我的代码中?我在添加它们时遇到了很多问题而没有错误:(我不确定如何做到这一点
  • @BobEzuba 感谢您的回复,您能否帮我添加 get 方法,因为我在正确执行此操作之前遇到了很多麻烦:(

标签: java methods get set tostring


【解决方案1】:

我看到的唯一主要问题是您没有按预期实现 Getter 和 Setter。在 Java 中,大多数类对于需要访问的每个变量都有 Getter/Setter,例如:

public String getTitle()
{
    return title;
}

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

此外,您执行 Print 和 toString 函数的方式没有任何“错误”,但我会编写 toString 以输出更类似于您执行 print 的方式,然后从 print 调用 toString .比如:

public String toString()
    {
        return "SerialNumber: " + serialNumber +"\n"
               +"Title: " + title + "\n" 
               +"Author: " + author +"\n";
    }

public void print()
{
    System.out.println(this.toString());

}

最后一点,如问题 2 的最后一行所述,您没有包含任何使用此类的代码。希望对您有所帮助

【讨论】:

  • 感谢您的有用评论,我已经实施了您的 tostring 建议,但是我仍然不确定您答案中的 get 方法部分。是否有可能向我展示如何正确添加它,因为我已经苦苦挣扎了很长时间:(
  • @05k3 我已经将我的示例编辑为您将如何为 title 变量实现它。然后,您将为序列号和作者创建几乎相同的函数。只需更改函数名称、变量集和返回的变量即可。
  • 哇,非常感谢,我注意到您的 set 方法看起来与我的代码中存在的不同,我应该删除我的 set 方法并实现您的方法还是只实现 get 方法以与我现有的 set 方法一起使用?
  • 我认为这是针对一堂课的,如果是这样,您的老师可能打算让您像我上面所说的那样写出所有这些。如果您只想更新其中一个变量,则必须在 set 方法中插入所有变量是不切实际的。你总是可以把你的放在那里,也可以包括我的例子中显示的所有 3 套,以防万一。
  • 现在我已经实现了 get 方法,这是我的代码,这是否正确? pastebin.com/9diRM5Mt
【解决方案2】:

这就是我为所有三个变量实现 get() 方法的方式。

public String getSerialNumber(){
    return serialNumber;
}

public String getTitle(){
    return title;
}

public String getAuthor(){
    return author;
}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-04-09
    相关资源
    最近更新 更多