Супер и подклассы

  1. это мой класс приложения, в котором вместо массива объектов

  2. loanBook — это суперкласс, а loanDocumentry — это подкласс, который расширяет кредитную книгу. Это объявлено в верхней части класса приложения.

    публичный статический заемКнига[] bookArray = новый заемДокуметрия[5];

затем в моем классе приложений мне нужно добавить новую документальную книгу, поэтому я использую сканер для ввода, а затем использую их для добавления нового объекта

bookArray[i] = new loanDocumentry(
    title, author, publisher, year, noOfPages, genre);

и количество книг в loanBook увеличивается, поэтому я знаю, что каждый раз, когда я запускаю метод, он создает новую книгу, но когда затем распечатывает массив, похоже, что он никогда не добавлял ни одну из этих книг в массив и что единственная, которую я добавил, это последний

Класс приложения:

public class ApplicationClass {

public static Scanner input = new Scanner(System.in);
public static loanBook[] bookArray = new loanDocumentry[5];

public static void main(String[] args) {
    addBook();
}

public static void addBook() {
    input.nextLine();

    String title;
    String author;
    String publisher;
    int year;
    int noOfPages;
    String genre;
    String choice;
    int i = 0;


            System.out.print("\nTITLE of the book: ");
            title = input.nextLine();
            System.out.print("AUTHOR of the book: ");
            author = input.nextLine();
            System.out.print("PUBLISHER of the book: ");
            publisher = input.nextLine();
            System.out.print("YEAR book was published in: ");
            year = input.nextInt();
            System.out.print("NUMBER OF PAGES the book has: ");
            noOfPages = input.nextInt();
            System.out.print("GENRE of the book: ");
            input.nextLine();
            genre = input.nextLine();
            bookArray[i] = new loanDocuemntry(title, author, publisher, year, noOfPages, genre);
            i++;

}

Суперкласс кредитной книги и подкласс кредитной документации используют набор и получает


person user3057408    schedule 02.12.2013    source источник
comment
Почему вместо того, чтобы комментировать то, что вы сделали, опубликуйте свой код?   -  person nachokk    schedule 02.12.2013
comment
это очень длинный код, который имеет 4 разных java-файла, а его меню управляется множеством печатных статистик и т. д.   -  person user3057408    schedule 02.12.2013
comment
Связанный материал: stackoverflow.com/questions/12878879/ попробуйте удалить static из объявления.   -  person ryanlutgen    schedule 02.12.2013
comment
Попробуйте создать SSCCE, тогда вы изолируете проблему, и вам и нам будет легче, если вам все еще нужна помощь.   -  person nachokk    schedule 02.12.2013


Ответы (1)


Попробуйте распечатать i из строки выше bookArray[i] = new loanDocumenry(. Она должна меняться при добавлении каждой новой кредитной книги.

Когда вы добавляете кредитную книгу, я должен увеличиться на 1, поэтому вы устанавливаете bookArray[0], bookArray[1], bookArray[2], bookArray[3], bookArray[4]. Вы устанавливаете только первый.

person DoubleDouble    schedule 02.12.2013
comment
он увеличивается на один - person user3057408; 03.12.2013
comment
Да, в вашем методе вы устанавливаете его равным 0. Затем в конце вы увеличиваете его до 1. Но когда вы добавляете следующую книгу, он снова начинается с 0 и снова увеличивается до 1. добавление статического метода к методу не сохраняет int i в том же значении, что и раньше. - person DoubleDouble; 03.12.2013
comment
Как я могу изменить это? - person user3057408; 03.12.2013
comment
Если у меня есть я вне метода, это поможет - person user3057408; 03.12.2013
comment
Самый простой способ — переместить i куда-нибудь над методом, где метод будет иметь к нему доступ. - person DoubleDouble; 03.12.2013
comment
Если вам нужна дополнительная информация о переменных экземпляра и класса, ознакомьтесь с этим ссылка. - person DoubleDouble; 03.12.2013
comment
нет, это была ошибка, это понятно, где я ошибся, просто я только начал тестировать приложение и увидел эти проблемы - спасибо за помощь, хотя - person user3057408; 03.12.2013