【发布时间】:2023-03-19 09:05:01
【问题描述】:
我正在处理我已经设置的一个简短的 java 任务。
问题如下:
设计和编写类来模拟库中不同类型的出版物。仔细考虑不同类型的出版物,例如书籍和杂志。将所有出版物类型共有的所有属性和方法放在一个超类中,然后适当地扩展这个超类以创建一组子类。
确保在类中包含适当的构造函数、getter、setter 和自定义方法。在适当的情况下使用方法重载和覆盖。
在您的设计和类代码中最大限度地利用继承。
在您的设计和编码中实现以下接口类:
+ getPublisher() : String
+ getPublicationTitle() : String
+ getPrice : float
+ setPublication(publisherIn: String, titleIn:String, priceIn:float) : void
所以我已经尽我所能回答了,请任何人阅读它并检查我是否走在正确的轨道上并理解我要做什么,看起来很简单是正确的吗? 哦,javadocs 还没有完成 [=
public interface PublicationInterface
{
/**
* Returns the book publisher name (as a String)
*/
public String getPublisher();
/**
* Returns the book publication title (as a String)
*/
public String getPublicationTitle();
/**
* Returns the book price (as a float)
*/
public float getPrice();
/**
* Sets the book publication details.
*
* @param publisherIn The Book Publisher (as a String)
* @param titleIn The Book Title (as a String)
* @param priceIn The Book Price (as a float)
*/
public void setPublication(String publisherIn, String publicationTitleIn, float priceIn);
}
abstract public class Publications implements PublicationInterface
{
// Attributes
protected String publisher;
protected String publicationTitle;
protected float price;
public Publications(String publisherIn, String publicationTitleIn, float priceIn)
{
publisher = publisherIn;
publicationTitle = publicationTitleIn;
price = priceIn;
}
public String getPublisher()
{
return (publisher);
}
public String getPublicationTitle()
{
return (publicationTitle);
}
public float getPrice()
{
return (price);
}
public void setPublication(String publisherIn, String publicationTitleIn, float priceIn)
{
publisher = publisherIn;
publicationTitle = publicationTitleIn;
price = priceIn;
}
}
public class Magazine extends Publications
{
String editor;
String date;
public Magazine(String publisherIn , String publicationTitleIn, float priceIn, String editorIn, String dateIn)
{
super (publisherIn , publicationTitleIn, priceIn);
editor = editorIn;
date = dateIn;
}
public void setPublication(String publisherIn, String publicationTitleIn, float priceIn)
{
publisherIn = publisher;
publicationTitleIn = publicationTitle;
priceIn = price;
}
public String getEditor()
{
System.out.println("The editor of this magazine is " + editor);
return (editor);
}
public String getDate()
{
System.out.println("The publication date of this magazine is " + date);
return (date);
}
public String getPublisher()
{
System.out.println("The publisher of this magazine is " + publisher);
return (publisher);
}
public String getPublicationTitle()
{
System.out.println("The publication title of this magazine is " + publicationTitle);
return (publicationTitle);
}
public float getPrice()
{
System.out.println("The price of this magazine is £" + price);
return (price);
}
}
public class ReferenceMaterial extends Publications
{
String genre;
String subject;
public ReferenceMaterial(String publisherIn , String publicationTitleIn, float priceIn, String genreIn, String subjectIn)
{
super (publisherIn , publicationTitleIn, priceIn);
genre = genreIn;
subject = subjectIn;
}
public String getGenre()
{
System.out.println("The genre of this material is " + genre);
return (genre);
}
public String getSubject()
{
System.out.println("The subject of this material is " + subject);
return (subject);
}
public String getPublisher()
{
System.out.println("The publisher of this material is " + publisher);
return (publisher);
}
public String getPublicationTitle()
{
System.out.println("The publication title of this material is " + publicationTitle);
return (publicationTitle);
}
public float getPrice()
{
System.out.println("The price of this material is £" + price);
return (price);
}
}
public class Book extends Publications
{
int pageNumber;
String author;
public Book(String publisherIn , String publicationTitleIn, float priceIn, int pageNumberIn, String authorIn)
{
super (publisherIn , publicationTitleIn, priceIn);
pageNumber = pageNumberIn;
author = authorIn;
}
public int getPageNumber()
{
System.out.println("The number of pages in this book are " + pageNumber);
return (pageNumber);
}
public String getAuthor()
{
System.out.println("The author of this book is " + author);
return (author);
}
public String getPublisher()
{
System.out.println("The publisher of this book is " + publisher);
return (publisher);
}
public String getPublicationTitle()
{
System.out.println("The publication title of this book is " + publicationTitle);
return (publicationTitle);
}
public float getPrice()
{
System.out.println("The price of this book is £" + price);
return (price);
}
}
public class TestLibrary
{
public static void main()
{
Magazine magazine1 = new Magazine ("SanYonic Publishing", "Ayup Magazine", 99, "Yeshumenku Suni", "12/09/2011");
System.out.println();
magazine1.getEditor();
magazine1.getDate();
magazine1.getPublisher();
magazine1.getPublicationTitle();
magazine1.getPrice();
System.out.println();
ReferenceMaterial referenceMaterial1 = new ReferenceMaterial ("Dorling kindesy", "killer Sharks In The Solent", 200, "Nature", "Sharks");
referenceMaterial1.getGenre();
referenceMaterial1.getSubject();
referenceMaterial1.getPublisher();
referenceMaterial1.getPublicationTitle();
referenceMaterial1.getPrice();
System.out.println();
Book Book1 = new Book ("Hodder & Soughton", "One Day", 75, 1105, "David Nicholls");
Book1.getPageNumber();
Book1.getAuthor();
Book1.getPublisher();
Book1.getPublicationTitle();
Book1.getPrice();
System.out.println();
}
}
【问题讨论】:
-
如果这是作业,请使用作业标签。
-
@MiserableVariable 作业标签?哦,你的意思是在底部的标签中,好的,我可以编辑标签吗,对不起
-
@MiserableVariable 完成,谢谢!
-
阅读完整的问题后,我意识到这样的开放式问题不适合 stackoverflow。请参阅常见问题解答。但我会告诉你
Publications类应该被称为Publication并且你将方法体缩进两次。这不是一个很复杂的作业,直接提交,等待更难的问题在这里提问。
标签: java inheritance interface