Как мне использовать переменные из двух разных методов, в новом методе? - PullRequest
0 голосов
/ 04 ноября 2019

Я написал код, который читает в двух текстовых файлах в отдельных методах.

Это файлы:

Номера счетов и остатки

0015      112.34
0020     4000.00
0034     9345.89
0069      723.50
0085     1500.00
0091     8237.31
0128       29.75
0129     -483.14
0135     2908.83
0189    10045.90
0251     5700.10
0396       29.75
0404     3299.99
0563     1000.02
2678    -5679.23
4561       12.00
8888        0.00
9999     9876.78

Номера счетов, депозит (1) или вывод средств (2), а также сумма

0015   1   2000.00
2678   1   5000.00
0189   1    250.00
0034   2    500.00
0085   1    375.00
0404   2     72.49
0128   2     30.00
0189   1    250.00
4561   1     10.00
0020   2    189.70
0015   2   1000.00
0010   1    500.00

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

Вот мой код с дополнительным классом.

package Bank;

import java.util.Scanner;
import java.io.PrintStream;
import ui.UIAuxiliaryMethods;

class Bank {

    PrintStream out;

     Bank() { 
            out = new PrintStream(System.out); 
            }

     void readAccountsIn() {
         Scanner fileScanner = UIAuxiliaryMethods.askUserForInput().getScanner();

         while(fileScanner.hasNext()) {
             String Account = fileScanner.nextLine();
             readAccountLine(Account);
         }
     }

     void readMutationsIn() {
         Scanner fileScanner1 = UIAuxiliaryMethods.askUserForInput().getScanner();
         while(fileScanner1.hasNext()) {
             String Mutation = fileScanner1.nextLine();
             readMutationLine(Mutation);
         }
     }


     void readAccountLine(String Account) {
         String[] parts = Account.split("\\s+");
         String account1 = parts[0];
         String balance1 = parts[1];
         double balance = Double.parseDouble(balance1);
             Accounts line = new Accounts(account1, balance);
             out.printf("%s %.2f \n",line.account1, line.balance);
         }

     void readMutationLine(String Mutation) {
         String[] parts = Mutation.split("\\s+");
         String account = parts[0];
         String type1 = parts[1];
         String mutation1 = parts[2];
         int type = Integer.parseInt(type1);
         double mutation = Double.parseDouble(mutation1);
         Mutations line1 = new Mutations(account, type, mutation);
         out.printf("%s %d %.2f \n",line1.account, line1.type, line1.mutation);
     }

     void start() {
         readAccountsIn();
         readMutationsIn();
        }

    public static void main(String[] args) {
        // TODO Auto-generated method stub
        new Bank().start();
    }

}

package Bank;

class Accounts {

    String account1;
    double balance;

    Accounts(String account1, double balance){

        this.account1 = account1;
        this.balance = balance;
    }

}

Я хочу создатьновый метод с именем Summary (), в котором я использую все переменные (account1 и balance) из readAccountline () и (account, type, mutation) readMutationLine (). Есть ли способ сделать это?

1 Ответ

1 голос
/ 04 ноября 2019

Назовите ваш класс Account и используйте accountName для вашей строки, модель должна отражать реальное использование


В вашем Bank должен быть список Account для хранения ииспользуйте их

class Bank {

    PrintStream out;
    List<Account> accounts;
    Bank() { 
        out = new PrintStream(System.out); 
        accounts = new ArrayList<>();
    }
}

Затем при создании Account сохраните их

void readAccountLine(String account) {
   //...
   Account acc = new Account(account1, balance);
   accounts.add(acc);
}

Затем вы можете написать метод toString, который суммирует содержимое банка

@Override
public String toString() {
    StringBuilder sb = new StringBuilder("Bank");
    for (Account a : accounts)
        sb.append(a);         // you may write the toString() for Account too
    return sb.toString();
}

И используйте как:

public static void main(String[] args) {
    Bank b = new Bank();
    b.start();
    System.out.println(b); // will call toString();
}

Затем сделайте то же самое для Mutations

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