动手动脑

实验一:

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日的更多相关文章

  1. 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 ...

  2. 2015年8月18日,杨学明老师《技术部门的绩效管理提升(研讨会)》在中国科学院下属机构CNNIC成功举办!

    2015年8月18日,杨学明老师为中国网络新闻办公室直属央企中国互联网络中心(CNNIC)提供了一天的<技术部门的绩效管理提升(研讨会)>培训课程.杨学明老师分别从研发绩效管理概述.研发绩 ...

  3. 2016年11月18日 星期五 --出埃及记 Exodus 20:9

    2016年11月18日 星期五 --出埃及记 Exodus 20:9 Six days you shall labor and do all your work,六日要劳碌作你一切的工,

  4. 2016年10月18日 星期二 --出埃及记 Exodus 19:2

    2016年10月18日 星期二 --出埃及记 Exodus 19:2 After they set out from Rephidim, they entered the Desert of Sina ...

  5. 天津Uber优步司机奖励政策(1月18日~1月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  6. 长沙Uber优步司机奖励政策(1月18日~1月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  7. 西安Uber优步司机奖励政策(1月18日~1月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  8. 上海Uber优步司机奖励政策(1月18日~1月24日)

    滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...

  9. Git学习(二)(2015年11月18日)(2016年1月29日)

    2015年11月18日Git学习: .Shell 删除文件夹及其所有文件 rd/s/q 文件目录 ---------------当前为先创建本地Git库后与网上Git服务器关联------------ ...

随机推荐

  1. 【编程之美】用C语言实现状态机(实用)

    版权声明:本文为博主原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明. 本文链接:https://www.cnblogs.com/lihuidashen/p/115105 ...

  2. React-router总结

    版本 v3和v4有一些差距: https://blog.csdn.net/qq_35484341/article/details/80500237 以下的总结,都是基于V4的 官方文档:https:/ ...

  3. opencv边缘检测报错

    cnts = cv2.findContours(edged_image.copy(), cv2.RETR_LIST, cv2.CHAIN_APPROX_SIMPLE)cnts = cnts[0] if ...

  4. 初学FPGA图像处理,开发板选择建议

    我用的是ZYNQ7010的开发板,纯粹是入门学习,对于初学者,使用较多的xlinx入门级的开发板一般是zynq7000系列,淘宝上买的较好的是黑金和米联科,我买的就是黑金的,个人觉得教程很少,学习资料 ...

  5. Visual Studio Code编写C/C++代码常见问题

    我会把一些常见问题以及自己编写代码过程中遇到的问题以及解决方案放在这里,各位若是遇到的问题也可以在评论区留言. 一.头文件Error 不会影响编译运行,但会报Warm,如下图 解决方案是安装Inclu ...

  6. web性能优化实践

    一.SQL查询优化 1.循环中有多次查询sql,改为在循环外一次查询后再处理 2.循环多次插入,改为组装好数据后批量插入 3.梳理业务逻辑能一次查完的,绝不分多次查 4.索引用起来 5.分页查询 二. ...

  7. 基于 VMware 的超融合, 解析 vSAN 与 SmartX ZBS 的优劣差异

    在企业级IT领域从业多年,最近越来越多地听到圈内人谈论起超融合技术的种种好处.的确,超融合技术已越来越走向成熟,带来的价值也逐渐凸显.它可靠性高,资源消耗低,尤其是运维部署非常便捷.在企业基础架构领域 ...

  8. Http 协议简略

    用户在浏览器中输入一个网址并回车,浏览器会向服务器发送一个http请求,服务器端程序会接受这个请求,并对请求进行相应的处理,然后发送一个回应,浏览器收到回应,再把回应的内容显示到页面,这种请求—相应的 ...

  9. oracle 11g 下载安装 使用记录

    Oracle 11g 使用记录 1.下载oracle快捷安装版:   (1)下载连接:https://pan.baidu.com/s/1ClC0hQepmTw2lSJ2ODtL7g 无提取码 (2)去 ...

  10. 关于WebApi的跨域问题

    前端调用我后端接口时出现200,跨域问题 解决方案: 在webconfig中加入以下配置就OK了 <configuration> <system.webServer> < ...