zoukankan      html  css  js  c++  java
  • 创建一个简单的银行程序包.........未完善,待续

    2练习1:创建一个简单的银行程序包

     

    练习目标-Java 语言中面向对象的封装性及构造器的使用。

     

    任务

    在这个练习里,创建一个简单版本的(账户类)Account类。将这个源文件放入banking程序包中。在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking。这个测试程序初始化帐户余额,并可执行几种简单的事物处理。最后,该测试程序显示该帐户的最终余额。

    1. 创建banking

    2. banking 包下创建Account类。该类必须实现上述UML框图中的模型。

    1. 声明一个私有对象属性:balance,这个属性保留了银行帐户的当前(或即时)余额。
    2. 声明一个带有一个参数(init_balance)的公有构造器,这个参数为balance属性赋值。
    3. 声明一个公有方法getBalance,该方法用于获取经常余额。
    4. 声明一个公有方法deposit,该方法向当前余额增加金额。
    5. 声明一个公有方法withdraw从当前余额中减去金额。

    3. 编译TestBanking.java文件。

    4. 运行TestBanking类。可以看到下列输出结果:

     

      Creating an account with a 500.00 balance

    Withdraw 150.00

    Deposit 22.50

    Withdraw 47.62

    The account has a balance of 324.88

    练习2

     

    练习目标-使用引用类型的成员变量:在本练习中,将扩展银行项目,添加一个(客户类)Customer类。Customer类将包含一个Account对象。

     

    任务

    1. banking包下的创建Customer类。该类必须实现上面的UML图表中的模型。

    a. 声明三个私有对象属性:firstName、lastNameaccount

    b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(fl

    c. 声明两个公有存取器来访问该对象属性,方法getFirstNamegetLastName返回相应的属性。

    d. 声明setAccount 方法来对account属性赋值。

    e. 声明getAccount 方法以获取account属性。

    1. exercise2主目录里,编译运行这个TestBanking程序。应该看到如下输出结果:

    Creating the customer Jane  Smith.

    Creating her account  with  a  500.00  balance.

    Withdraw 150.00

    Deposit 22.50

    Withdraw 47.62

    Customer [Smith, Jane] has a balance of 324.88

    练习3:修改withdraw 方法

    练习目标-使用有返回值的方法:在本练习里,将修改withdraw方法以返回一个布尔值来指示交易是否成功。

     

    任务

    1. 修改Account

    1. 修改deposit 方法返回true(意味所有存款是成功的)。
    2. 修改withdraw方法来检查提款数目是否大于余额。如果amt小于balance,则从余额中扣除提款数目并返回true,否则余额不变返回false

    2. exercise2主目录编译并运行TestBanking程序,将看到下列输出;

    Creating the customer Jane Smith.

    Creating her account with a 500.00 balance.

    Withdraw 150.00: true

    Deposit 22.50: true

    Withdraw 47.62: true

    Withdraw 400.00: false

    Customer [Smith, Jane] has a balance of 324.88

    练习4:用List表示多重性

     

    练习目标-在类中使用List作为模拟集合操作: 在本练习中,将用List实现银行与客户间的多重关系。

     

    任务

    对银行来说,可添加Bank类。 Bank 对象跟踪自身与其客户间的关系。用Customer对象的List实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户。

    1. 创建 Bank
    1. Bank类增加两个属性:customers(Customer对象的List)numberOfCustomers(整数, 当前Customer对象的数量)
    1. 添加公有构造器,初始化customersList
    1. 添加addCustomer方法。该方法必须依照参数(姓,名)构造一个新的Customer对象然后把它放到customerList中。
    1. 添加getNumOfCustomers 访问方法,它返回numberofCustomers属性值。
    1. 添加getCustomer方法。它返回与给出的index参数相关的客户。
    1. 编译并运行TestBanking程序。可以看到下列输出结果:

    Customer 1 is Simms,Jane

    Customer 2 is Bryant,Owen

       Customer 3 is Soley,Tim

       Customer 4 is Soley,Maria

    当前客户数量 = 4

    package banking;
    
    //账户
    public class Account {
    	private double balance=500;//当前余额
    	
    	//构造共有方法
    	public Account(double init_balance)
    	{
    		this.balance=init_balance;
    	}
    	public double getBalance()
    	{
    		return balance;
    	}
    	//增加余额
    	public double  dePosit(double amt)
    	 {
    		 balance+=amt;
    		 return balance;
    	 }
    	
    	//减去金额
    	public double  withdraw(double amt)
    	{
    		
    			balance-=amt;
    			return balance;
    		
    	}
    	
    	//第三问方法
    	//增加余额
    		public boolean dePosit1(double amt)
    		 {
    			 balance+=amt;
    			 System.out.print("dePosit"+amt+":");
    			 return true;
    		 }
    		
    		//减去金额
    		public boolean withdraw1(double amt)
    		{
    			if(amt<=balance)
    			{
    				balance-=amt;
    				System.out.print("Withdraw"+amt+":");
    				return true;
    			}
    			else
    			{
    				this.balance=balance;
    				System.out.print("Withdraw "+amt+" :");
    				return false;
    			}
    		}
    	public Account() {
    		super();
    	}
    	
    }
    

      

    package banking;
    //顾客
    public class Customer extends Account {
    
    	//属性
    	String firstName;
    	String lastNam;
    	 double  account;
    	
    	public String getFirstName() {
    		return firstName;
    	}
    	public void setFirstName(String firstName) {
    		this.firstName = firstName;
    	}
    	public String getLastNam() {
    		return lastNam;
    	}
    	public void setLastNam(String lastNam) {
    		this.lastNam = lastNam;
    	}
    	public double getAccount() {
    		return account;
    	}
    	public void setAccount(double account) {
    		this.account = account;
    	}
    	public Customer( String firstName, String lastNam) {
    		
    		this.firstName = firstName;
    		this.lastNam = lastNam;
    		
    	}
    	public Customer() {
    		
    	}
    	 
    		@Override
    		public String toString() {
    			return "Customer  " +firstName +"," + lastNam;
    		}
    	 
    
    }
    

      

    package banking;
    
    import java.util.ArrayList;
    import java.util.List;
    
    //银行
    public class Bank {
    	
    	private List<Customer> customers;//List型
    
    	int numberOfCustomers;
    	
    
    	
    
    	public Bank()
    	{
    		customers=new ArrayList<Customer>();//初始化集合
    	}
    	
    	 public void addCustomer(String f,String l)
    	 {
    	        Customer c=new Customer(f,l);
    	        customers.add(c);
    	 }
    	 public int getNumOfCustomers(){
    	        numberOfCustomers=customers.size();
    	        return numberOfCustomers;
    	    }
    
    	 public Customer getCustomer(int index)
    	 {
    	        Customer s=new Customer();
    	        s=customers.get(index);
    	        return s;
    	 }
    
    
    	
    
    	public void setNumberOfCustomers(int numberOfCustomers) {
    		this.numberOfCustomers = numberOfCustomers;
    	}
    
    	public List<Customer> getCustomers() {
    		return customers;
    	}
    
    	
    
    	public int getNumberOfCustomers() {
    		return numberOfCustomers;
    	}
    
    }
    

      

    package banking;
    
    import java.util.ArrayList;
    import java.util.Iterator;
    import java.util.List;
    
    public class TestBanking {
    
    	public static void main(String[] args) {
    		Account ac=new Account(500.0);
    		System.out.println("Creating an account with a "+ac.getBalance()+" balance");
    		ac.withdraw(150);
    		System.out.println("Withdraw "+ac.getBalance());
    		double x=ac.getBalance();
    		
    		System.out.println("Deposit "+(ac.dePosit(22.50)-x));
    		
    		System.out.println("Withdraw "+ac.withdraw(47.62));
    		System.out.println("The account has a balance of "+ac.getBalance());
    		
    		
    		System.out.println("第二问测试结果------------------");
    		 Customer cu=new  Customer();
    		 
    		 cu.setFirstName("Smith");
    		 cu.setLastNam("Jane");
    		 System.out.println("Creating the customer "+cu.getFirstName()+","+cu.getLastNam());
    		 System.out.println("Creating her account  with  a "+cu.getBalance()+" balance.");
    		 cu.withdraw(150);
    			System.out.println("Withdraw "+cu.getBalance());
    			double y=ac.getBalance();
    			
    			System.out.println("Deposit "+(cu.dePosit(22.50)-y));
    			
    			System.out.println("Withdraw "+cu.withdraw(47.62));
    			System.out.println("Customer [ "+cu.getFirstName()+","+cu.getLastNam()+" ] has a balance of "+cu.getBalance());
    			
    			
    			System.out.println("第三问测试结果------------------");
    			
    			 System.out.println("Creating the customer "+cu.getFirstName()+","+cu.getLastNam());
    			 System.out.println("Creating her account  with  a "+cu.getBalance()+" balance.");
    			System.out.println(ac.withdraw1(150));
    			System.out.println((ac.dePosit1(22.50)));
    			System.out.println(ac.withdraw1(47.62));
    			System.out.println(ac.withdraw1(400.00));
    			System.out.println("Customer [ "+cu.getFirstName()+","+cu.getLastNam()+" ] has a balance of "+cu.getBalance());
    			
    			
    			System.out.println("第四问-------------------");
    			Bank ban=new Bank();
    			
    			
    			ban.addCustomer("Simms","Jane");
    			ban.addCustomer("Bryant","Owen");
    			ban.addCustomer("Soley","Tim");
    			ban.addCustomer("Soley","Maria");
    			
    			for(int i=0;i<ban.getNumOfCustomers();i++){
    	            System.out.println("Customer "+(i+1)+" is"+" "+ban.getCustomer(i));
    	        }    
    	        System.out.println("当前客户数量="+ban.getNumOfCustomers());
    
    			
    			
    			//System.out.print(cu1.toString());
    //			System.out.println("迭代器:");
    //			Iterator<Customer> it=cu1.iterator();
    //		
    //			while(it.hasNext())
    //			{
    //				Customer c=it.next();
    //				System.out.println(c);
    //			}
    //			
    			
    			
    	}
    
    }
    

      

  • 相关阅读:
    Plugin with id 'com.android.application' not found.
    android studio ,Gradle DSL method not found: 'compile()'
    eclipse 插件未安装成功定位
    [转]jquery $(document).ready() 与window.onload的区别
    emmet
    前端
    qunit.js初试
    jquery-mockjax初试
    来自工程师的8项Web性能提升建议
    css 中两个class之间没有空格与有空格有什么区别
  • 原文地址:https://www.cnblogs.com/liuyanzeng/p/5906366.html
Copyright © 2011-2022 走看看