實驗六:類的封裝

一、實驗代碼如下:

  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.pswp.cn/news/277946.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/277946.shtml
英文地址,請注明出處:http://en.pswp.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…