2014-02-07 49 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_; 

    } 

因为您将街道,城市,州和邮编设为私人,所以您可能希望将其放入您的客户类中。