从一个猜单词的小程序开始---征服OOP的思维方式01

记得刚开始学Java的时候看到MOOC上有个老师写了一个猜数字的游戏,出于兴趣,小风就写了一个猜单词的小游戏来描述

OOP编程的思维方式。PS:OOP(Object Oriented Programing,面向对象程序设计)可以理解为计算机编程的一种架构。

好了,不BB了。开始了!

首先我们按照常规的面向过程的思维方式来分析这个程序。仅仅定义Demo一个类,该类中存放所有的逻辑代码

由于便于理解,程序先成员的位置上定义两个字符串数组english和chinese。即一个用来存储英文单词,一个用来存储单词对应的中文意思。

注意顺序保持一致。

接着,通过Math类中的random方法获取一个范围在0到english长度之间的随机数i,然后将i作为索引,打印出english[i];并返回chinese[i].

将此部分代码封装成show方法。如下所示:

接下来需要实现用户通过键盘来输入一个字符串,在Java中的util包下有一个Scanner类,该类是JDK5.0之后新增的特性,用来实现用户从键盘输入信息。

这里我们便需要用到Scanner类。因此也要在程序的开头带入该类。同样这部分代码我们也将之封装成方法。

有了用户的输入,下一步自然就是将用户的输入和show方法返回的值进行比较了,这里有个代码优化的小技巧,自己慢慢体会。

好了,基本的过程似乎已经完成了!不过为了程序的体验,这里我将用户猜单词的结果显示单独封装成一个 方法

原因是:你想想,考试的时候你每做一道题就能够知道你的答案对不对么?所以我这里将用户猜的结果单独封装成一个方法,当需要做一个题就知道答案正不正确的情况下

调用就可以了。当要模拟考试的情况时,直接根据judge方法返回的布尔值记录分数即可,不调用该方法。

好了,程序到这里就基本已经完成了。剩下的就剩下我们的程序的入口main方法了。英语词性缩写在main里面创建Demo类的对象d。然后通过d去按顺序调用逻辑方法即可

代码如下:

嗯!程序已经完成了。下面就可以试试运行的结果了,下图是我运行的结果:

嗯,还行,程序能够正常的跑起。不过我想了想,觉得似乎有哪里不对啊。一般的开发中,main方法里含有大量的逻辑代码貌似并不理智吖。于是下面来尽行改进!

将主函数中大量的逻辑代码进行抽取,单独封装到一个成员方法中,接着直接在main方法中调用该方法即可。

看,这样main方法中就只有一行代码!这样是不是很完美!

好了,以上就是以面向过程的思维方式编写的整个猜单词的小程序,快去试试吧!

PS:由于用的Java本来就是一种OOP语言,上述代码的逻辑中其实也带有一丝OOP的思想

下一篇文章我将用面向对象的思维方式来用代码描述这个小程序。

原文地址:https://www.cnblogs.com/zhanglixina/p/9614480.html

时间: 2024-09-28 04:41:49

从一个猜单词的小程序开始---征服OOP的思维方式01的相关文章

聊聊程序员如何学习英语单词:写了一个记单词的小程序

背景: 关于英文对程序员的重要性,就不多说了! 英语的学习,有很多,今天也不聊多,只聊英语单词! 关于单词的记忆,找过很多方法,下载过很多软件. 如图(其它不好用的都卸载了): 上图算是我以前用过软件,注意,是以前哦~~~ 意思就是没有坚持下来~~~~ 随时间的推移,最后它们还是被我遗忘了~~~ 为什么???不能:坚持!坚持!坚持! 学习思考: 一直在找方法: 1:下载过联想记忆法.背文章记单词,词根,各种视频~~~ 2:连单词的数据库都网上下载了一份了,期望从数据库的直接记忆单词快些~~~ 通

java编程的一个猜数字有趣小游戏

