Метод поиска и наследования путаница - PullRequest
0 голосов
/ 14 января 2012

Хорошо, у меня много проблем, я все еще изучаю Java, и моя книга поставила перед собой задачу, которую я нахожу общей в сети, часть, на которой я застрял ...

Я должен создать программу банковского счета, владельцу счета предоставляется сберегательный счет (с процентной ставкой и без возможности овердрафта) и текущий счет (с возможностью овердрафта в 100 фунтов стерлингов и без процентов).

Я пока не использую овердрафт, и я только на полпути к тому, чтобы подготовить функцию снятия и пополнения счета, но мой вопрос с процентами, я определил в своем суперклассе остаток сберегательного счета и остаток на текущем счете, такпри разработке моего интереса к классу сберегательного счета я не могу ссылаться на баланс сохранения, поскольку я сделал это частным.Я пытаюсь использовать метод set.name, но я явно ошибаюсь ....

Большая улыбка и спасибо за любого, кто может помочь или дать совет!

Суперкласс выглядит следующим образом:

public class BankDetails
    {
        private String customer;
        private String accountno;
        private double savebalance;
        private double checkbalance;


//Constructor Methods

 public BankDetails(String customerIn, String accountnoIn, double savebalanceIn, double checkbalanceIn)
        {
            customer = customerIn;
            accountno = accountnoIn;
            savebalance = savebalanceIn;
            checkbalance = checkbalanceIn;
        }

      // Get  name
      public String getcustomername()
        {
            return (customer);
        }

      // Get account number
      public String getaccountnumber()
        {
            return (accountno);
        }

       public double getcheckbalanceamount()
        {
            return (checkbalance);
        }

       public double getsavebalanceamount()
        {
            return (savebalance);
        }


public void savewithdraw(double savewithdrawAmountIn)

  {
        savebalance = savebalance - savewithdrawAmountIn;

  }

public void checkwithdraw(double checkwithdrawAmountIn)

  {
        checkbalance = checkbalance - checkwithdrawAmountIn;

  }


 public void savedeposit(double savedepositAmountIn)

  {
        savebalance = savebalance - savedepositAmountIn;

  }

public void checkdeposit(double checkdepositAmountIn)

  {
        checkbalance = checkbalance - checkdepositAmountIn;

  }




    } // End Class BankDetails

Подкласс выглядит следующим образом:

    import java.util.*; 

public class Savings extends BankDetails
  {

      private String saveaccount;
      private double interest;


      public Savings(String customerIn, String accountnoIn, float interestIn, 
      String saveaccountIn, double savebalanceIn)
        {


            super (customerIn, accountnoIn, savebalanceIn, interestIn);


            saveaccount = saveaccountIn;
            interest = interestIn;

        }


      public String getsaveaccountno()
       {
           return (saveaccount);
       }

      public double getinterestamount()
       {
           return (interest);
       }


      public void interestamount(String[] args)

       {
           BankDetails.getsavebalanceamount(savebalance);
           interest = (savebalance / 100) * 1.75;


       }


       }

Ответы [ 2 ]

3 голосов
/ 14 января 2012

Используйте метод getSaveBalance() суперкласса для доступа к балансу (который имеет подозрительное имя, поскольку у вас есть класс сберегательного счета, но баланс сохраняется в другом месте).

(В настоящее время это getsavebalanceamount(), я предполагаю, что переименование соответствует соглашениям Java.)


Я бы рекомендовал использовать согласованный CamelCase при именовании ваших геттеров и сеттеров, например, getInterestAmount(), getSaveAccountNo() и т. Д.

Я рекомендую не комментировать простые методы получения / установки, но если вы это делаете, используйте соглашения Javadoc, например ::

/** Returns current savings account balance. */
public double getSaveBalance() { ... etc ... }

Я также рекомендую избегать лишних скобок, как в настоящее время в ваших получателях, например ::

public double getSaveBalance() {
    return saveBalance; // No parens required.
}
2 голосов
/ 14 января 2012

Я предлагаю вам сделать что-то подобное,

interface Account{
  int getAccountNumber();
  float getBalance();
}

public class SavingAccount implements Account, Interest{
  int accountNumber;
  public int getAccountNumber(){
    return accountNumber;
  }
  float balance;
  public float getBalance(){
    return balance;
  }
  float savingInterestRate;
  public float getInterestRate(){
     return savingInterestRate;
  }
}

public class CheckingAccount implements Account, OverDraft{
  int accountNumber;
  public int getAccountNumber(){
  return accountNumber;
  }
  float balance;
  public float getBalance(){
    return balance;
  }
}

interface Interest{
  float getInterestRate();
}

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