Java项目练习--上

news2024/9/24 3:21:16

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

目的:Java语言中面向对象的封装及构造器的创建与使用

说明:创建Account类,将源文件放入banking程序包中。在创建单个账户的默认程序包中,已经编写了测试程序TestBanking,这个测试程序初始化账户余额,并可执行简单的事物处理。最后,能显示该账户的最终余额。

提示

  1. 创建banking包

  2. 在banking包下创建Account

    a.声明私有属性:balance(当前账户余额)

    b.声明一个带参数(init_balance)的公有构造器,这个参数为balance属性赋值

    c.声明公有方法:getBablance(获取余额) deposit(向余额增加金额) withdraw(向余额减去金额))

  3. 编写TestBanking.java文件

任务二:扩展(添加Customer类,此类中包含对象Account)

目的:使用引用类型的成员变量
提示

  1. 在banking包下创建Customer

    a.声明私有对象属性:firstName,lastName,account (分别表示名与性)
    b.声明一个带两个参数(代表对象属性的参数f和l)的公有构造器
    c.声明方法getFirstName(获取属性),getLastName(获取属性),setAccount(给account属性赋值),getAccount(获取account属性))

  2. 编写TestBanking.java文件

任务三:修改withdraw方法返回布尔值,表达交易是否成功。

目的:有返回值的方法
提示:修改Account

  • 修改withdraw方法,取款金额大于余额,返回false;反之返回true
  • 存款成功返回true

任务四:用数组实现银行与客户间的多重关系

目的:在类中使用数组作为模拟集合操作
提示:添加银行类Bank类,Bank对象跟踪自身与其客户的关系。用Customer对象的数组实现这个集合化的关系。还要保持一个整数属性来跟踪银行当前有多少客户

  • a.创建Bank
  • b.为Bank类增加属性customers(Customer对象的数组)和numberOfCustomers(整数,跟踪下一个customers数组索引)
  • c.添加公有构造器,以合适的最大尺寸初始化customer数组
  • d.添加addCustomer方法(参照参数(姓,名)构造新的Customer对象,把它放入customer数组中,并且numberOfCustomers+1
  • e.添加getNumberOfCustomers方法(获取属性的值)getCustomers方法(返回index相关客户))

在这里插入图片描述

任务五:在项目中创建Account的两个子类:SavingAccount和CheckingAccount

目的:继承,多态,方法的重写
提示

  1. 修改Account类的属性balanceprotected
  2. 创建SavingAccount类,继承Account
  3. SavingAccount类有double类型的interestRate属性
  4. SavingAccount类有带两个参数(balanceinterest_rate)的公有构造器。该构造器必须调用super(balance)balance参数传递给父类构造器
  5. CheckingAccount类必须扩展Account
  6. CheckingAccount类有double类型的overdraftProtection属性
  7. CheckingAccount类有带一个参数(balance)的公有构造器。该构造器必须调用super(balance)balance参数传递给父类构造器
  8. CheckingAccount类有带两个参数(balanceprotect)的公有构造器。该构造器必须调用super(balance)并设置overdraftProtection属性,将balance参数传递给父类构造器
  9. CheckingAccount类必须覆盖withdraw方法(余额充足,正常进行取款;余额不充足,就用overdraftProtection值来弥补该差值)

任务六:创建客户账户

目的instanceof运算符的使用
提示

  1. 修改Customer类来处理具有多种类型的联合账户(如用数组表示多重性,该类必须包括以下公有方法:addAccount(Account),getAccount(int),getNumOfAccounts().每个Customer可以有多个Account.(声明至少5个))
  2. 测试:该程序创建一个客户和账户的集合,并生成这些客户及其账户余额的报告。
  3. 使用instanceof运算符测试拥有的账户类型,并且将account_type设置为适当值,如CheckingAccountSavingAccount

相关参考答案在相关资源里
感谢大家的支持,关注,评论,点赞!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/854813.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

list模拟实现【引入反向迭代器】

文章目录 1.适配器1.1传统意义上的适配器1.2语言里的适配器1.3理解 2.list模拟实现【注意看反向迭代器】2.1 list_frame.h2.2riterator.h2.3list.h2.4 vector.h2.5test.cpp 3.反向迭代器的应用1.使用要求2.迭代器的分类 1.适配器 1.1传统意义上的适配器 1.2语言里的适配器 容…

nginx负载均衡(反向代理)

nginx负载均衡 负载均衡:由反向代理来实现。 nginx的七层代理和四层代理: 七层是最常用的反向代理方式,只能配置在nginx配置文件的http模块当中,而且配置方法名称:upstream模块,不能写在server模块中&#…

人工智能行业岗位一览

人工智能行业的岗位薪资高、待遇好、涨薪快已经是公开的事实,那么在人工智能行业中具体有哪些职业岗位呢?对于普通人来说,想要入行人工智能又有哪些机会呢? 下面是人工智能领域中的一部分职业岗位,随着技术的不断发展&…

【计算机视觉|生成对抗】生成对抗网络(GAN)

本系列博文为深度学习/计算机视觉论文笔记,转载请注明出处 标题:Generative Adversarial Nets 链接:Generative Adversarial Nets (nips.cc) 摘要 我们提出了一个通过**对抗(adversarial)**过程估计生成模型的新框架…

基于springboot线上礼品商城

博主主页:猫头鹰源码 博主简介:Java领域优质创作者、CSDN博客专家、公司架构师、全网粉丝5万、专注Java技术领域和毕业设计项目实战 主要内容:毕业设计(Javaweb项目|小程序等)、简历模板、学习资料、面试题库、技术咨询 文末联系获取 项目介绍…

