Это более чистый способ написать приложение для банковского счета, используя Java - PullRequest
0 голосов
/ 22 сентября 2019

Привет, парень, я создал небольшую банковскую систему, в которой я практикую классы, конструктор, а также метод установки геттеров, я думал об использовании цикла в банковском классе, но я не вижу смысла в том, что лучше писать такой код, и мне понравитсяспросить, нормально ли иметь system.out println в геттере или сеттере?

   public class Banking {
        Random rnd = new Random();
        private int accountNumber;
        private double balance;
        private double moneyWithDrawl;


        private String customerName;
        private String email;
        private String phoneNumber;
        public Banking() 
        {

        }
        public Banking(int accountNumber,double balance, String customerName,
                String email, String phoneNumber) 
        {
            this.accountNumber=accountNumber;
            this.balance=balance;
            this.customerName= "Welcome " +customerName;
            this.email=email;
            this.phoneNumber=phoneNumber;
        }
        public void setAccountNumber(int accountNumber) 
        {
            this.accountNumber = accountNumber;
        }
        public void setCustomerName(String customerName) 
        {
            this.customerName=customerName;
        }
        public void setEmail(String email) 
        {
            this.email=email;
        }
        public void setPhoneNumber(String phoneNumber) 
        {
            this.phoneNumber= phoneNumber;
        }
        public void setWithdrawal(double withDrawal) 
        {   
            this.moneyWithDrawl = withDrawal;
            if (this.moneyWithDrawl > this.balance) {
                System.out.println("Not enough fund");
            }
            else if (moneyWithDrawl == 0){
            System.out.println("Cant WithDrawal " + 0);
            }
            else if (this.balance >= this.moneyWithDrawl) {
                System.out.println("Amount withDrawn is "+ moneyWithDrawl+ " New total is " + (this.balance-=this.moneyWithDrawl));
            }
        }

        public void setDeposit(double deposit) 
        {
            this.balance += deposit;
            System.out.println("The amount of " + deposit + " Been added New balance is " + balance);
        }

        public int getAccountNumber() 
        {

            return this.rnd.nextInt(accountNumber);
        }
        public String getCustomerName() 
        {
            return this.customerName;
        }
        public String getEmail() 
        {
            return this.email;
        }
        public String getPhoneNumber() 
        {
            return this.phoneNumber;
        }
    }

1 Ответ

1 голос
/ 22 сентября 2019

Это похоже на процедурное программирование (как программирование на языке C) вместо объектно-ориентированного.

Здесь определен только один класс, Banking, который по сути является всей программой.Поскольку это Java, вам нужно было определить хотя бы один класс, потому что за его пределами ничего не существует.

Вы можете использовать объектно-ориентированное программирование в своих интересах.Вы можете, например, структурировать ваши данные в различных объектах, а затем переписать программу "cleaner" .

Например, вы можете обернуть эти данные

private int accountNumber;
private double balance;
private double moneyWithDrawl;

в отдельный класс, скажем Account .

class Account{
    private int number;
    double balance;

    Account(int number, double balance){
        this.number=number;
        this.balance=balance;
    }

    public void withdraw(double amount){
        // withdrawing logic here
    }

    public void insert(double amount){
        // logic
    }
}

Тогда вы можете сделатьто же самое с этими данными здесь ...

private String customerName;
private String email;
private String phoneNumber;

Оберните это в Класс клиента , который кроме него может содержать также Account данные!

class Customer{
    public String name, email, phoneNumber;
    public Account account;

    Customer(String name, String email, String phoneNumber){
        this.name=name;
        this.email=email;
        this.phoneNumber;
    }

    Customer(String name, String email, String phoneNumber, Account account){
        this(name,email,phoneNumber);
        this.account=account;
    }
}

Теперь вы можете создавать свою программу и взаимодействовать с этими объектами.Например

public static void main(String[] args) {
  // Create a customer
  Account acc = new Account(131313, 1000);
  Customer cust = new Customer("Nick", "nick@mail.com","+46 320 000", acc);

  // make him withdraw 100$, etc...
  cust.account.withdraw(100);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...