2014-02-07 43 views
0

我的教授給我的一個任務有點麻煩。以下是提示:Java方法和類

修改Customer類以包含changeStreetO,changeCityO,changeStateO和changeZipO方法。 修改Account類以包含具有street,city,state和zip參數的changeAddressO方法。修改銀行應用程序以測試changeAddressO方法。

我有changeStreetO,changeCityO,changeStateO和changeZipO。但是,我對ChangeAddressO方法的粗體部分感到困惑。我想我明白如何編寫這些參數,但我不確定實際方法中的內容,以及它如何適應程序的其他部分。這是我目前的代碼。

import java.text.NumberFormat; 
import java.io.*; 
import java.util.*; 
public class BankModification 
{ 
    public class Account 
    { 
     private double balance; 
     private Customer cust; 

     public Account(double bal, String fName, String lName, String str, String city, String st, String zip) 
     { 
      balance = bal; 
      cust = new Customer(fName, lName, str, city, st, zip); 
      /** 
      * Returns the current balance 
      * pre: none 
      * post: The account balance has been returned 
      */ 
     } 

     public double getBalance() 
     { 
      return (balance); 
     } 

     /** 
     * A deposit is made to the account 
     * pre: none 
     * post: The balance has been increased by the amount of the deposit. 
     */ 
     public void deposit(double amt) 
     { 
      balance += amt; 

      /** 
      * A withdrawal is made from the account if there is enough money 
      * pre: none 
      * post: The balance has been decreased by the amount withdrawn. 
      */ 
     } 

     public void withdrawal(double amt) 
     { 
      if (amt <= balance) 
      balance -= amt; 
      else 
      System. out. println ("Not enough money in account."); 
     } 


     /** 
     * Returns a String that represents the Account object. 
     * pre: none 
     * post: A string representing the Account object has been returned. 
     */ 
     public String toString() 
     { 
      String accountString; 
      NumberFormat money = NumberFormat.getCurrencyInstance(); 
      accountString = cust.toString(); 
      accountString += "Current balance is " + money.format (balance); 
      return (accountString) ; 
     } 

     public changeAddressO(String street, String city, String state, zip_) 
     { 
     } 

     public class Customer 
     { 
      private String firstName, lastName, street, city,state, zip_; 

      /** 
      * constructor 
      * pre: none 
      * post: A Customer object has been created. 
      * Customer data has been initialized with parameters 
      */ 

      public Customer(String fName, String lName, String str, 
     String c, String s, String z) 
      { 
       firstName = fName; 
       lastName = lName; 
       street = str; 
       city = c; 
       state = s; 
       zip_ = z; 
      } 

      /** 
      * Returns a String that represents the Customer Object 
      * pre: none 
      * post: A string representing the Account object has been returned. 
      */ 

      public String toString() 
      { 
       String custString; 
       custString=firstName + " " + lastName + "\n"; 
       custString +=street + "\n"; 
       custString += city + ", "+state+ " " + zip_ + "\n"; 
       return(custString); 
      } 

      public void ChangeStreetO(String newStreet) 
      { 
       street = newStreet; 
      } 

      public void ChangeCityO(String newCity) 
      { 
       city = newCity; 
      } 

      public void ChangeStateO(String newState) 
      { 
       state = newState; 
      } 

      public void ChangeZipO(String newZip) 
      { 
       zip_ = newZip; 
      } 
     } 
    } 
} 

我不知道如果我失去了一些東西必不可少,但沒有changeAddressO方法,程序編譯。因爲我使用chageStreetO,changeCityO,changeStateO和changeZipO創建了方法,所以我無法弄清楚我需要放入changeAddressO中。對於類和方法我仍然有點困難。有人能提供一些見解/指導來幫助解決這個問題嗎?感謝您的時間。

+0

請記住,您可以從changeAddress()調用您自己的方法。 –

+0

你確定'O's不是雙括號'()'嗎? – BitNinja

+0

我會寫一個接受所有這些參數的方法,然後調用changeStreet,changeCity ...方法。 –

回答

1

你只需要改變客戶的地址:

public void changeAddressO(String street, String city, String state, String zip) 
      { 
      cust.changeAddress(street); 
      cust.changeCity(city); 
      cust.changeState(state); 
      cust.changeZip(zip); 
      } 
0

首先,改變這一

public changeAddressO(String street, String city, String state, zip_) 
{ 
} 

public void changeAddressO(String street, String city, String state, String zip_) 
{ 
} 

所有的功能需要返回類型,並且所有參數在名稱前需要一個類型。這個函數的返回類型是void,這意味着它不向調用函數返回任何東西。將其更改爲Stringint或其他必要的東西。

至少,現在你的代碼將被編譯。

另外,所有的嵌套類都很混亂。你的教授沒有以我希望的方式給你。

開始通過改變這樣的:

public class BankModification 
{ 
    public class Account 
    { 

     //Lots of stuff 

     public class Customer 
     { 

      //Lots of stuff 
     } 
    } 
} 

這個(消除所有public小號除了第一個):

public class BankModification 
{ 
} 
class Account 
{ 
    //Lots of stuff 
} 
class Customer 
{ 
    //Lots of stuff 
} 

這並不功能改變什麼,但至少它不太混亂(請注意,BankModification中沒有任何內容對此不太有幫助。)

修改銀行申請到te st changeAddressO方法。

哪家銀行申請呢?我希望看到一個

public static final void main(String[] as_cmdLineParams) 

的地方在那裏。這是在命令行上鍵入java BankModification時實際執行的功能(因爲BankModification是公共類,只有其main將被執行)。

一些隨機觀察至少讓你思考。

1
public void changeAddressO(String street, String city, String state, String zip_) 
    { 
     this.street = street; 
     this.city = city; 
     this. state = state; 
     this.zip_ = zip_; 

    } 

因爲您將街道,城市,州和郵編設爲私人,所以您可能希望將其放入您的客戶類中。