Java 如何将用户输入添加到数组中

Java 如何将用户输入添加到数组中,java,arrays,inheritance,user-input,Java,Arrays,Inheritance,User Input,这是父类 public class Holding { private String holdingId, title; private int defaultLoanFee, maxLoanPeriod, calculateLateFee; public Holding(String holdingId, String title){ this.holdingId = holdingId; this.title = title; } public String getI

这是父类

public class Holding {

private String holdingId, title;
private int defaultLoanFee, maxLoanPeriod, calculateLateFee;

public Holding(String holdingId, String title){

    this.holdingId = holdingId;
    this.title = title;
}

public String getId(){

    return this.holdingId;  

}

public String getTitle(){

    return this.title;  

}


public int getDefaultLoanFee(){

    return this.defaultLoanFee;

}
public int getMaxLoanPeriod(){

    return this.maxLoanPeriod;

}

public void print(){

    System.out.println("Title: " + getTitle());
    System.out.println("ID: " + getId());
    System.out.println("Loan Fee: " + getDefaultLoanFee());
    System.out.println("Max Loan Period: " + getMaxLoanPeriod());
}



}
这是子类:

public class Book extends Holding{

private String holdingId, title;
private final int defaultLoanFee = 10;
private final int maxLoanPeriod = 28;

public Book(String holdingId, String title){
    super(holdingId, title);    
}

public String getHoldingId() {
    return holdingId;
}

public String getTitle(){
    return title;
}

public int getDefautLoanFee(){
    return defaultLoanFee;
}

public int getMaxLoanPeriod(){
    return maxLoanPeriod;
}

public void print(){
    System.out.println("Title: " + getTitle());
    System.out.println("ID: " + getHoldingId());
    System.out.println("Loan Fee: " + getDefaultLoanFee());
    System.out.println("Max Loan Period: " + getMaxLoanPeriod());
}

}
这是菜单:

public class LibraryMenu {

static Holding[]holding = new Holding[15];
static int hold = 0;
static Scanner input = new Scanner(System.in);

public static void main(String[] args) {

    Scanner keyboard = new Scanner(System.in);
    int options = keyboard.nextInt();
    do{
    }
    System.out.println();
    System.out.println("Library Management System");


    System.out.println("1. Add Holding");
    System.out.println("2. Remove Holding");


    switch(options){

    case 1:
        addHolding();
        break;

    default:
        System.out.println("Please enter the following options");
    }
}while(options == 13);
    System.out.println("Thank you");

}

public static void addHolding(){

    System.out.println("1. Book");
    System.out.println("2. Video");
    int input1 = input.nextInt();

    switch(input1){

    case 1:
        addBook();
        break;

    case 2:
        addVideo();
        break;

    default:
        System.out.println("Please select the following options");
        break;
    }
}

public static void addBook(){


    }   
}
我想要的是,当用户想要添加一本书时,用户将键入该书的标题和id,并将其保存到数组中,完成后,它将返回菜单。用我的知识目前似乎做不到。

我尝试在addBook()方法中执行此操作

setBook方法将在Book类中,为了完成setBook,我必须为所有get方法创建set方法。但当我这样做时,构造函数是未定义的

public void setBook(){

System.out.println("Title: " + setTitle());
System.out.println("ID: " + setHoldingId());
System.out.println("Loan fee: " + setDefaultLoanFee());
System.out.println("Max Loan Period: " + setMaxLoanPeriod());

}
如果我的代码有什么问题,请随时告诉我:D

谢谢

编辑:用户添加书籍或视频后,当用户想要打印所有收藏时,会显示标题、id、借阅费和最长借阅期。我该怎么做


编辑2:清理一些我的问题不需要的部分

我建议你使用“对象列表”的概念来处理它

1) 例如,您可以定义图书对象列表

List<Book> bookList = new ArrayList<Book>();
3) 然后,您可以根据自己的喜好使用该列表,是将它们存储到基于.txt的数据库中,还是在整个程序中使用它们。用法示例:

bookList.get(theDesiredIndex).getBook() ...
我不完全确定您想要什么,但在关注您的粗体文本后,这就是我对您案例的理解。如果不符合您的要求,请随时纠正我。
希望有帮助:)

我建议您使用“对象列表”概念来处理它

1) 例如,您可以定义图书对象列表

List<Book> bookList = new ArrayList<Book>();
3) 然后,您可以根据自己的喜好使用该列表,是将它们存储到基于.txt的数据库中,还是在整个程序中使用它们。用法示例:

bookList.get(theDesiredIndex).getBook() ...
我不完全确定您想要什么,但在关注您的粗体文本后,这就是我对您案例的理解。如果不符合您的要求,请随时纠正我。
希望能有所帮助:)

给我们提供与问题相关的最少代码量,而不是全部内容这不是全部内容,我想是的relevant@HelpwAssignments我可能不会让它成为一个静态数组,而是一个ArrayList,这样您就可以使用该语言在向ArrayList添加更多项时让它增长。创建一个声明大小的传统数组将大小设置为静态大小。例如int[5]={1,2,3,4,5};如果在ArrayList中使用原语,只需使用包装器类将它们放入ArrayList中即可。例如,对于int,您可以使用Integer。@Dale我只有15个限制,所以我不需要创建ArrayList,但是可以为ArrayList创建限制吗?我不明白你说的“创建一个传统的数组,在其中声明大小将大小设置为静态大小”给了我们与问题相关的最少代码量,而不是全部这不是全部,我想是的relevant@HelpwAssignments我可能不会让它成为一个静态数组,而是一个ArrayList,这样您就可以使用该语言在向ArrayList添加更多项时让它增长。创建一个声明大小的传统数组将大小设置为静态大小。例如int[5]={1,2,3,4,5};如果在ArrayList中使用原语,只需使用包装器类将它们放入ArrayList中即可。例如,对于int,您可以使用Integer。@Dale我只有15个限制,所以我不需要创建ArrayList,但是可以为ArrayList创建限制吗?当你说“创建一个传统的数组,在其中声明大小将大小设置为静态大小”时,我不明白。谢谢你的帮助:D一个问题,我如何让用户输入标题和ID等详细信息?因此,当涉及addBook()方法时,用户将输入详细信息,如
System.out.println(“Title:”)
System.out,println(“ID:”)
然后用户将输入书籍的名称和id。
我是否只需在每个输出下添加类似于
String title=input.next()的内容?我想您可以使用您已经使用的内容?这些扫描器功能,将用户输入存储到一个临时变量中,然后将它们放入参数中,就像我在第2点中写的那样-。。。别担心,我没有读到这本书上面的评论,你睁开了我的眼睛,哈哈。。别担心。希望有帮助;)如果你能勾选我的答案的话,我将不胜感激。哈哈。谢谢你的帮助:D一个问题,我如何让用户输入像标题和ID这样的详细信息?因此,当涉及addBook()方法时,用户将输入详细信息,如
System.out.println(“Title:”)
System.out,println(“ID:”)
然后用户将输入书籍的名称和id。
我是否只需在每个输出下添加类似于
String title=input.next()的内容?我想您可以使用您已经使用的内容?这些扫描器功能,将用户输入存储到一个临时变量中,然后将它们放入参数中,就像我在第2点中写的那样-。。。别担心,我没有读到这本书上面的评论,你睁开了我的眼睛,哈哈。。别担心。希望有帮助;)如果你能勾选我的答案,如果它能达到目的的话,我将不胜感激哈哈。。