Есть несколько вещей, о которых стоит упомянуть.
Прежде всего, кажется, что у вас нет полного понимания разницы между статическим и динамическим.Это понятно, поскольку мне даже сейчас было бы нелегко объяснить это легко, хотя я понимаю, как это работает.В вашем классе BankAccountList
есть метод main, который запускается из статического стандартного метода main.Ваш bankAccount
массив определен в этом основном методе, то есть он не существует во всем классе, только внутри работающего основного метода.
Затем вы хотите дать имя банковскому счету в списке.Здесь вы создали еще один статический метод, который ничего не знает о том, что находится внутри вашего основного метода, и он не содержит никакого объекта, которому могут быть переданы параметры.Другими словами, пустая функция, которая у вас есть, не может устанавливать какие-либо параметры для банковского счета, потому что в методе нет банковского счета.
Я бы рекомендовал сделать метод giveName
динамическим (что означает просто удаление статического ключевого слова) и переместить метод в класс BankAccount
.Тогда у вас будет эффективный метод get и set для name, который является динамическим, то есть он действителен для каждого экземпляра объекта класса.После этого можно сначала обратиться к объекту в массиве и напрямую вызвать метод giveName()
для этого конкретного объекта, который установит имя:
public class BankAccount
{
private String name;
//constructor
public BankAccount(String firstName, String LastName)
{
name = firstName + " " + lastName;
}
public String getName()
{
return name;
}
public void giveName (String firstName, String lastName){
name = firstName + " " + lastName;
}
и:
public class BankAccountList {
public static void main(String args[]){
BankAccount bankAccount[] = new BankAccount[2];
bankAccount[1].giveName("MR", "Travis");
}
}
ОБНОВЛЕНИЕ:
Я заметил еще одну вещь.Строка, в которой вы создаете массив: BankAccount bankAccount [] = new BankAccount [2];
Это не создает заполненный массив, он создает пустой массив.другими словами, вы не создали список с банковскими счетами, вы создали список, который может содержать банковские счета.Сначала вам нужно будет создать банковский счет, прежде чем вы сможете дать ему имя.
BankAccount bankAccount[] = new BankAccount[2];
bankAccount[1] = new BankAccount("MR", "Travis");
Теперь у вашего конструктора уже есть параметры для присвоения имени учетной записи при ее создании.Так что теперь вам не нужен метод giveName.Если вы не хотите изменить это позже:
bankAccount[1].giveName("MRS", "Davis");