Первое, что приходит на ум, это то, что вам нужно разделить свои проблемы.Это означает, что ваш класс Финансы должен делать только то, что связано с финансами.Он должен не делать такие вещи, как чтение ввода из командной строки.
Один из способов добиться такого разделения - создать другой класс, что-то вроде FinanceDataReader или что-то подобное, и заставить его управлять всеми взаимодействиями с пользователем.Он получит данные из командной строки и передаст их в ваши экземпляры Finance.Если вы действительно хотите стать модным, создайте интерфейс для чтения финансовых данных, а затем внедрите реализацию CommandLineFinanceDataReader.Таким образом, вы можете изменить способ получения данных в будущем, и вам не нужно будет менять свой класс «Финансы».
Таким образом, говоря иначе, переместите любую функциональность, которая читает входные данные, в другой класс, чтобы уменьшить финансы.и более ремонтопригоден.Создайте классы, которые инкапсулируют всю вашу функциональность, но сгруппируйте их в соответствии с проблемами, которые вы решаете.
Еще одна важная вещь, которую вы можете сделать, - это использовать такую среду, как JUnit, для модульного тестирования вашего кода.Это потребует первоначальных вложений, но поможет вам сэкономить время, потому что вы будете проверять все мелочи по ходу работы.Другими словами, вы не будете писать 300 строк кода, а затем должны выяснить, почему он не работает;тестирование во время написания каждого метода поможет вам убедиться, что ваши методы / классы выполняют то, что вы хотите.
Не волнуйтесь, такого рода вещи приходят со временем - если это для вашей первой Java и, возможно, OOкласс, вы будете делать ошибки и иметь ограниченный дизайн.Со временем это улучшится, если вы будете придерживаться этого.