Я создал программу, которая создает 10 базовых учетных записей с идентификатором, состоящим из четырех цифр и балансом по умолчанию 100. Я пытаюсь создать дополнительные учетные записи (проверки учетных записей) с большим количеством ограничений/Дополнительная информация. Чтобы получить доступ к учетным записям, вы должны ввести свой идентификатор, который отображается в списке всех возможных идентификаторов (во избежание угадывания id). Моя проблема в том, что я создал 10 объектов Checkingaccount с моими начальными 10 стандартными объектами учетной записи моя программа не будет назначать случайный четырехзначный идентификатор для обоих объектов. Учетные записи объектов получают идентификаторы, но если вы запустите программу, объекты Checkingaccount не получат идентификаторы. Почему?Предоставление случайных чисел объекту в отдельном классе
Я пробовал в течение нескольких часов, и я очень новичок в этом, поэтому, пожалуйста, простите меня, если это каким-то образом сломан или неверно. Я очень ценю время, которое вы принимаете, чтобы помочь мне!
import java.util.Scanner;
import java.util.Random;
public class Chapter10_7 {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
CheckingAccount[] Checkingaccount = new CheckingAccount[10];//create ten CHECKING ACCOUNT objects
account[] accounts = new account[10];//create ten accounts objects
for (int i = 0; i < accounts.length; i++) {
Random r = new Random();
int ID = +((int)(Math.random()*9000)+1000);//ID is 4 digit number
accounts[i] = new account(ID, 100); //assign random 4 digit ID to accounts[1-10]
System.out.println(ID);
}
System.out.println("\n--Checking Accounts--\n");
for (int i = 0; i < Checkingaccount.length; i++) {
Random r = new Random();
int ID = +((int)(Math.random()*9000)+1000);//ID is 4 digit number
Checkingaccount[i] = new CheckingAccount(ID, 100); //assign random 4 digit ID to CHECKING ACCOUNT[1-10]
System.out.println(ID);
}
boolean hasRan = false;
int q = 0;
int a = q;
int userID = 0;
int accountID = 0;
int CheckingaccountID = 0;
int z = 0;
while(z != 4){//run until user enters 4
while(hasRan == false){//runs once and never again unless its incorrect ID
System.out.println("Enter Account ID");
userID = input.nextInt();
for(a = 0; a < accounts.length; a++){
accountID = accounts[a].getId(); //accountID gets accounts[a] ID variable and stores it(4 digit ID).getId
CheckingaccountID = Checkingaccount[a].getId();
if(userID == accountID){//if your input of ID equals an accounts pin(any of them) it allows access
System.out.println("Welcome");
hasRan = true;//stops it from looping
break;
}if(userID == CheckingaccountID){//if your input of ID equals a Checking Account pin(any of them) it allows access
System.out.println("Welcome");
hasRan = true;//stops it from looping
break;
}else if(userID != accountID){
hasRan = true;//loop if you entered incorrect pin
}
}
}
if(userID == accountID){// if ID matches an existing accounts ID then access
System.out.println("\n1:Check Balance\n2:Deposit\n3:Withdraw\n4:Exit");
int x = input.nextInt();
//accounts[a] is the account array,1-10 since we have 10 accounts.
if (x == 1){
System.out.println("Your Balance Is: " + accounts[a].getBalance());
accounts[a].getBalance();
}else if (x == 2){
System.out.println("How Much Would You Like To Deposit?");
int newDeposit = input.nextInt();
accounts[a].deposit(newDeposit);
System.out.println("Your Total Is: "+ accounts[a].getBalance());
}else if(x == 3){
System.out.println("How Much Would You Like To Withdraw?");
int newWithdraw = input.nextInt();
accounts[a].withdraw(newWithdraw);
System.out.println("Your Total Is: "+ accounts[a].getBalance());
}else break;
}else{
hasRan = false;// allows ID check to run again
}
}
}
}
-Это класс, который я создал, чтобы использовать только 10 базовых объектов «учетных записей».
class account{
private int id = 0;
private double balance = 100;
public account(int newId , double newBalance){
id = newId;
balance = newBalance;
}
public double getBalance() {
return balance;
}
public void setBalance(double newBalance) {
balance = newBalance;
}
public int getId() {
return id;
}
public void setId(int newId) {
id = newId;
}
public double deposit(double newDeposit){
balance = balance + newDeposit;
return newDeposit;
}
public double withdraw(double newWithdraw){
balance = balance - newWithdraw;
return newWithdraw;
}
@Override
public String toString() {
return "\r\n"+"Account ID: " + id + "\r\n" + "Balance: " + balance + "\r\n" ;
}
}
-I попытался сделать Проверка Accounts работы в отдельном классе со счетов
import java.util.Random;
public class CheckingAccount {
private double balance;
private int id;
public CheckingAccount(int newId , double newBalance){
}
public double getBalance() {
return balance;
}
public void setBalance(double balance) {
this.balance = balance;
}
public int getId() {
return id;
}
public void setID(int newId){
id = newId;
}
}
btw, используйте соглашение об именах java, в котором говорится, что классы должны начинаться с заглавных букв – nomadus