萨拉姆!
在java中,我需要在该类中创建一个类的ArrayList。可能吗??? 我知道如果我在该类构造函数中创建一个类的对象,那么它将导致StackOverFlow。下面给出问题的完整细节。如何创建BookInfo类的ArrayList,在该类本身???
问题陈述:
你需要编写一个java程序,它只包含两个名为“BookInfo”和“BookMgtSys”的类。
BookInfo类必须具有以下数据成员: •ISBN •书名 •作者姓名 •书籍总数 当您添加书籍时,它将增加变量Total Books并在您删除书籍时减少。
BookInfo类必须具有以下成员方法:
•默认构造函数
•参数化构造函数
•addbook()
•searchBook()
•deleteBook()
BookMgtSys是一个包含main()方法的公共驱动程序类。您的文件名应该是BookMgtSys,因为它是您程序中的公共类。
详细说明:
默认构造函数:默认构造函数将创建一个ArrayList。
参数化构造函数:它应该使用三个名为(ISBN,Book Name和Author Name)的String参数,并使用传递的参数初始化数据成员值。 addBook():此方法将要求用户输入ISBN,书名和作者名称,然后在ArrayList中添加该书并增加Total Book变量。成功添加图书后,应显示包含图书信息的消息框。 searchBook():此方法接受一个参数,即书名,并在ArrayList中搜索书名。如果找到搜索,则显示Book信息,否则显示Book not found。 deleteBook():此方法接受一个参数,即书名,并从ArrayList中删除该书,然后递减Total Book变量。
感谢您的帮助。
代码如下。但它没有编译。它给出了以下错误:
C:\ Code> javac BookMgtSys.java BookMgtSys.java:39:错误: - >预期 bookList = new ArrayList()(); ^ BookMgtSys.java:39:错误:';'预期 bookList = new ArrayList()(); ^ BookMgtSys.java:67:错误:解析时出现了文件结尾} ^ 3错误
import javax.swing.*;
import java.util.*;
public class BookMgtSys
{
public static void main(String[] args)
{
System.out.println("Bismillah");
BookInfo Books=new BookInfo();
String UserOption = JOptionPane.showInputDialog("Enter 1 to Add Book\r\nEnter 2 to Search Book\r\nEnter 3 to Delete Book\r\nEnter 4 to Exit System");
switch(UserOption)
{
case "1":
// Books.addbook();
break;
case "2":
break;
case "3":
break;
case "4":
break;
}
//JOptionPane.showMessageDialog(null, "You entered " + ipstring);
}
}
class BookInfo
{
String ISBN;
String BookName;
String AuthorName;
static int TotalBooks;
ArrayList<BookInfo> bookList;
//constructor
// ArrayList<BookInfo> bookList;
//BookInfo class must have the following member methods:
public BookInfo()
{
bookList = new ArrayList() <BookInfo>();
//persons = new ArrayList()<PersonInfo>();
}
// public void BookInfo(String ISBN, String BookName, String AuthorName)
// {
// this.ISBN=ISBN;
// this.BookName=BookName;
// this.AuthorName=AuthorName;
// TotalBooks++;
// }
// public void addbook ()
// {
// // this.ISBN=JOptionPane.showInputDialog("Enter The ISBN");
// // this.BookName=JOptionPane.showInputDialog("Enter The Name");
// // this.AuthorName=JOptionPane.showInputDialog("Enter The Author");
// TotalBooks++;
// }
// public void searchBook ()
// {
// }
// public void deleteBook ()
// {
// if(TotalBooks>0)
// TotalBooks--;
// }
}
答案 0 :(得分:3)
在类T
的构造函数中创建T
将不会创建递归循环,因为您不是创建T
的其他实例,而只是一个容器,稍后可以添加到该容器中{{1}}个实例。
答案 1 :(得分:2)
请在此处发布您的代码?
你写了new ArrayList() <BookInfo>();
,是吗?
如果为true,则在ArrayList之后删除括号。
答案 2 :(得分:2)
ArrayList<BookInfo> bookList = new ArrayList<BookInfo>();
但是,如果它解决了你的问题(无法编辑他的帖子,请upvote Ihor Yatsenko回答..)