创建一个简单的银行程序包.........未完善,待续

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、lastName和account。

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

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

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);
//			}
//			

	}

}

  

时间: 2024-10-05 04:09:30

创建一个简单的银行程序包.........未完善,待续的相关文章

创建一个简单的银行程序包

创建一个简单的银行程序包   练习目标-Java 语言中面向对象的封装性及构造器的使用. 任务 在这个练习里,创建一个简单版本的(账户类)Account类.将这个源文件放入banking程序包中.在创建单个帐户的默认程序包中,已编写了一个测试程序TestBanking.这个测试程序初始化帐户余额,并可执行几种简单的事物处理.最后,该测试程序显示该帐户的最终余额. 1. 创建banking 包 2. 在banking 包下创建Account类.该类必须实现上述UML框图中的模型. 声明一个私有对象

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

package banking; public class Account { private double balance; public Account(double balance) { this.balance=balance; } public double getBalance() { System.out.println("当前余额为:"+balance+"元"); return balance; } public double deposit(dou

如何利用CEF3创建一个简单的应用程序 (Windows Platform)

1. 说明 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,引用的是1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 2. 开始 首先,根据自身所使用的开发平台,可以去 这里 下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在

如何利用CEF3创建一个简单的应用程序

说明: 这篇文章主要讲述如何利用CEF3来创建一个简单的应用程序,它参考了1535及以上版本中包含的 Cefsimple 项目例子.如果想知道关于CEF3更多的使用方法,可以去访问 GeneralUsage. 开始: 首先,根据自身所使用的开发平台,可以去这里下载对应的发布版本.针对这个教程,我们需要下载1750或者更新的版本.当前支持的平台有Windows, Linux和Mac OS X.每一个版本都包含了当在特定平台上编译特定版本CEF3时所需要的所有文件和资源.您可以通过包含在里边的 RE

创建一个简单的WCF程序

WCF的服务不能孤立地存在,需要寄宿于一个运行着的进程中,我们把承载WCF服务的进程称为宿主,为服务指定宿主的过程称为服务寄宿(Service Hosting).在我们的计算服务应用中,采用了两种服务寄宿方式:通过自我寄宿(Self-Hosting)的方式创建一个控制台应用作为服务的宿主(寄宿进程为Hosting.exe):通过IIS寄宿方式将服务寄宿于IIS中(寄宿进程为IIS的工作进行W3wp.exe).客户端通过另一个控制台应用模拟(进程为Client.exe).接下来,我们就一步一步来构

一个简单的Java程序

一个.NET技术还是很菜的水平的猿人现在要去学习Java不知道是坏是好,无从得知啊! 不过在网上看了好多Java方面的简单例子,感觉Java还是蛮不错的么!不管以后怎么样啦,先开始自己的Java菜鸟之旅吧! 建立一个Java项目,建立一个属于自己的包,然后就开始自己的Java之旅... 创建的时候勾上这个生成main方法的选项,这个好像类似与我们.Net程序里控制台程序有木有.... 创建完成后就是这么一个样子,可以看到我们的包,还有给我们创建好自己的类,并且带了一个静态的main方法咋看就像.

《Entity Framework 6 Recipes》翻译系列 (3) -----第二章 实体数据建模基础之创建一个简单的模型 (转)

第二章 实体数据建模基础 很有可能,你才开始探索实体框架,你可能会问“我们怎么开始?”,如果你真是这样的话,那么本章就是一个很好的开始.如果不是,你已经建模,并在实体分裂和继承方面感觉良好,那么你可以跳过本章. 本章将带你漫游使用实体框架建模的基本实例,建模是实体框架的核心特性,同时也是区别实体框架和微软早期的数据访问平台的特性.一旦建好模,你就可以面向模型编写代码,而不用面向关系数据库中的行和列. 本章以创建一个简单概念模型的实例开始,然后让实体框架创建底层的数据库,剩下的实例,将向你展示,如

Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目

原文:Windows 8.1 应用再出发 (WinJS) - 创建一个简单项目 前面几篇我们介绍了如何利用 C# + XAML 完成Windows Store App 功能的实现,接下来的几篇我们来看看如何利用 Html + WinJS 来完成这些功能. 本篇我们使用WinJS 来创建一个简单的项目,来看看项目的构成是怎样的,与C#,XAML 的项目有哪些异同. 首先我们在Visual Studio 2013中选择模板 -> JavaScript -> Windows 应用商店来创建一个空白应

创建一个简单的 MDM 服务器(1)

前提:已获得 APNS 证书 ,已完成 MDM 配置描述文件的制作.请参考< MDM 证书申请流程 >一文和<配置MDM Provisioning Profile>. 环境:OSX 10.9.2,JDK 1.6,Eclipse JavaEE Helois,Tomcat 7.0 一.前言 <THE IOS MDMPROTOCOL>(即Inside Apple MDM)一文中描述了一个简单 MDM Server Python 实现(server.py).笔者也曾参照此文配置