实验六:类的封装

一、实验代码如下:

  1 package 实验6;
  2 
  3 import java.util.Scanner;
  4 
  5 
  6 public class Account {
  7     
  8     public int id;
  9     public String name;
 10     public long number;
 11     public long time;
 12     public int money;
 13     
 14     //方法Account(),创建账户的账号、姓名和余额等
 15     public Account(int id, String name, long number,long time, int money) {
 16         
 17         this.id = id;
 18         this.name = name;
 19         this.number = number;
 20         this.time = time;
 21         this.money = money;
 22     }
 23     
 24 
 25 
 26     //方法Display(),显示账户的账号、姓名和余额信息
 27     public void Display(){
 28         System.out.println("账户:" + id);
 29         System.out.println("姓名:" + name);
 30         System.out.println("身份证号:" + number);
 31         System.out.println("开户时间" + time);
 32         System.out.println("余额:" + money);
 33     }
 34     
 35     /*取款方法 takeMoney(),先让用户验证去除金额是否小于余额,
 36     取款成功后余额减除相应的金额*/
 37     public void takeMoney(){
 38         
 39         Scanner sc = new Scanner(System.in);
 40             System.out.println("请输入需要取款的金额:");
 41             int withdrawals = sc.nextInt();
 42             if(withdrawals <= money) {
 43             money= money-withdrawals;
 44             System.out.println("账户余额:" + money);
 45             }
 46             else {
 47             System.out.println("当前余额不足!");
 48             }
 49         }
 50     
 51     
 52     /*存款方法 saveMoney(int moneys),
 53     存款是直接传入存款金额,账户余额增加相应的金额*/
 54     public void saveMoney(int inmoney){    
 55         money = money + inmoney;
 56         System.out.println("此次存款为:" + inmoney);
 57         System.out.println("账户余额:" + money);
 58     }
 59     /*销户方法 finalize(),
 60      利用析构函数,释放内存空间*/
 61     protected void finalize()
 62      {
 63         
 64         System.out.println("Destructor called!");
 65      }
 66     
 67     public static void main(String[] args) {
 68         Account acc = new Account(10000,"张灿",123456,20190413,100000);
 69         /*
 70         acc.id = 10000;
 71         acc.name = "小明";        
 72         acc.number = 123456;
 73         acc.time=20190413;
 74         acc.money = 100000;
 75         */
 76         Scanner sc = new Scanner(System.in);
 77             while(true) {
 78             System.out.println("---欢迎进入银行账户操作系统---");
 79             System.out.println("---------1银行账户信息--------");
 80             System.out.println("---------2取款操作------------");
 81             System.out.println("---------3存款操作------------");
 82             System.out.println("---------4销户操作------------");
 83             System.out.println("---------5退出系统------------");
 84             System.out.println("------------------------------");
 85             int choice = sc.nextInt();
 86             switch(choice) {
 87             case 1:
 88                 System.out.println("---银行账户信息---");
 89                 acc.Display();
 90                 break;
 91             case 2:
 92                 System.out.println("---取款操作---");
 93                 acc.takeMoney();
 94                 break;
 95             case 3:
 96                 System.out.println("---存款操作---");
 97                 acc.saveMoney(1000);
 98                 break;
 99             case 4:
100                 System.out.println("---销户操作---");
101                 acc.finalize();
102                 break;
103             case 5:
104                 System.exit(0);
105                 break;
106             default:
107                 System.out.println("您的选择有误!");
108                 break;
109             }
110         }
111     }
112 }

二、实验结果:

---欢迎进入银行账户操作系统---
---------1银行账户信息--------
---------2取款操作------------
---------3存款操作------------
---------4销户操作------------
---------5退出系统------------
------------------------------
1
---银行账户信息---
账户:10000
姓名:张灿
身份证号:123456
开户时间20190413
余额:100000
---欢迎进入银行账户操作系统---
---------1银行账户信息--------
---------2取款操作------------
---------3存款操作------------
---------4销户操作------------
---------5退出系统------------
------------------------------
2
---取款操作---
请输入需要取款的金额:
5000
账户余额:95000
---欢迎进入银行账户操作系统---
---------1银行账户信息--------
---------2取款操作------------
---------3存款操作------------
---------4销户操作------------
---------5退出系统------------
------------------------------
3
---存款操作---
请输入需要存款的金额:
10000
账户余额:105000
---欢迎进入银行账户操作系统---
---------1银行账户信息--------
---------2取款操作------------
---------3存款操作------------
---------4销户操作------------
---------5退出系统------------
------------------------------
4
---销户操作---
Destructor called!
---欢迎进入银行账户操作系统---
---------1银行账户信息--------
---------2取款操作------------
---------3存款操作------------
---------4销户操作------------
---------5退出系统------------
------------------------------
5

