Java11月18日
动手动脑
实验一:
1. 下边的程序运行结果是什么?
2.你如何解释会得到这样的输出?
3.计算机是不会出错的,之所以得到这样的运行结果也是有原因的那么从这些运行结果中,你能总结出Java的哪些语法特性?
程序源代码:
public class ParentChildTest {
public static void main(String[] args) {
Parent parent=new Parent();
parent.printValue();
Child child=new Child();
child.printValue();
parent=child;
parent.printValue();
parent.myValue++;
parent.printValue();
((Child)parent).myValue++;
parent.printValue();
}
}
class Parent{
public int myValue=100;
public void printValue() {
System.out.println("Parent.printValue(),myValue="+myValue);
}
}
class Child extends Parent{
public int myValue=200;
public void printValue() {
System.out.println("Child.printValue(),myValue="+myValue);
}
}
(1)实验结果运行图:
(2)这样结果输出的原因:
答:首先前两个分别引用各自的类的变量,所以分别是100和200没有什么异议,第三个把子类的赋值给父类了,所以输出结果为200,第四个因为只是改变了弗雷德变量值,没有改变子类的变量值,所以仍为200,而此时父类的为101。最后对子类进行强制转换,所以变量值也发生了改变为201.
(3)当子类与父类拥有一样的方法,并且让一个父类变量引用一个子类对象时,到底调用哪个方法,由对象自己的“真实”类型所决定,这就是说:对象是子类型的,它就调用子类型的方法,是父类型的,它就调用父类型的方法。
这个特性实际上就是面向对象“多态”特性的具体表现。
实验二:多态方法模拟ATM程序
//ATM
//zhanxinwu,November ,15,2016.
import java.util.Scanner;
abstract class QuKuan
{
abstract int qukuan();
}
class Account extends QuKuan
{
String ID;
String name;
String Date;
int operate;
String mima;
double yue;
Account()
{
ID="1234567891a";
mima="123456";
yue=0;
}
int qukuan()
{
int flag=0;
double qu=0;
System.out.println("欢迎选择取款:");
System.out.println("1 100");
System.out.println("2 500");
System.out.println("3 1000");
System.out.println("4 1500");
System.out.println("5 2000");
System.out.println("6 5000");
System.out.println("7 其他金额");
System.out.println("8 退卡");
System.out.println("9 返回上一界面");
System.out.print("请选取要取款的金额'操作数':");
Scanner scanner=new Scanner(System.in);
operate=scanner.nextInt();
while(operate<1||operate>9)
{
System.out.print("请重新选取要取款的金额‘操作数’:");
operate=scanner.nextInt();
}
switch(operate){
case 1:qu=100;
case 2:qu=500;
case 3:qu=1000;
case 4:qu=1500;
case 5:qu=2000;
case 6:qu=5000;
case 7:{System.out.print("请输入要取款的金额:");
qu=scanner.nextDouble();
if(yue<qu)
{
System.out.println("余额不足!");
}
else
{
yue-=qu;
System.out.println("取款成功,余额为:"+yue);
}
}
}
return flag;
}
void xiugaimima()
{
System.out.print("请输入要修改的取款账号所对应的密码:");
Scanner scanner=new Scanner(System.in);
String mi=scanner.next();
mima=mi;
System.out.println("修改后的取款账号所对应的密码为:"+mima);
}
void cunkuan()
{
System.out.print("请输入要存款的金额:");
Scanner scanner=new Scanner(System.in);
double yu=scanner.nextDouble();
yue+=yu;
System.out.println("存款成功,余额为:"+yue);
}
void chaxun()
{
System.out.println("余额为:"+yue);
}
void zhuanzhang()
{
System.out.print("请输入转入的行号:");
Scanner scanner=new Scanner(System.in);
String hang=scanner.next();
System.out.print("请输入要转账的金额:");
double yu=scanner.nextDouble();
if(yue<yu)
{
System.out.println("余额不足,请充值!!!");
}
else
{
yue-=yu;
System.out.println("转账成功,余额为:"+yue+",已转入到"+hang+"中"+yu+"元");
}
}
}
public class ATMduo
{
public static void main(String[] args)
{
int k;
Scanner scanner=new Scanner(System.in);
Account m=new Account();
while(true)
{
System.out.print("请输入密码:");
String n=scanner.next();
if(n.equals(m.mima))
{
while(true)
{
System.out.println("1 存款");
System.out.println("2 取款");
System.out.println("3 转账汇款");
System.out.println("4 修改密码");
System.out.println("5 查询余额");
System.out.println("6 退出系统");
System.out.print("请输入操作项:");
k=scanner.nextInt();
if(k==1) m.cunkuan();
if(k==2)
{
int g=m.qukuan();
if(g==1) break;
}
if(k==3) m.zhuanzhang();
if(k==4) m.xiugaimima();
if(k==5) m.chaxun();
if(k==6) break;
}
}
else System.out.println("该卡已被锁定,请联系银行工作人员!!!");
}
}
}
Java11月18日的更多相关文章
- 2016年12月18日 星期日 --出埃及记 Exodus 21:13
2016年12月18日 星期日 --出埃及记 Exodus 21:13 However, if he does not do it intentionally, but God lets it hap ...
- 2015年8月18日,杨学明老师《技术部门的绩效管理提升(研讨会)》在中国科学院下属机构CNNIC成功举办!
2015年8月18日,杨学明老师为中国网络新闻办公室直属央企中国互联网络中心(CNNIC)提供了一天的<技术部门的绩效管理提升(研讨会)>培训课程.杨学明老师分别从研发绩效管理概述.研发绩 ...
- 2016年11月18日 星期五 --出埃及记 Exodus 20:9
2016年11月18日 星期五 --出埃及记 Exodus 20:9 Six days you shall labor and do all your work,六日要劳碌作你一切的工,
- 2016年10月18日 星期二 --出埃及记 Exodus 19:2
2016年10月18日 星期二 --出埃及记 Exodus 19:2 After they set out from Rephidim, they entered the Desert of Sina ...
- 天津Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 长沙Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 西安Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- 上海Uber优步司机奖励政策(1月18日~1月24日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- Git学习(二)(2015年11月18日)(2016年1月29日)
2015年11月18日Git学习: .Shell 删除文件夹及其所有文件 rd/s/q 文件目录 ---------------当前为先创建本地Git库后与网上Git服务器关联------------ ...
随机推荐
- 【Offer】[62] 【圆圈中最后剩下的数字】
题目描述 思路分析 测试用例 Java代码 代码链接 题目描述 0,1,,n-1这n个数字排成一个圆圈,从数字0开始,每次从这个圆圈里删除第m个数字.求出这个圆圈里剩下的最后一个数字. 牛客网刷题地址 ...
- moco 入门及问题解决
废话不多说 下载: http://repo1.maven.org/maven2/com/github/dreamhead/moco-runner/ 选择最新版本下载jar包 启动: 1:在本地jar包 ...
- .net core 部署到windows上的方法与 系统中相关问题的解决
前言 Net core 项目部门在Windows有很多种方式,大致有以下几种, dotnet 命令, iis(windowshosts), 一些开源的应用容器(docker ) 基于一些exe 程序, ...
- Springboot集成swagger2生成接口文档
[转载请注明]: 原文出处:https://www.cnblogs.com/jstarseven/p/11509884.html 作者:jstarseven 码字挺辛苦的..... 一 ...
- 解锁HMC8及HMC9的root用户
某天需要用HMC的root用户干点“坏事”,发现找了一圈都没有正确的HMC v8及v9的root用户破解教程,然后自己研究了一下,发现可以用root用户了.本文测试用的HMC以VMware works ...
- 小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式:
小白学习VUE第一篇文章---如何看懂网上搜索到的VUE代码或文章---使用VUE的三种模式: 直接引用VUE; 将vue.js下载到本地后本目录下使用; 安装Node环境下使用; ant-desig ...
- C# 表达式树遍历(二)
一.前言 上一篇我们对表达式树有了初步的认识,这里我们将对表达式树进行遍历,只有弄清楚了他的运行原理,我们才可以对他进行定制化修改. 表达式系列目录 C# 表达式树讲解(一) C# 表达式树遍历(二) ...
- FreeSql (二十四)Linq To Sql 语法使用介绍
原本不支持 IQueryable 主要出于使用习惯的考虑,如果继承 IQueryable,编写代码的智能总会提示出现一堆你不想使用的方法(对不起,我有强迫症),IQueryable 自身提供了一堆没法 ...
- 【第二十二篇】从客户端中检测到有潜在危险的 Request.Form 值
提交数据的时候 用js的方法 escape(富文本框的值) 例:escape(UM.getEditor('Content').getContent()); 取值的时候 unescape ...
- hive 元数据解析
在使用Hive进行开发时,我们往往需要获得一个已存在hive表的建表语句(DDL),然而hive本身并没有提供这样一个工具. 要想还原建表DDL就必须从元数据入手,我们知道,hive的元数据并不存放在 ...