2016-05-25 4 views
1

Это родительский классКак добавить пользовательский ввод в массив

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(){ 


    } 
} 

Все я хочу, когда пользователь хочет добавить книгу, пользователь будет вводить в нее заголовок и идентификатор, и он будет сохраняться в массиве, а когда это делается, он вернется в меню. Кажется, я не знаю, как это сделать.

я попытался сделать это в методе addBook()

holding[hold] = new Book(); 
holding[hold].setBook(); 

метод SetBook бы в классе Book, чтобы завершить SetBook, я должен сделать набор методов для всех метода GET. Но когда я это делаю, конструктор не определен.

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

Спасибо.

Редактировать: После того, как пользователь добавит книгу или видео, когда пользователь хочет распечатать все холдинги, он отобразит заголовок, идентификатор, сумму кредита и максимальный срок кредита. Как мне это сделать?

edit2: Очистка несколько частей, которые не нужно было с моим вопросом

+3

Дайте нам минимальное количество кода, который имеет отношение к вопросу, а не вся вещь – Li357

+0

это не вся вещь, думал, что это имеет отношение – HelpwAssignments

+1

@HelpwAssignments [MCVE] (HTTP: // WWW .stackoverflow.com/help/mcve) –

ответ

0

Я хотел бы предложить вам использовать «список объектов» концепции при обращении с ним.

1) Например, вы можете определить объект «Список книг».

List<Book> bookList = new ArrayList<Book>(); 

2) Каждый раз, когда вы нажимаете функцию AddBook(), вы можете сделать что-то вроде этого.

//Create a temporary object of Book to get the user input data. 
Book tempBook = new Book(holdingIDParam, titleParam); 

//Add them to the list 
bookList.Add(tempBook); 

3) Вы можете использовать этот список для ваших пристрастий, нужно ли сохранять их в базу данных на основе .txt или использовать их на протяжении всей программы. Пример использования:

bookList.get(theDesiredIndex).getBook() ... 

Я не совсем уверен, что вы хотите, но после уплаты внимания на вашем жирных текста, это то, что я могу понять, для вашего случая. Не стесняйтесь исправлять меня по вашим требованиям, если он не встречается. Надеюсь, что это помогает :)

+0

спасибо за помощь: D Один вопрос, как я могу заставить пользователя ввести детали, такие как название и идентификатор? Итак, когда дело доходит до метода addBook(), пользователь вводит данные, такие как
System.out.println («Title:»)
System.out, println («ID:»);
, тогда пользователь вводит имя книги и идентификатор.
Я просто добавляю что-то вроде
Строка title = input.next()
под каждым выходом? – HelpwAssignments

+0

Я думаю, вы можете использовать то, что уже используете? Эти функции сканера хранят вход пользователя во временную переменную, а затем помещают их в параметры, как то, что я написал в моем пункте № 2 - ... (holdIDParam, titleParam) – DriLLFreAK100

+0

Да, я думаю, это сработает. Попробуйте и посмотрите, работает ли это? haha ... – DriLLFreAK100