三、实验心得:

1.Java中类的封装是面向对象的核心特性,是信息隐蔽思想的具体实现技术,感觉和C++中类的封装有很多相似的地方。

2.此程序还应考虑到存的钱大于零,账户里的钱大于取的钱。 

转载于:https://www.cnblogs.com/itsRes/p/10702340.html

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

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

相关文章

Teams Bot开发系列:初识Bot

上次我们讲了Teams Bot开发的概述&#xff0c;讲了Azure Bot Service&#xff0c;Bot Framework SDK和我们自己的bot服务的概念&#xff0c;这篇文章就带大家看看Azure Bot Service和我们的bot是如何发生关系的。 我们自己开发的bot服务实际上就是一个api service&#xff0c;…

[环境搭建]SDN网络感知服务与最短路径应用

1.安装python模块networkxpip install networkx2.给Network_Awareness.py加修改权限chmod 777 Network_Awareness.py3.下载安装ryugit clone git://github.com/osrg/ryu.gitcd ryu sudo python ./setup.py install#若已安装ryu,删了再装&#xff0c; pip uninstall ryu4.修改“…

我需要别人承认才快乐吗?

关于生命的感悟两个故事第一个故事&#xff0c;一个尖子生考上了麻省理工学院&#xff0c;在那里所有同学都很优秀&#xff0c;竞争非常强烈&#xff0c;她发现再也不能出类拔萃&#xff0c;在各方面赢过别人&#xff0c;于是觉得生活看不到希望&#xff0c;郁郁寡欢&#xff0…

Teams Bot开发系列:Activity和Turn

这篇文章我们来说一下Activity和Turn这两个bot framework中最重要的两个概念&#xff0c;同时也介绍一下TurnContext和BotAdapter Activity 一个activity是聊天双方的一个信息载体&#xff0c;它可以是一条消息&#xff0c;也可以是一个动作。比如用户给bot发送一条文字消息&…

ubuntu16.04下安装opencv出现libgtk2.0-dev配置失败问题解决方法

第一次在ubuntu下安装opencv&#xff0c;遇到很多问题&#xff0c;特别是libgtk2.0-dev总是配置失败的问题&#xff0c;在网上也看到一些解决方法&#xff0c;自己也遇到一些比较奇葩的问题&#xff0c;故整理于此。 网上大部分的解决方案就是更改下载源&#xff0c;我看到一些…

03|模型I/O:输入提示、调用模型、解析输出

03&#xff5c;模型I/O&#xff1a;输入提示、调用模型、解析输出 从这节课开始&#xff0c;我们将对 LangChain 中的六大核心组件一一进行详细的剖析。 模型&#xff0c;位于 LangChain 框架的最底层&#xff0c;它是基于语言模型构建的应用的核心元素&#xff0c;因为所谓 …

selenuim自动化爬取汽车在线谷米爱车网车辆GPS数据爬虫

#为了实时获取车辆信息&#xff0c;以及为了后面进行行使轨迹绘图&#xff0c;写了一个基于selelnium的爬虫爬取了车辆gps数据。 #在这里发现selenium可以很好的实现网页解析和处理js处理 #导包 import timefrom selenium import webdriverfrom selenium.webdriver.support.wai…

Teams Bot开发系列:Activity处理流程

上篇文章介绍了什么是Activity&#xff0c;Turn&#xff0c;TurnContext和BotAdapter&#xff0c;这篇文章我们看看这些东西是如何窜起来的&#xff0c;他们是如何处理用户发给bot的消息的。 我们以一个最简单的bot&#xff0c;echo bot为例子&#xff0c;所谓的echo bot就是用…

写单元测试的好处(转)

