Java基础编程题(7.31)
2016-08-03 20:23
267 查看
目录
总结
第一道 支付问题
第二道 龟兔赛跑
实现代码设计和代码如下:
结果:
結果:
总结
第一道 支付问题
第二道 龟兔赛跑
目录
总结
这段时间由于上夜班没有生物钟调整过来,在加上自己比较懒,所以就没有写博客,前两天去上课做了几道编程题,由于没有按时完成,后来剩下的一道也由于我较懒所以没写,因此就把我写的两道题写出来吧!第一道 支付问题
利用面向对象的思想实现一套代码,要求一个APP支持微信支付,支付宝支付,银联支付,以后甚至更多的支付方式。支付通常包含鉴权(authorization)、支付订单生成(generateBill)、最后确认支付(pay)过程。
实现代码设计和代码如下:
//pay.java package com.Dinkben.pay; //编写一个接口,定义authorization,generateBill,pay方法 public interface Pay { public abstract void authorization(); public abstract void generateBill(); public abstract void payProcess(); }
//AliPay.java package com.Dinkben.pay; //支付宝支付 public class AliPay implements Pay { @Override public void authorization() { System.out.println("请授予支付宝支付权限"); } @Override public void generateBill() { System.out.println("已生成账单"); } @Override public void payProcess() { System.out.println("支付已确认"); } }
//UnionPay.java package com.Dinkben.pay; //银联支付 public class UnionPay implements Pay { @Override public void authorization() { System.out.println("请授予银联支付权限"); } @Override public void generateBill() { System.out.println("已生成账单"); } @Override public void payProcess() { System.out.println("支付已确认"); } }
//WechatPay.java package com.Dinkben.pay; //微信支付 public class WechatPay implements Pay { public void authorization() { System.out.println("请授予微信支付权限"); } @Override public void generateBill() { System.out.println("已生成账单"); } @Override public void payProcess() { System.out.println("支付已确认"); } }
//SelectPay.java package com.Dinkben.pay; //选择哪一种支付方式 import java.util.Scanner; public class SelectPay { public SelectPay() { System.out .println("Please enter you choise:Alipay,Unionpay or Wechatpay?"); Scanner scanner = new Scanner(System.in); String string = scanner.next(); switch (string) { case "Alipay": AliPay aliPay = new AliPay(); aliPay.authorization(); break; case "Unionpay": UnionPay unionPay=new UnionPay(); unionPay.authorization(); break; case "Wechatpay": WechatPay wechatPay=new WechatPay(); wechatPay.authorization(); break; default: break; } } }
//PayOnline.java package com.Dinkben.pay; //在线支付,选择其中一种方式 public class PayOnline { public static void main(String[] args) { SelectPay selectPay=new SelectPay(); } }
结果:
第二道 龟兔赛跑
龟兔赛跑的故事大家都听过,请采用线程的知识,编写代码作比较。 具体要求如下: 1、乌龟和兔子各自一个线程。 2、乌龟每步跑1厘米,兔子每步跳100厘米。 3、兔子每跑到第100步的时候,会休息0.001秒; 4、问:50000厘米比赛谁获胜?
//RabbitThread.java package com.Dinkben.Thread; public class RabbitThread extends Thread { int rab_step = 0; long startTime = System.currentTimeMillis(); private String str; private int journey; public RabbitThread(int journey) { this.journey = journey; } @Override public void run() { for (int i = 0; i < journey; i++) { journey = journey - 100; ++rab_step; if (rab_step % 100 == 0) { try { Thread.sleep(1); } catch (InterruptedException ex) { } } } str = "兔子总用时(毫秒):" + (System.currentTimeMillis() - startTime); System.out.println(str); } }
//TortoiseThread.java package com.Dinkben.Thread; public class TortoiseThread extends Thread{ long startTime = System.currentTimeMillis(); private String str; private int journey; public TortoiseThread(int journey) { this.journey = journey; } @Override public void run() { for (int i = 0; i <journey; i++) { } str = "乌龟总用时(毫秒 ):"+(System.currentTimeMillis()-startTime) ; System.out.println(str); } }
//ThreadTest.java package com.Dinkben.Thread; public class ThreadTest { public static void main(String[] args) { RabbitThread r=new RabbitThread(50000); TortoiseThread t=new TortoiseThread(50000); r.start(); t.start(); } }
結果:
相关文章推荐
- java面试题及答案(122道基础题,19道编程题)
- java基础面试题及编程题
- 零基础学Java语言(浙江大学) 第二周 编程题
- java基础经典编程题
- 20171223Java基础学习——编程题练习<黄金分割比>
- java基础50道编程题
- 零基础学习JAVA编程题——时间换算
- 零基础学习JAVA编程题—温度转换
- Java基础编程题
- java面试基础120题及答案(无编程题)
- Java基础编程题(API阶段测试)(答案)
- 网易云课堂-Java应用基础:入门篇-第1章编程题-1.温度转换(3分)
- 20171221Java基础学习——复利编程题练习
- 【编程题】Java基础测试四(10道)
- Java基础编程题(API阶段测试)
- Java基础编程题(2)
- 比较经典的java基础编程题代码...
- java面试常见的基础编程题(仅基础源码)
- JAVA基础编程题(1)
- java基础概念