我正在尝试完成我上一个学校项目,我正在设置一个处理书籍,书籍集合(我们称之为图书馆)的应用程序,以及这些课程的UI客户端
我正在研究两种给我带来麻烦的方法:执行文件i / o功能的 writeToFile 方法(从其数据文件中读取书籍,将书籍写入同一数据文件) )和清除方法,它清除名为 allBooks 的ArrayList。应用程序本身有一个名为Citable的接口,一个名为 Book 的类。 ,一个图书馆类,提供基本访问者(书籍数量,指定位置的书籍),提供搜索和添加/删除功能(按ISBN搜索,添加所有详细信息的书籍,按ISBN删除书籍)
问题在于我尝试设置这两个类(在库类中),所以我可以重用其他两个类的代码,并且我正在寻找想法关于如何使经验丰富的程序员更好地编写代码(而且老实说,对于一个不那么疲惫的编码器来检查我的代码)。这是我到目前为止所做的:
Citable Class(这是一个接口):
/**
* Write a description of interface Citable here.
*
* @author (your name)
* @version (a version number or a date)
*/
public interface Citable
{
public String getISBN();
public String getAuthor();
public String getTitle();
public String getPublisher();
public int getPublicationYear();
public int getMonth();
public int getDay();
public int getPageCount();
}
书类:
import java.util.*;
public class Book implements Comparable<Book>, Citable
{
String isbn, title, author, publisher;
int publicationYear, month, day, pageCount;
/**
* Constructor for objects of class Book
*/
public Book(String title, String isbn)
{
this.title = title;
this.isbn = isbn;
}
public String toString (){
return isbn + "\n" + title + "\n" + author + "\n" + publisher +
"\n" + publicationYear + "\n" + month + "\n" + day;
}
@Override
public int compareTo(Book other) {
return isbn.compareTo(other.isbn);
}
@Override
public String getISBN() {
return isbn;
}
@Override
public String getAuthor(){
return author;
}
@Override
public String getTitle(){
return title;
}
@Override
public String getPublisher(){
return publisher;
}
@Override
public int getPublicationYear(){
return publicationYear;
}
@Override
public int getMonth(){
return month;
}
@Override
public int getDay(){
return day;
}
@Override
public int getPageCount(){
return pageCount;
}
//other methods from your interfaces here...
}
图书馆类:
import java.util.*;
import java.io.*;
public class Library
{
private ArrayList<Book> allBook = new ArrayList<Book>();
public Library(ArrayList<Book> other) {
if (other == null) {
throw new NullPointerException("null pointer");
} else
allBook = other;
}
public int getCounter (int counter) {
return counter;
}
public String findISBN (String isbn){
return isbn;
}
public String deleteISBN (String isbn){
return isbn;
}
public String findBook (String title){
return title;
}
public boolean readWrite (File file){
super.writeToFile(file);
try {
FileWriter outFileFW = new FileWriter(file, true);
outFileFW.write(nextISBNIndex + "\r\n");
for (int isbnIdx = 0; isbnIdx < nextIsbnIndex; isbnIdx++) {
outFileFW.write(books[isbnIdx] + "\r\n");
}
outFileFW.close();
} catch (IOException e) {
return false;
}
return true;
}
public void clear() {
for (int i = 0; i < size; i++)
arraylist[i] = null;
size = 0;
}
}
任何帮助都会非常感激。
答案 0 :(得分:0)
假设你需要图书馆应用程序。你可以将你的应用程序重建为类似的东西:
id
uid=1000(pi) gid=1000(pi) Gruppen=1000(pi),4(adm),20(dialout),27(sudo),33(www-data),44(video),100(users),998(docker),999(gpio)
并在主方法中添加书籍或删除,读取和写入数据文件。