详细介绍渗透测试与漏洞扫描

一、概念 渗透测试: 渗透测试并没有一个标准的定义,国外一些安全组织达成共识的通用说法;通过模拟恶意黑客的攻击方法,来评估计算机网络系统安全的一种评估方法。这个过程包括对系统的任何弱点、技术缺陷或漏洞的主动的主动分析…

STM32基于CubeIDE和HAL库 基础入门学习笔记:功能驱动与应用

文章目录: 一:LED与按键驱动程序 main.c 1.闪灯 led.h led.c 2.按键控制LED亮灭 key.h key.c 二:蜂鸣器与继电器驱动程序 main.c 1.蜂鸣器 buzzer.h buzzer.c delay.h delay.c 2.继电器 relay.h relay.c 三&#xff1…

STM32定时器级联功能

参考:官方文档《stm32f4xx参考手册.pdf》 级联功能,可以把两个定时器的功能关联起来,具体有以下几种: 本文只讲其中一个功能,定时器1给定时器2当分频器。这种功能可以把两个32位定时器,合并为为一个64位定…

运行 Spring Boot 有哪几种方式?

目录 一、打包用命令或者放到容器中运行 二、用 Maven 插件运行 三、用 Gradle 插件运行 四、直接执行 main 方法运行 一、打包用命令或者放到容器中运行 通过打包和放到容器中运行SpringBoot项目有以下几种方式: 打包为Jar文件: 使用Maven或Gradl…

安装CUDA与CUDNN与Pytorch(最新超级详细图文版本2023年8月最新)

一、安装CUDA 1.1、下载安装包 cuda可以认为就是Nvidia为了显卡炼丹搞的一个软件,其下载地址为:CUDA Toolkit 12.2 Update 1 Downloads | NVIDIA Developer 当你点进这个链接的时候,你需要依次选择 1是选择系统,这里选windows…

【学习日记】【FreeRTOS】任务句柄、任务控制块TCB、任务栈、任务、就绪表详解

写在前面 本文是对FreeRTOS中任务句柄、任务控制块TCB、任务栈、任务、就绪表详解。 一、裸机和RTOS中函数存储位置详解 左图为裸机开发时 RAM 的使用情况,右图是使用了 FreeRTOS 后 RAM 的使用情况(图片来自野火)。 无论是裸机开发还是Fr…

每天一道leetcode:剑指 Offer 26. 树的子结构(中等递归BFS广度优先遍历树)

今日份题目: 输入两棵二叉树A和B,判断B是不是A的子结构。(约定空树不是任意一个树的子结构) B是A的子结构, 即A中有出现和B相同的结构和节点值。 例如: 给定的树 A: 3 ​/ \ ​4 5 ​/ \ ​1 2 给定的树 B: 4 ​/ ​1 返…

[Axios]在Axios中,怎么实现监听上传数据进度、监听接口返回数据进、如何终止网络请求。实现上传文件实时进度条以及下载文件实时进度条。

1. Axios的本质 Axios的本质是XHR的promise封装,所以XHR的一些函数对它也同样适用。2. 如何监听上传数据的实时进度 // 涉及函数onUploadProgress // 形参: event // 函数作用:请求接口上传的过程中会不停的调用onUploadProgress函数 axiox({url: api/…

自然语言处理: 第七章GPT的搭建

理论基础 在以transformer架构为框架的大模型遍地开花后,大模型的方向基本分成了三类分别是: decoder-only架构 , 其中以GPT系列为代表encoder-only架构,其中以BERT系列为代表encoder-decoder架构,标准的transformer架构以BART和T5为代表 大…

spring 面试题

一、Spring面试题 专题部分 1.1、什么是spring? Spring是一个轻量级Java开发框架,最早有Rod Johnson创建,目的是为了解决企业级应用开发的业务逻辑层和其他各层的耦合问题。它是一个分层的JavaSE/JavaEE full-stack(一站式)轻量…

计算机视觉一 —— 介绍与环境安装

傲不可长 欲不可纵 乐不可极 志不可满 一、介绍 研究理论和应用 - 研究如何使机器“看”的科学 - 让计算机具有人类视觉的所有功能 - 让计算机从图像中,提取有用的信息,并解释 - 重构人眼;重构视觉皮层;重构大脑剩余部分 计…

RabbitMQ 发布确认机制

发布确认模式是避免消息由生产者到RabbitMQ消息丢失的一种手段 发布确认模式 原理说明实现方式开启confirm(确认)模式阻塞确认异步确认 总结 原理说明 生产者通过调用channel.confirmSelect方法将信道设置为confirm模式,之后RabbitMQ会返回Co…

使用postman做接口测试

1.接口测试:针对软件对外提供服务的接口的输入输出进行测试,以及接口间相互逻辑的测试,验证接口功能与接口描述文档的一致性 2.接口测试流程: 1)获取接口信息:通过接口文档或抓包来获取接口的基本调用方式和…

【脚踢数据结构】内核链表

(꒪ꇴ꒪ ),Hello我是祐言QAQ我的博客主页:C/C语言,Linux基础,ARM开发板,软件配置等领域博主🌍快上🚘,一起学习,让我们成为一个强大的攻城狮!送给自己和读者的一句鸡汤🤔&…

【iOS安全】开启任意app的WebView远程调试

参考:https://mp.weixin.qq.com/s/bNKxQaVrPaXsZ5BPbsXy7w (来自周智老师的公众号) 概述 Safari 有一个内置的前端调试器, 在iPhone通过局域网或者USB连接MacBook 并启用Safari 远程调试之后,前端调试器默认情况下对…