Хранение объекта с использованием ArrayList и тестирование методом main - PullRequest
0 голосов
/ 16 сентября 2018

Я новичок в Java и пытаюсь научить себя ArrayList. Я намереваюсь написать программу для хранения банковских классов, которая состоит из списка банковских счетов, который включает в себя: имя, баланс и номер счета. Я также хочу протестировать класс Bank с помощью метода main () для получения учетной записи или удаления учетной записи через номер учетной записи.

вот что я сделал до сих пор:

import java.util.ArrayList;

public class W7E1b {
    public static void main(String[]args) {

        ArrayList <BankAccount> accountList = new ArrayList<BankAccount>();

        accountList.add(new BankAccount("Peter",100.00));
        accountList.add(new BankAccount("Jan",1500.00));

        BankAccount.setName("Phil");
        System.out.println(accountList.get(1).getName());
    }

    public class BankAccount {
        private String Name;
        private double balance;
        private static int accountNum;
        private static int lastAccountNum = 0;

        public BankAccount(String Name, double balance) {
            this.Name = Name;
            this.balance = balance;
            lastAccountNum++;
            accountNum = lastAccountNum;
        }


        public void setName(String nm) {
            Name = nm;
        }
        public void setbalance(double bl) {
            balance =bl;
        }
        public int getaccountNum() {
            return accountNum;
        }

    }
}

Он показывает ошибку в основном методе, когда я пытаюсь добавить параметр к объекту, используя метод add в ArrayList. Я смущен концепцией ArrayList сейчас. Я не понимаю, что я сделал неправильно в коде.

Должен ли я по-прежнему объявлять конструктор, если я хочу использовать ArrayList для хранения объекта? если есть несколько объектов с одинаковыми параметрами, могу ли я создать только один конструктор или несколько? Где я должен объявить Arraylist?

если бы кто-нибудь мог мне помочь с другими моими вопросами о концепции ООП, было бы здорово: если есть несколько объектов с одинаковыми параметрами, могу ли я создать только один конструктор или несколько?

Ответы [ 2 ]

0 голосов
/ 16 сентября 2018

Ваша реализация ArrayList верна.

ArrayList <BankAccount> accountList = new ArrayList<BankAccount>();

Здесь вы заявляете, что ваш accountList будет содержать объекты типа Bank Account.

accountList.add(new BankAccount("Peter",100.00));
accountList.add(new BankAccount("Jan",1500.00));

Здесь код выполняет 2 вещи: создает объект типа BankAccount с помощью предоставленного вами конструктора и добавляет эти вновь созданные объекты в accountList.

Кажется, в вашем коде проблема с компиляцией в следующих 2 строках: -

BankAccount.setName("Phil");
System.out.println(accountList.get(1).getName());

В первой строке вы пытаетесь вызвать метод setName () для класса (как если бы это был статический метод), а в классе BankAccount он указан как метод экземпляра. (без статического ключевого слова)

Во второй строке вы получаете объект класса BookAccount с помощью accountList.get(1), а затем вызываете для него метод getName (). Однако getName () отсутствует в вашем классе BookAccount.

Исходя из кода, который я вижу, ваше понимание ArrayList выглядит хорошо.

0 голосов
/ 16 сентября 2018

Прежде всего, ошибка в BankAccount.setName("Phil");.SetName() - это метод экземпляра, для доступа к которому требуется объект, и className не может получить к нему доступ.

Кроме того, конструктор можно использовать как в вашем случае.В противном случае вам, возможно, придется объявить другой метод, чтобы установить все переменные экземпляра, что и делает конструктор, и является предпочтительным, или разные методы для каждой переменной экземпляра (не требуется).

Для нескольких объектов с параметрами одного типа, которые вам требуютсятолько один конструктор.

Кроме того, вы объявили ArrayList, после чего добавляете объекты типа BankAccount, который кажется правильным.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...