- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我的 MediaCollection 的打印输出不是我想要的格式。当我从文件打印 MediaCollection 详细信息时,它确实显示以下内容:
我更希望它显示类似的内容:
<小时/>
public class MediaFormat
{
public String title;
public int releaseDate;
public double price;
public MediaFormat(String title, int releaseDate, double price)
{
this.title = title;
this.releaseDate = releaseDate;
this.price = price;
}
/**
* Change the title.
*/
public void changeTitle(String title)
{
this.title = title;
}
/**
* Change Release Date.
*/
public void changeReleaseDate (int releaseDate)
{
this.releaseDate = releaseDate;
}
/**
* Return Price of a CD or DVD.
*/
public double getPrice()
{
return price;
}
public String toString()
{
return ("\n" + "Title - " + title + "\n" + "Release Date - " + releaseDate + "\n" + "Price - " + price + "\n");
}
}
<小时/>
public class CD extends MediaFormat
{
// Defining variables
public String artist;
public int playingTime;
public int nuOfTracks;
/**
* Create new constructor for CD object, with all appropriate details.
*/
public CD(int releaseDate, String title, String artist, int playingTime, int nuOfTracks, double price)
{
super(title, releaseDate, price);
this.artist = artist;
this.playingTime = playingTime;
this.nuOfTracks = nuOfTracks;
}
/**
* Change the Artista Name.
*/
public void changeArtist(String Artist)
{
this.artist = artist;
}
/**
* Change Playing Time Duration.
*/
public void changePlayingTime(int playingTime)
{
this.playingTime = playingTime;
}
/**
* Change the number of tracks.
*/
public void changenuOfTracks(int nuOfTracks)
{
this.nuOfTracks = nuOfTracks;
}
public String toString()
{
String additionals = super.toString();
return additionals + ("\n" + "Artist - " + artist + "\n" + "Playing Time - " + playingTime + "min" + "\n" + "nuOfTracks - " + nuOfTracks + "\n");
}
}
<小时/>
public class DVD extends MediaFormat
{
public String director;
public String rating;
public int duration;
/**
* Create new constructor for DVD object, with all appropriate details.
*/
public DVD(int releaseDate, String rating, String director, String title, int duration, double price)
{
super(title, releaseDate, price);
this.rating = rating;
this.director = director;
this.duration = duration;
}
/**
* Change the director.
*/
public void changeDirector(String director)
{
this.director = director;
}
/**
* Change rating details.
*/
public void changeRating(String rating)
{
this.rating = rating;
}
/**
* Change duration.
*/
public void changeDuration(int duration)
{
this.duration = duration;
}
public String toString()
{
String additionals = super.toString();
return additionals =
("\n" + "Rating - " + rating + "\n" + "Director - " + director + "\n" + "Duration - " + duration + "\n");
}
}
<小时/>
public class MediaCollection
{
//declaration of Media collection
//this is an array + total price
private ArrayList<MediaFormat> collection = new ArrayList<MediaFormat>();
private double totalPrice;
/**
* Constructor for objects of class MediaCollection
*/
public MediaCollection()
{
}
/**
* reads in DVD information to the collection from a file
* @param inputFileName the name of the file containing
* the DVD information
*/
public void readInMedia(String inputFileName)
{
FileReader reader;
try
{
reader = new FileReader(inputFileName);
Scanner in = new Scanner(reader);
while (in.hasNextLine())
{
String mediaInfo = in.nextLine();
Scanner fields = new Scanner(mediaInfo).useDelimiter("\\s*;\\s*");
String mediaType = fields.next().trim();
if(mediaType.equals("DVD")){
int releaseDate = fields.nextInt();
String rating = fields.next().trim();
String director = fields.next().trim();
String title = fields.next().trim();
int duration = fields.nextInt();
double price = fields.nextDouble();
//create a DVD object and add it to your collection.
DVD d = new DVD(releaseDate, rating, director, title, duration, price);
collection.add(d);
totalPrice = totalPrice + price;
}
if(mediaType.equals("CD")){
int releaseDate = fields.nextInt();
String title = fields.next().trim();
String artist = fields.next().trim();
int playingTime = fields.nextInt();
int nuOfTracks = fields.nextInt();
double price = fields.nextDouble();
//create a CD object and add it to the collection.
CD c = new CD(releaseDate, title, artist, playingTime, nuOfTracks, price);
collection.add(c);
totalPrice = totalPrice + price;
}
}
reader.close();
}
catch (IOException exception)
{
System.out.println("Error processing file"
+ exception);
}
catch (NoSuchElementException exception)
{
System.out.println("incorrect file format"
+ exception);
}
catch (NumberFormatException exception)
{
System.out.println("Input was not a number"
+ exception);
}
}
/**
* This is the for loop which prints details for each instance in the collection.
*/
public void printMediaList()
{
for (int i=0; i< (collection.size()); i++)
{
System.out.println(collection.get(i).toString());
}
}
public void printTotal()
{
System.out.println("--------------------------------");
System.out.println("Total Price in pounds - ");
System.out.printf("%.2f", totalPrice);
}
}
最佳答案
您的 DVD.java 和 CD.java 存在一个小问题。以下是变化。
CD.java
public String toString()
{
return ("Title - "+title + "\nArtist - " + artist + "\nRelease Date"+ releaseDate+"\nNumber Of Tracks - " +nuOfTracks+"\nDuration - " + playingTime + "min" + "\nPrice - $"+price+"\n---------------------------------------------------------------------");
}
DVD.java
public String toString()
{
return ("Title - "+title + "\nDirector - " + director + "\nRelease Date - "+ releaseDate+"\nRating - " +rating+"\nDuration - " + duration + "min" + "\n"+"Price - $"+price)+"\n---------------------------------------------------------------------";
}
您不需要在 toString 中调用 super。由于 DVD 和 CD 扩展了 MediaFormat 类,因此 MediaFormat 的属性在子类(DVD 和 CD)中可见。输出的少量格式即可获得您想要的结果
输出:请注意,我的键盘上没有井号符号,因此将其替换为 $ ;) 请在您的 CD 和 DVD java 文件中进行相应更改
Title - The Shawshank Redemption
Director - Frank Darabont
Release Date - 1994
Rating - 15
Duration - 142min
Price - $3.0
---------------------------------------------------------------------
Title - The Godfather
Director - Francis Ford Coppola
Release Date - 1972
Rating - 18
Duration - 175min
Price - $9.52
---------------------------------------------------------------------
Title - Popular Problems
Artist - Leonard CohenRelease Date2014
Number Of Tracks - 9
Duration - 33min
Price - $7.98
---------------------------------------------------------------------
Title - Pulp Fiction
Director - Quentin Tarantino
Release Date - 1994
Rating - 18
Duration - 154min
Price - $4.97
---------------------------------------------------------------------
Title - St Dominic's Preview
Artist - Van MorrisonRelease Date1972
Number Of Tracks - 7
Duration - 40min
Price - $14.75
---------------------------------------------------------------------
关于Java - 具有父类(super class)的打印格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27364837/
我只想知道它们之间的区别: .class .class{ font-size:14px; } 对比: .class > .class{ font-size:14px; } 是一样的东西吗? 最佳答案
PrimeFaces 文档的以下摘录使标题中描述的两个选择器之间似乎存在差异: .ui-widget, .ui-widget .ui-widget { font-size: 90% !imp
我正在尝试选择特定值。但我遇到了一个问题。 我有两个元素,一个有 X Y,另一个有 X Y Z。 当选择 X Y Z 时,我也收到 X Y 的值...有没有办法让它寻找 X AND Y AND Z 而
.class.class 和 .class .class 有什么区别? 最佳答案 .class .class 匹配类 .class 的任何元素,这些元素是类 .class< 的另一个元素的后代/. .
我正在研究 Classname.class 和 Classname.class.toString() 并发现了一些不寻常的东西。 .class 在同一个类上运行时似乎等同于 .class。尽管 .cl
我试图在Dart中扩展列表并在此列表中使用另一个类。 这是我的示例,其中注释出了问题: import "Radio.dart"; // extends ListBase { List ra
我有一个很大的“经理”类,我认为它做得太多了,但我不确定如何将它划分为更多逻辑单元。 一般来说类主要由以下方法组成: class FooBarManager{ GetFooEntities();
我在一个文件中定义了一个抽象父类(super class),在另一个文件中定义了一个子类。我需要父类(super class)文件和堆栈跟踪报告来找到一个包含它。 但是,当它到达“extends”行时
我在 A. Alexenderscu 的现代 C++ 设计中找到了一些模板示例 作者使用以下行的地方 template class CheckingPolicy // class SmartPt
看一下这段代码: public static class A { public void doA() { } } public static class B extends A {
我有两个具有 .body 类的 div,但是,一个位于另一个具有 .box 类的 div 中 - 如下所示: 我只想为 .box 内部的 .body 设置样式...但我在下面所
我一定是遗漏了 C++ 规范中的某些内容,因为我无法解释为什么以下代码可以成功编译: class MyClass { static void fun(); }; int main() { MyClas
我正在尝试在 python 中“模拟”命名空间。我使用内部和外部类层次结构来创建我的命名空间。例如,您希望将文件(如资源)的路径保存在一个位置。我试过这样的事情: src = #path to sou
在试验 online crystal compiler 时(这太棒了),我遇到了一个我似乎无法找到解释的错误: class Person class Current < self end
在查看我的一段代码时,我陷入了如下的一条语句。 TMyObjectClass = TMyObject 类; 我有点困惑,不知道这句话是什么意思。由于 TMyObjectClass 在该语句上方没有声明
我正在编写一个简单的应用程序,以学习一些基本的Dart编程,但无法弄清楚其结构和包含的内容-我得到了一个重复的类Point 首先,我有一个叫做MouseTrack的主类。它将初始化列表并产生循环。 #
在 org.springframework.core.SerializableTypeWrapper (版本 5.2.3),第 112 行有以下代码: if (GraalDetector.in
我希望将鼠标悬停在子导航中的列表项上,以激活页面上该类别中所有项的类(不仅仅是父元素或同级元素)。有任何想法吗?这是我的意思的一个例子: img.BLUE {border:1px solid #FF
我正在通过 ClassLoader 加载类: Class clazz = urlClassLoader.loadClass(name.substring(0, name.length() - 6).r
以下简化的类在从 get() 返回值时执行不同的操作,具体取决于该类是被赋予 double 值还是数组作为模板参数: #include "array" #include "type_traits" t
我是一名优秀的程序员,十分优秀!