Java程序设计任务驱动式教程08章.ppt
《Java程序设计任务驱动式教程08章.ppt》由会员分享,可在线阅读,更多相关《Java程序设计任务驱动式教程08章.ppt(30页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、主编:孙修东、王永红高职高专规划示范教材 北京航空航天大学出版社目录任务一 搭建环境(构建Java集成开发环境)任务二 Java欢迎你(开发简单Java应用程序任务三 小试牛刀(学习Java语言基础)任务四 挑战选择(使用分支控制流程)任务五 游戏人生(使用循环控制流程)任务六 回归自然(创建、使用类和对象)任务七 3G时代的消息传递(定义和使用类方法)任务八 保护你的隐私(封装的使用)任务九 子承父业(继承和多态的使用)任务十 上帝万能之手(接口的使用)2 23030任务十一 用数组存储信息(使用数组)任务十二 使用字符串进行交流(使用字符串)任务十三 防患于未然(捕获并处理异常)任务十四
2、主动出击(抛出异常)任务十五 认识Java Applet(Applet入门)任务十六 丰富多彩的Applet(在Applet中播放声音和显示图像)任务十七 进入Windows世界(设计图形用户界面)任务十八 布局规划(使用布局管理器)任务十九 事件委托处理(如何处理事件)任务二十 选择之道(使用选择控件和选择事件)目录3 33030任务二十一 简明清晰的菜单(使用菜单和其他常用事件)任务二十二 访问数据(使用JDBC连接数据库)任务二十三 访问数据升级(数据库编程)任务二十四 文件管理(目录与文件管理)任务二十五 顺序进出之道(文件的顺序访问)任务二十六 随机进出之道(文件的随机访问)任务二十
3、七 JAVA的分身术(创建和启动线程)任务二十八 线程的生命周期与优先级(线程的状态与调度)任务二十九 基于连接的通信(Java中的套接字Socket)任务三十 基于无连接的通信(Java中的数据报编程)目录4 43030任务八 保护你的隐私(封装的使用)21知识目标知识目标能力目标能力目标为什么需要封装;对属性封装;用构造方法实现对象成员的初始化。方法重载;Java中的构造方法与实例方法区别;对构造方法进行重载。理解封装的概念;掌握private关键字;掌握构造方法;掌握方法重载。5 53030内容提要内容提要4跟我做:跟我做:银行卡类的封装银行卡类的封装 1235实现方案实现方案 代码分析
4、代码分析 必备知识必备知识 动手做一做动手做一做 6 630308.1 跟我做:银行卡类的封装 n任务情景任务情景银行卡类采用封装技术升级。每张银行卡信息包含年利率;账号、持卡人姓名、身份证号码、地址;交易金额、交易日期、余额。银行类能够存款、取款、查询、购物支付、禁止透支。根据持卡人不同操作,显示不同信息。当存款操作后,显示原有余额、本次存款数额及最终存款余额;当取款操作时,显示原有余额、今日取款数额及最终存款余额。n运行结果运行结果第1章目录7 73030n问题分析问题分析在任务七中学习过包,本任务中要使用它来进行Java程序中类的组织。把需要在一起工作的类放在同一包里,除了public
5、修饰的类能够被所有包中的类访问外,缺省修饰符的类只能被其所在包中的类访问,不能在其包外访问。包的这种组织方式,把对类的访问封锁在一定的范围,体现了Java面向对象的封装性。在本任务中,将类放在包com.task08中。包定义如下:package com.task08;在面向对象程序设计中,提出“强内聚、弱耦合”编程思想,即一个类的内部联系紧密,类与其他类之间的联系松散。在实现AccountCard银行卡类时,尽可能把类的成员声明为私有的private,只把一些少量的、必要的方法声明为公共的public,提供给外部使用。在AccountCard类中,属性的修饰符为private,对属性的访问只局
6、限于AccountCard类。需要在类外访问的属性有interest年利率、account账号、name持卡人姓名、id身份证号码、address地址,为此专门设置了相应的setter()方法、getter()方法。当在AccountCardTest类中访问这些属性时,使用相应的setter()方法和getter()方法。第1章目录8.2 实现方案 8 83030n解决步骤解决步骤1.打开Eclipse,在study项目中创建包com.task08,再确定类名AccountCard,得到类的框架。2.然后,在public class AccountCard下面一行输入类的属性描述:privat
7、e static double interest;/私有、静态private String account;3.接着,在AccountCard类中输入private属性的getter()和setter()方法的定义:public static double getInterest()/静态return interest;public static void setInterest(double interest)/静态AccountCard.interest=interest;public void setAccount(String account)this.account=account;
8、/this代表当前类的实例8.2 实现方案 9 930304.定义相应的功能方法:public void deposit(double cash)System.out.println(=存款=);/详细实现代码参见8.3public void withdraw(double cash)System.out.println(=取款=);/详细实现代码参见8.3public void query()System.out.println(=查询=);/详细实现代码参见8.3public void purchase(double payment)System.out.println(=购物=);/详细
9、实现代码参见8.35.定义AccountCardTest测试类,运行程序。对AccountCard类的private属性的访问只能通过相应的getter()和setter()方法进行。8.2 实现方案 10103030n程序代码程序代码package com.task08;import java.util.Date;/导入程序中用到的系统类/*AccountCard.java*银行卡的封装*/public class AccountCard/自定义AccountCard类/*年利率;账号、持卡人姓名、身份证号码、地址;交易金额、交易日期、余额*/private static double in
10、terest;/私有、静态private String account;/私有private String name;private String id;private String address;private double DWAmount;private Date DWDate;private double balance;/*getter()、setter()方法方法*/public static double getInterest()/静态getter()return interest;public static void setInterest(double interest)
11、/静态setter()AccountCard.interest=interest;public String getAccount()/getter()return account;public void setAccount(String account)/setter()this.account=account;/this代表当前类的实例public String getName()return name;public void setName(String name)this.name=name;public String getId()return id;public void set
12、Id(String id)this.id=id;public String getAddress()return address;public void setAddress(String address)this.address=address;/*存款、取款、查询;购物支付、禁止透支*/public void deposit(double cash)/类的存款行为(方法)第1章目录8.3 代码分析 111130308.3 代码分析 System.out.println(=存款=);System.out.println(您的卡号:+this.account);/this代表当前类的实例Sys
13、tem.out.println(您的姓名:+this.name);System.out.println(原有余额:+this.balance);System.out.println(现存入:+cash);this.DWAmount=cash;balance=this.balance+cash;/余额自动计算System.out.println(最终余额:+this.balance);this.DWDate=new Date();/记录当天的日期System.out.println(存款日期:+this.DWDate);public void withdraw(double cash)/类的取款
14、行为(方法)System.out.println(=取款=);System.out.println(您的卡号:+this.account);System.out.println(您的姓名:+this.name);System.out.println(原有余额:+this.balance);System.out.println(现取出:+cash);this.DWAmount=cash;if(this.balance-cash)0)/禁止透支this.balance=this.balance-cash;/余额自动计算System.out.println(最终余额:+this.balance);e
15、lseSystem.out.println(取出数额太大!请重新输入。);this.DWDate=new Date();/记录当天的日期System.out.println(取款日期:+this.DWDate);public void query()/类的查询行为(方法)System.out.println(=查询=);System.out.println(您的卡号:+this.account);System.out.println(您的姓名:+this.name);System.out.println(最终余额是:+this.balance);this.DWDate=new Date();/
16、记录当天的日期System.out.println(查询日期:+this.DWDate);public void purchase(double payment)/类的付款行为(方法)System.out.println(=购物=);System.out.println(您的卡号:+this.account);System.out.println(您的姓名:+this.name);System.out.println(原有余额:+this.balance);System.out.println(现付出:+payment);this.DWAmount=payment;if(this.balanc
17、e-payment)0)/禁止透支this.balance=this.balance-payment;/自动计算余额System.out.println(最终余额:+this.balance);elseSystem.out.println(没有足够的余额!);this.DWDate=new Date();/记录当天的日期System.out.println(付款日期:+this.DWDate);package com.task08;import java.util.Date;public class AccountCardTest/定义测试类/*param args*/public stati
18、c void main(String args)AccountCard.setInterest(0.03);/年利率System.out.println(年利率:+AccountCard.getInterest();/设置持卡人信息AccountCard wang=new AccountCard();wang.setAccount(1111111111);wang.setName(王朝);wang.setId(321020199809181215);wang.setAddress(持卡人地址);wang.deposit(1000.5);/存款wang.query();/查询wang.withd
19、raw(500);/取款wang.query();wang.purchase(300);/购物wang.query();第1章目录12123030n应用扩展应用扩展本任务有两个方面的应用扩展,一个是在AccountCard类中增加构造方法,升级后的类名改为AccountCard2,另一个是新建AccountCard2Menu类,类中增加菜单功能。测试类相应升级为AccountCard2Test。在AccountCard2类中增加代码如下:/*无参构造方法*/public AccountCard2()/初始化持卡人信息super();this.account=1111111110;this.na
20、me=王朝;this.id=321020199809181215;this.address=持卡人地址;this.balance=0;/*带参构造方法*/public AccountCard2(String account,String name,String id,String address,double balance)/初始化持卡人信息super();this.account=account;this.name=name;this.id=id;this.address=address;this.balance=balance;新建AccountCard2Menu类代码如下:packag
21、e com.task08;public class AccountCard2Menu/菜单类/*菜单*/public void menu()/菜单方法System.out.println(n欢迎使用银行ATM系统2.0版);System.out.println(t 1.存 款);System.out.println(t 2.取 款);System.out.println(t 3.购物付款);System.out.println(t 4.查 询);System.out.println(t 5.退 出);System.out.print(选择请输入数字1-5:);在AccountCard2Test
22、测试类中的代码修改如下:package com.task08;import java.util.Scanner;public class AccountCard2Test/测试类/*param args*/public static void main(String args)/程序入口方法/AccountCard2.setInterest(0.03);/年利率/System.out.println(年利率:+AccountCard2.getInterest();/通过构造方法初始化持卡人信息AccountCard2 wang=new AccountCard2();/创建类的对象int cho
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 程序设计 任务 驱动 教程 08
限制150内