2016-02-13 22 views
0

我有一个项目,我表现的这么远,这里是我想要的输出:写作课我在想什么?

测试1

enter image description here

测试2

enter image description here

下面是指导。“编写一个名为Book的类,其中包含标题,作者和页面的实例数据。定义Book构造函数以接受并初始化这些数据。包含所有实例数据的setter和getter方法。包括返回一个字符串像下面一个toString方法:

Author: name of the author in one word 

Title: title in one word 

Pages: number of pages 

例如:

Author: Lewis 

Title: Java 

Pages: 806 

写BookTester类采取作者,标题,从键盘页面,创建书籍对象并将上述内容打印到屏幕上。我如何得到我的答案以显示我的照片Test1和Test2中显示的预期输出?另外,我错过了什么?

public class Book { 
     String author; 
     String title; 
     int pages; 

     public Book(String a, String t, int p) { 
     author = a; 
     title = t; 
     pages = p; 
    } 

     public String toString() { 
     String output; 
     output = ("Author: " + author + "\n"); 
     output = ("Title: " + title + "\n"); 
     output = ("Pages: " + pages + "\n"); 
     return output; 
    } 
} 

BookTester

import java.util.*; 
    public class BookTester { 
    public static void main(String[] args) { 
    String author; 
    String title; 
    int pages; 
    Scanner scan = new Scanner(System.in); 
    author = scan.nextLine(); 
    title = scan.nextLine(); 
    pages = scan.nextInt(); 
    Book book1 = new Book(author, title, pages); 
    System.out.println(book1); 
    } 
    } 

回答

2
@Override 
    public String toString() { 
    String output =""; 
    output += "Author: " + author + "\n"; 
    output += "Title: " + title + "\n"; 
    output += "Pages: " + pages + "\n"; 
    return output; 
} 

你应该CONCAT(+)的每个值。否则将返回最后的值(意味着Pages: ---)。

1

试试这个:

public String toString() { 
    String output = "Author: " + author + "\n" + "Title: " + title + "\n" + "Pages: " + pages + "\n"; 
    return output; 
} 

你被不断的返回Output字符串,而不是添加到它。

+0

'返回字符串output'无效。请更正您的答案。 – grzesiekw

+0

@grzesiekw我的不好。不知道那是怎么到的! – Tacocat

0

的PROGRAMM不工作,因为你正在重写输出的的toString方法

public String toString() { 
    String output; 
    output = ("Author: " + author + "\n"); 
    output = ("Title: " + title + "\n"); 
    output = ("Pages: " + pages + "\n"); 
    return output; 
} 

一对夫妇的事情必须做解决这个问题。

@override 
public String toString() { 
    String output; 
    output += "Author: " + author + "\n"; 
    output += "Title: " + title + "\n"; 
    output += "Pages: " + pages + "\n"; 
    return output; 
} 

不要忘了@override,这是一个很好的做法,

最终recomendation: 它始终是一个好主意,利用IDE的功能来生成toString方法。不要手动编码。

举例来说,我看你使用的是Eclipse,这个IDE可以这样做,如果你简单的源代码,并选择右键单击源代码>生成的toString