【Java基础 项目实例 -- Bank项目2】Account 和 customer 对象
- 总结:
- customer.setAccount(account); //引用,日后的account 和 customer.getAccount()的结果始终一致
实验目的
- 扩展银行项目,添加一个 Customer 类。Customer 类将包含一个 Account对 象。
- 实验目的:
- 使用引用类型的成员变量。
- 提 示:
- 1. 在banking包下的创建Customer类。该类必须实现上面的UML图表中的模 型。
- a. 声明三个私有对象属性:firstName、lastName 和 account。
- b. 声明一个公有构造器,这个构造器带有两个代表对象属性的参数(f 和 l)
- c. 声明两个公有存取器来访问该对象属性,方法 getFirstName 和 getLastName 返 回相应的属性。 d. 声明 setAccount 方法来对 account 属性赋值。
- e. 声明 getAccount 方法以获取 account 属性。
- 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
- package Banking_2;
- public class Account {
- private double balance;//余额 ,uml前该变量是 '-'
- public Account(double init_balance){
- balance=init_balance;
- }
- public double getBalance() {
- return balance;
- }
- //存钱
- public void deposit(double amt){
- this.balance+=amt;
- }
- //取钱
- public void withdraw(double amt){
- this.balance-=amt;
- }
- }
2/Customer.java
- package Banking_2;
- public class Customer {
- private String firstName;
- private String lastName;
- private Account account;
- public Customer(String f,String l){
- this.firstName=f;
- this.lastName=l;
- }
- public String getFirstName() {
- return firstName;
- }
- public String getLastName() {
- return lastName;
- }
- public Account getAccount() {
- return account;
- }
- public void setAccount(Account account) {
- this.account = account;
- }
- }
3/新开一个package, 添加测试文件:TestBanking2.java
- package TestBanks;
- import Banking_2.*;
- public class TestBanking2{
- public static void main(String[] args) {
- Customer customer=new Customer("Jane","Smith");
- Account account=new Account(500);
- // Create an account that can has a 500.00 balance.
- System.out.println ("Creating the customer Jane Smith.");
- System.out.println("Creating her account with a 500.00 balance.");
- customer.setAccount(account);
- //code
- System.out.println("Withdraw 150.00");
- customer.getAccount().withdraw(150);
- //code
- System.out.println("Deposit 22.50");
- customer.getAccount().deposit(22.5);
- //code
- System.out.println("Withdraw 47.62");
- customer.getAccount().withdraw(47.62);
- //code
- // Print out the final account balance
- System.out.println("Customer [" + customer.getLastName()
- + ", " + customer.getFirstName()
- + "] has a balance of " + account.getBalance());
- //等价于下面的写法
- /*
- System.out.println("Customer [" + customer.getLastName()
- + ", " + customer.getFirstName()
- + "] has a balance of " + customer.getAccount().getBalance());
- */
- }
- }
运行结果:
【Java基础 项目实例 -- Bank项目2】Account 和 customer 对象的更多相关文章
- 【Java基础 项目实例--Bank项目5】Account 和 customer 对象等 继承、多态、方法的重写
延续 Java基础 项目实例--Bank项目4 实验要求 实验题目 5: 在银行项目中创建 Account 的两个子类:SavingAccount 和 CheckingAccount 实验目的: 继承 ...
- 【Java 基础实例—Bank 项目1】
(上图Wie任务要求的UML结构) Account.java 文件: package Banking_1; public class Account { private double balance; ...
- JAVA基础语法:函数(方法)、类和对象(转载)
4.JAVA基础语法:函数(方法).类和对象 函数 在java中函数也称为方法,是一段具备某种功能的可重用代码块. 一个函数包括这几部分: 函数头 函数头包括函数访问修饰符,函数返回值类型, 函数名, ...
- 【Java 基础实验_Bank项目_06】单例模式(Static Bank) , 查询异常输出
基于上一个实验Banking_5 ,代码先全部复制过来. 笔记心得: 1.SavingAccount() 需要两种构造方法,接受单个参数和两个的 2.Account 有两个类型 SavingAccou ...
- java基础部分小项目
贪吃蛇项目 import java.awt.Color; import java.awt.Graphics; import java.awt.Toolkit; import java.awt.even ...
- Java基础自学小项目
实现一个基于文本界面的<家庭记账软件> 需求:能够记录家庭的收入,支出,并能够收支明细表 主要涉及一下知识点: - 局部变量和基本数据类型 - 循环语句 - 分支语句 - 方法调用和返回值 ...
- Java基础学习笔记十 Java基础语法之final、static、匿名对象、内部类
final关键字 继承的出现提高了代码的复用性,并方便开发.但随之也有问题,有些类在描述完之后,不想被继承,或者有些类中的部分方法功能是固定的,不想让子类重写.可是当子类继承了这些特殊类之后,就可以对 ...
- Java基础之一组有用的类——使用Scanner对象(TryScanner)
控制台程序. java.util.Scanner类定义的对象使用正则表达式来扫描来自各种源的字符输入,并把输入显示为各种基本类型的一系列标记或者显示为字符串. 默认情况下,Scanner对象读取标记时 ...
- JAVA基础知识之JVM-——使用反射生成并操作对象
Class对象可以获取类里的方法,由Method对象表示,调用Method的invoke可以执行对应的方法:可以获取构造器,由Constructor对象表示,调用Constructor对象的newIn ...
随机推荐
- 【Matlab开发】matlab中norm范数以及向量点积、绘图设置相关
[Matlab开发]matlab中norm范数以及向量点积.绘图设置相关 标签(空格分隔): [Matlab开发] 声明:引用请注明出处http://blog.csdn.net/lg125915677 ...
- linux中sleep详解实例
在linux编程中,有时候会用到定时功能,常见的是用sleep(time)函数来睡眠time秒:但是这个函数是可以被中断的,也就是说当进程在睡眠的过程中,如果被中断,那么当中断结束回来再执行该进程的时 ...
- 快速查看表结构 SQL server查看表注释以及字段注释表结构字段说明
DECLARE @tableName NVARCHAR(MAX);SET @tableName = N'UserIntegralExchange'; --表名!!! SELECT CASE WHE ...
- Spring Boot 创建动态定时任务
1,日期格式转换 //定时任务格式转换public static String convertCronTime(Date jobDate){ //https://blog.csdn.net/qq_39 ...
- oracle分区表原理学习
1.创建普通表 create table normal_shp(id number,day date,city_number number,note varchar2(100)) tablespace ...
- TypeScript 解构
⒈解构数组 最简单的解构莫过于数组的解构赋值了: let input = [1, 2]; let [first, second] = input; console.log(first); // out ...
- Oulipo POJ - 3461(kmp,求重叠匹配个数)
Problem Description The French author Georges Perec (1936–1982) once wrote a book, La disparition, w ...
- 星舟平台的使用(GIT、spring Boot 的使用以及swagger组件的使用)
一.介绍星舟平台 1.星舟简介 2.网关kong的介绍 3.客户端 1).服务注册:Eureka 2).客户端负载均衡:Ribbon 4 ...
- Linux (x86) Exploit 开发系列教程之四(使用return-to-libc绕过NX bit)
(1)原理: “NX Bit”的漏洞缓解:使某些内存区域不可执行,并使可执行区域不可写.示例:使数据,堆栈和堆段不可执行,而代码段不可写. 在NX bit打开的情况下,基于堆栈的缓冲区溢出的经典方法将 ...
- 简单使用setup.py来安装Python项目
最近做个一个项目需要用到setup.py 这个构建工具来进行项目的便捷安装,把搜集到的一些资料加上个人理解整理成文章,如有错误的地方请各位大佬及时指出,小弟马上修改,下面正式进入setup.py的描述 ...