许多开发者都有个习惯&#xff0c;常常不乐意去写个简单的单元测试程序来验证自己的代码。对自己的程序一直非常有自信&#xff0c;或存在侥幸心理每次运行通过后就直接扔给测试组测试了。然而每次测试组的BUG提交过来后就会发现自己的程序还存在许多没有想到的漏洞。但是每次修…

linux下搭建go环境--问题记录

记录自己在linux上搭建go环境的经历。&#xff08;因为各种版本&#xff0c;linux系统问题挣扎了几天&#xff09; 安装vmware-tools,把我要运行代码拷进来。这个网上方法很多&#xff0c;我的电脑抽风不能安装&#xff0c;后面重装的虚拟机确定Ubuntu版本、位数。很重要&#…

Teams Bot开发系列:Teams的Activity处理

上一篇文章讲了activity处理的流程&#xff0c;我们bot的核心处理逻辑放在ActivityHandler的子类里&#xff0c;通过重载OnMessageActivityAsync()方法来实现。 这篇文章我来讲一下对于Teams的bot来说&#xff0c;整个处理的逻辑会有哪些不同点。 通过之前的文章&#xff0c;…

取球博弈

两个人玩取球的游戏。一共有N个球&#xff0c;每人轮流取球&#xff0c;每次可取集合{n1,n2,n3}中的任何一个数目。 如果无法继续取球&#xff0c;则游戏结束。 此时&#xff0c;持有奇数个球的一方获胜。 如果两人都是奇数&#xff0c;则为平局。 假设双方都采用最聪明的取法…

MySQL修改字符集

MySQL数据库修改字符集,介绍一下修改的方法 1&#xff09;系统工具iconv #file filename #mysqldump --default-character-setutf8 >20180523xxx.sql #file 20180523xxx.sql #iconv -t utf8mb4 -c 20180523xxx.sql>20180523xxxutf8mb4.sql #file 20180523xxxutf8mb4.sql…

Teams Bot开发系列:Bot验证

我们今天来说一下authentication&#xff0c;authentication一直是一个复杂的问题。bot里的authentication也不简单。我们先来看一个概念&#xff1a;Bot Framework Token Service&#xff0c;根据官方定义&#xff0c;这个token service主要是&#xff1a; Facilitating the u…

堆排序

目录 一、定义二、算法分析三、代码地址一、定义 1.1 堆 ​ 此处的堆&#xff0c;指数据结构中的堆。而不是内存中的那种内存堆&#xff0c;内存堆是基于数据结构的一种实现。堆的数据结构是一棵完全二叉树&#xff0c;它有如下特点&#xff1a;&#xff08;具体参考下文链接&a…

Teams Bot开发系列:Middleware

middleware是目前一些framework比较流行的概念&#xff0c;通常一个开发框架需要提供一些可扩展可定制化的功能。所以middleware这种pattern就很实用。 熟悉asp.net core的开发可能第一个想到的就是asp.net core的middleware&#xff0c;如下图&#xff1a; 当一个http reques…

如何获取租户中所有的Team

大家在使用Graph API开发Teams App的时候&#xff0c;有时候会需要获取某个租户Tenant的所有team&#xff0c;在写这篇文章的时候Graph API并没有提供这么一个功能&#xff0c;没有一个类似于”GET /teams”的api。 在Micorsoft Graph官方文档的已知问题中&#xff0c;也提到了…

mysql常用快速查询修改操作

mysql常用快速查询修改操作 一、查找并修改非innodb引擎为innodb引擎 # 通用操作 mysql> select concat(alter table ,table_schema,.,table_name, engineinnodb;) from information_schema.tables where table_schema not in (information_schema,mysql,performance_schem…

ElasticSearch教程——自定义分词器(转学习使用)

一、分词器 Elasticsearch中&#xff0c;内置了很多分词器&#xff08;analyzers&#xff09;&#xff0c;例如standard&#xff08;标准分词器&#xff09;、english&#xff08;英文分词&#xff09;和chinese&#xff08;中文分词&#xff09;&#xff0c;默认是standard. s…

使用Azure Serverless来开发Teams App

Azure Function可以说比较早期的一个serverless服务&#xff0c;随着这些年云服务的大行其道&#xff0c;Serverless在概念越来越火&#xff0c;什么叫serverless&#xff1f; Serverless computing (or serverless for short), is an execution model where the cloud provide…