import javax.swing.Icon; import javax.swing.JOptionPane; public class ai { /** * @param args */ public static void main(String[] args) { Icon icon = null; boolean bl = false; int put = 0; int c = (int) (((Math.random())*100)+1); //获取一个1-100的随机数 Syste

一个字符编码处理小程序(一)

一个字符编码处理小程序(一)以前与他人合作申请了一个汉字输入法编码专利(YXY),现在决定继续在此基础上进行一些开发工作,要将它的编码拆分成前.中.后三个子串,以便作进一步的处理.用户故事可以表达为:作为一个代码的开发人员,需要将YXY编码拆分成前.中.后三个子字符串,以便作进一步的汉字分析处理.下面对照个人开发流程,进行开发工作:一. 计划估计这个任务需要多少开发时间.由于利用业余时间开发,开发时间呈现碎片化的状况:故这里只是估计纯的开发时间,大约需要两周.二. 开发1. 分析需求出入内容:Y

只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧。

只是一个关于表白的小程序而已,如果你不知道怎么拒绝我,那就来掐死我吧. 背景: 小M同学喜欢小X同学,并且小M同学跟你们一样是枚程序猿.小M同学决定向小X同学表白.但是小M同学他是个程序猿啊,所以他害羞腼腆,不好意思直接说,于是他决定写了小程序向小X同学表白.于是发生了如下的事情. 时间:某年某月20日    人物:小M和小X    地点:说多是泪 (通话中) 小M:小X吗?我是小M. 小X:是啊,怎么了? 小M:是这样的,我最近写了个小程序,不知道你有没有时间帮我测一下啊? 小X:时间倒是有的

实现一个servlet的helloworld小程序(不适用Eclipse)

1. 在tomcat中的webapps下建一个应用程序FirstServlet(C:\tomcat\webapps\FirstServletweb) 2. 在应用程序下建立目录 C:\tomcat\webapps\FirstServletweb\WEB-INF\classes 3. 在class目录下建立一个文件 FirstServlet.java 4. 实现内容 package cn.school; import java.io.*; import javax.servlet.*; publi

两天撸一个天气应用微信小程序

这是一个完整的已经线上运行的天气应用小程序,点击可查看源码,可随意 star.也可以扫描下方的小程序码直接体验. 效果图: 说明 鸣谢:pure 天气 APP:首页样式借鉴了 pure天气 APP.如侵删. 数据来源 地理编码.天气数据均来自百度地图开放平台.个人开发完全免费,有对应的小程序 sdk,加入即可,但是返回的天气数据较少. 运行前准备 注册微信小程序,获取 appid 注册百度地图开放平台开发者,创建应用,获取 ak(其他配置自行查看) 在 app.js 中替换 globalData

【转】两天快速开发一个自己的微信小程序 悬笔e绝 www.xuanbiyijue.com

文章出处:https://www.cnblogs.com/xuanbiyijue/p/7980010.html 作者: 悬笔e绝 www.xuanbiyijue.com 两天快速开发一个自己的微信小程序 一.写在前面 1.为什么要学小程序开发? 对于前端开发而言,微信小程序因为其简单快速.开发成本低.用户流量巨大等特点,也就成了前端开发工程师必会的一个技能. 2.先放上我做的小程序 可以在微信小程序搜索“悬笔e绝”,或者用微信扫描下面的二维码哦 (1)欢迎页:这个logo是当年念大学给社团做的l

利用java开发一个双击执行的小程序

之前我们利用java写了很多东西,但是好像都没有什么实际意义. 因为有意义桌面小程序怎么都得有个界面,可是界面又不太好搞.或者 了解到这一层的人就少之又少了. 呀,是不是还得开辟一些版面来介绍awt和 swing... 算了 先把这个 双击执行的小程序 贡献出来. 这次 在分享一下源代码[以前还没有上传过源代码,布置怎么个搞法] 要求是: 输入一个 后缀名,然后输入所在目录,然后 点击查找,比如我们可以 输入F:\,然后查找 F盘下面的所有后缀名为比如.pdf 举例: 主要是 看了很多 资源,然

继上一个坑有一个坑(微信小程序一键登录之无法识别json数据)

前言:  作为一个运维人员不背锅,谁背呢! 正文: 开发人员和前端人员写好了微信小程序,然后坑出现了,安卓上打死不能一键登录.然后开始排查, 开始从数据上着手,不管是使用postman进行模拟测试数据,还是通过抓包查看数据,无任何问题,但是就是微信小程序无法判断改数据是json数据. 后来继续测试,打console.log 断点,抛数据出来查看发现 该数据 确实也存在问题,直接使用res.data 使用typeof 查看 确实为字符串,但是使用JSON.parse 却抛的微信小程序 百度都不能百