1. 总结:
  2. customer.setAccount(account); //引用,日后的account 和 customer.getAccount()的结果始终一致

实验目的

  1. 扩展银行项目,添加一个 Customer 类。Customer 类将包含一个 Account 象。
  2.  
  3. 实验目的:
  4. 使用引用类型的成员变量。
  5.  
  6. 示:
  7. 1. banking包下的创建Customer类。该类必须实现上面的UML图表中的模 型。
  8.  
  9. a. 声明三个私有对象属性:firstNamelastName account
  10. b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f l
  11. c. 声明两个公有存取器来访问该对象属性,方法 getFirstName getLastName 回相应的属性。 d. 声明 setAccount 方法来对 account 属性赋值。
  12. e. 声明 getAccount 方法以获取 account 属性。
  13.  
  14. 2. 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

UML 结构图

工程组织结构:

代码编程:

1/Account.java

  1. package Banking_2;
  2.  
  3. public class Account {
  4. private double balance;//余额 ,uml前该变量是 '-'
  5. public Account(double init_balance){
  6. balance=init_balance;
  7. }
  8. public double getBalance() {
  9. return balance;
  10. }
  11. //存钱
  12. public void deposit(double amt){
  13. this.balance+=amt;
  14. }
  15. //取钱
  16. public void withdraw(double amt){
  17. this.balance-=amt;
  18. }
  19.  
  20. }

2/Customer.java

  1. package Banking_2;
  2.  
  3. public class Customer {
  4. private String firstName;
  5. private String lastName;
  6. private Account account;
  7. public Customer(String f,String l){
  8. this.firstName=f;
  9. this.lastName=l;
  10. }
  11. public String getFirstName() {
  12. return firstName;
  13. }
  14. public String getLastName() {
  15. return lastName;
  16. }
  17. public Account getAccount() {
  18. return account;
  19. }
  20. public void setAccount(Account account) {
  21. this.account = account;
  22. }
  23. }

3/新开一个package, 添加测试文件:TestBanking2.java

  1. package TestBanks;
  2. import Banking_2.*;
  3.  
  4. public class TestBanking2{
  5. public static void main(String[] args) {
  6. Customer customer=new Customer("Jane","Smith");
  7. Account account=new Account(500);
  8.  
  9. // Create an account that can has a 500.00 balance.
  10.  
  11. System.out.println ("Creating the customer Jane Smith.");
  12. System.out.println("Creating her account with a 500.00 balance.");
  13. customer.setAccount(account);
  14. //code
  15. System.out.println("Withdraw 150.00");
  16. customer.getAccount().withdraw(150);
  17. //code
  18. System.out.println("Deposit 22.50");
  19. customer.getAccount().deposit(22.5);
  20. //code
  21. System.out.println("Withdraw 47.62");
  22. customer.getAccount().withdraw(47.62);
  23. //code
  24. // Print out the final account balance
  25. System.out.println("Customer [" + customer.getLastName()
  26. + ", " + customer.getFirstName()
  27. + "] has a balance of " + account.getBalance());
  28. //等价于下面的写法
  29. /*
  30. System.out.println("Customer [" + customer.getLastName()
  31. + ", " + customer.getFirstName()
  32. + "] has a balance of " + customer.getAccount().getBalance());
  33.  
  34. */
  35. }
  36. }

运行结果:

【Java基础 项目实例 -- Bank项目2】Account 和 customer 对象的更多相关文章

  1. 【Java基础 项目实例--Bank项目5】Account 和 customer 对象等 继承、多态、方法的重写

    延续 Java基础 项目实例--Bank项目4 实验要求 实验题目 5: 在银行项目中创建 Account 的两个子类:SavingAccount 和 CheckingAccount 实验目的: 继承 ...

  2. 【Java 基础实例—Bank 项目1】

    (上图Wie任务要求的UML结构) Account.java 文件: package Banking_1; public class Account { private double balance; ...

  3. JAVA基础语法:函数(方法)、类和对象(转载)

    4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...

  4. 【Java 基础实验_Bank项目_06】单例模式(Static Bank) , 查询异常输出

    基于上一个实验Banking_5 ,代码先全部复制过来. 笔记心得: 1.SavingAccount() 需要两种构造方法,接受单个参数和两个的 2.Account 有两个类型 SavingAccou ...

  5. java基础部分小项目

    贪吃蛇项目 import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.even ...

  6. Java基础自学小项目

    实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...

  7. Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类

    final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...

  8. Java基础之一组有用的类——使用Scanner对象(TryScanner)

    控制台程序. java.util.Scanner类定义的对象使用正则表达式来扫描来自各种源的字符输入,并把输入显示为各种基本类型的一系列标记或者显示为字符串. 默认情况下,Scanner对象读取标记时 ...

  9. JAVA基础知识之JVM-——使用反射生成并操作对象

    Class对象可以获取类里的方法,由Method对象表示,调用Method的invoke可以执行对应的方法:可以获取构造器,由Constructor对象表示,调用Constructor对象的newIn ...

随机推荐

  1. 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关

    [Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...

  2. linux中sleep详解实例

    在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒:但是这个函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时 ...

  3. 快速查看表结构 SQL server查看表注释以及字段注释表结构字段说明

    DECLARE @tableName NVARCHAR(MAX);SET @tableName = N'UserIntegralExchange';   --表名!!! SELECT CASE WHE ...

  4. Spring Boot 创建动态定时任务

    1,日期格式转换 //定时任务格式转换public static String convertCronTime(Date jobDate){ //https://blog.csdn.net/qq_39 ...

  5. oracle分区表原理学习

    1.创建普通表 create table normal_shp(id number,day date,city_number number,note varchar2(100)) tablespace ...

  6. TypeScript 解构

    ⒈解构数组 最简单的解构莫过于数组的解构赋值了: let input = [1, 2]; let [first, second] = input; console.log(first); // out ...

  7. Oulipo POJ - 3461(kmp,求重叠匹配个数)

    Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...

  8. 星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)

    一.介绍星舟平台     1.星舟简介     2.网关kong的介绍     3.客户端         1).服务注册:Eureka         2).客户端负载均衡:Ribbon     4 ...

  9. Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)

    (1)原理: “NX Bit”的漏洞缓解:使某些内存区域不可执行,并使可执行区域不可写.示例:使数据,堆栈和堆段不可执行,而代码段不可写. 在NX bit打开的情况下,基于堆栈的缓冲区溢出的经典方法将 ...

  10. 简单使用setup.py来安装Python项目

    最近做个一个项目需要用到setup.py 这个构建工具来进行项目的便捷安装,把搜集到的一些资料加上个人理解整理成文章,如有错误的地方请各位大佬及时指出,小弟马上修改,下面正式进入setup.py的描述 ...