简易计算器 java_用Java做一个简易计算器,要用到哪些知识?

分析问题关键词:Java、计算器

深夜无聊,暂且一答。

计算器分两个步骤:计算 + 器

篇一 ·「器」

在编程中,我们可以把「器」理解为「GUI(图形界面)」,Java 语言描绘的图形界面有很多种类,比如 awt、swing、javaFX 等等,甚至 Android 也应该被包含进「Java 类 GUI」中。如此,我们可以选择的图形界面就有很多了!那我就简单的以其中最成熟的 Android 举个例子吧。

在 Android 中,可以使用 GridLayout 布局出一个 4 x 4 网格,分别放置 1、2、3、4、5、6、7、8、9、· 、0、=、+、-、*、/ 按钮。注意这句话!注意这句话!注意这句话!关键词:布局、按钮。也就是说:布局不是可见的元素,而是一种排版、装鸡蛋的篮子,按钮才是真正的视图、鸡蛋!我们一般是看不见布局的,只能看见视图,也就是说我们最终将只能看见这些加减乘除的按钮而已。

不仅仅是 Android,iOS、Java Swing、HTML5 这些非常常见的图形开发框架(实在找不到好的名词去称呼这类界面开发的「框架」)基本都是把「布局」和「控件(即视图,Bootstrap 里称作组件,VisualBasic 里称做控件,Android里称作视图 View,iOS 里称也作 View)」分离开设计的。因为带过一些新手学习这方面知识,所以把很多新手经常忽略不注意的地方提出来重点说一下。

有了布局和视图,接下来只需要添加「监听」就好了。Java 中监听器(Listener)一般是用策略模式(设计模式中很常见的一种)实现的,作用一般是设定一些常用的事件并触发反馈。比如:点击、长按、左滑、右滑、下拉等等触控操作,也可以是键盘输入、音频(麦克风)视频(摄像头)输入等。

拿段代码说话吧,要不然显得枯燥:

button.setOnClickListener(new Button.OnClickListener(){//创建监听 public void onClick(View v) {

long sum = numberA + numberB;

Log.i("求和结果为:" + sum); // ~print // ... }

});

这是 Android 中非常常用的「匿名类 + 监听」实现方式,Java 下很多图形界面的开发基本都是这一个套路,监听用 Listener,数据源用 Adapter,这些或多或少都是由 Java 这门语言决定的。就像常说的一句话一样:撇开语言谈设计模式就是耍流氓。所以熟悉了一种环境的开发,切换到 Java 下其他的框架也都是可以做到顺手拈来的。

小结一下:有了视图,有了事件,那么就有了名词、动词,属性、方法,一个程序也就算是完整了。在做计算器这个小 demo 里面,就只缺少接下来的「算法」了。

篇二 ·「计算」

关于计算我想是不必多说了,各种算法实现都有,用简单的判断结构实现 +、-、*、/操作的,也有复杂点用栈实现表达式求值的,这些其实与 Java 就没多大耦合了,什么语言都是可以的,也就是说这个不局限于 Java 范畴内,这里就不展开来讲了。

偷懒的我~

以上。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/245937.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

picturectrl控件中加载图片并显示_如何在EasyX窗体中显示图片

前提:图片必须是.jpg或.bmp格式的图片。(一)将保存在电脑桌面上的图片显示在EasyX窗体中,图片路径为:C:甥敳獲Administrator.USER-20190823VFDesktop锤头镰刀旗.jpg。(二)程序代码:#include#includeint main(){initgraph(500,300)…

estemplate 导入MySQL_[数据库]es~通过ElasticsearchTemplate进行聚合操作

[数据库]es~通过ElasticsearchTemplate进行聚合操作02020-08-24 17:00:38聚合操作,我们可以对数据进行分组的求和,求数,最大值,最小值,或者其它的自定义的统计功能,es对聚合有着不错的支持,需要…

iis mysql版本切换_MySQL+PHP配置 Windows系统IIS版(转)

1、下载MySQL下载地址:http://dev.mysql.com/downloads/mysql/5.1.html->Windows (x86, 32-bit), MSI Installer Essentials - Recommended(不包含文档)->No thanks, just start my download.(无需登录注册 直接下载)PHP下载地址:www.php.net->…

ping网关丢包_网络/摄像机丢包的原因分析

引文不少人在使用网络和监控摄像系统的时候都有遇到过数据丢包的情况,数据丢包的原因是多种多样的,以下就为大家介绍一下网络数据丢包的原因及摄像机丢包的原因。原因分析摄像机丢包的原因1:路由错误网络路径错误也会导致数据包不能到达目的主…

java aes 填充_Java中的Aes解密 – 填充问题

我更改了一些代码行,以保证大文件的加密.现在我遇到了问题,解密不起作用.我收到以下错误消息/异常:Error encrypting/decrypting fileat Algorithmus.Encryptor.doCrypto(Encryptor.java:71)at Algorithmus.Encryptor.decrypt(Encryptor.java:39)at GUI.MainWindow$…

plantuml语法_PlantUML实践 | 思维导图

❝思维导图又叫心智导图,用于表达发散性思维的图形工具。❞语法使用一些运算符(如:,-,*)来决定图形方向。相同运算符数量则在同一级。运算符数量越多,层级越深。支持内置前缀图标标记,如旗帜图标。示例star…

Java常用API例子_Java常用API及Math类

一、API的概述API——Application Programing Interface:应用程序编程接口,是java提供的一些预定义的函数;目的:基于API实现程序的快速编写,只需了解其作用,不用关注源代码。学习API的方法:先了解API的概况…

prometheus连续查询_Prometheus 不完全避坑指南

原文发表于 我的个人博客,同步发表到我的知乎专栏 Prometheus 是一个开源监控系统,它本身已经成为了云原生中指标监控的事实标准,几乎所有 k8s 的核心组件以及其它云原生系统都以 Prometheus 的指标格式输出自己的运行时监控信息。我在工作中…

java猜字母讲解_java_猜字母游戏

java猜字母游戏猜字母游戏:用户指定游戏难度(5、7、9),程序生成随机不重复字母。用户猜错,提示用户对的字母数量和对的位置数量。import java.util.Scanner;public class GuessWord {public static void main(String[] args) {Scanner scanne…

list java removeif_java – removeIf()方法.从List中删除所有元素

我有一个用户列表,我想从我的列表中删除id为其实我这样做:[...]int pid1 1;int pid2 2;int pid3 3;Predicate personPredicate1 p-> p.getPid() pid1;Predicate personPredicate2 p-> p.getPid() pid2;Predicate personPredicate3 p-> p.getPid() …

服务器是什么系统_服务器自愈路由系统、单线以及BGP多线的区别是什么?

你是否了解服务器自愈路由系统呢?你是否了解服务器单线路呢?你是否了解服务器BGP多线路呢?你是否知道它们之间有什么区别呢?本文主要分为两大块来讲:1.分别简单的介绍下服务器的自愈路由系统、服务器单线路和服务器BGP…

java api管理工具_一个能快速写出实体类的Api文档管理工具

今天各种MVC框架满天飞,大大降低了编码的难度,写实体类就没有办法回避的一件事了,花大把的时间去做一些重复而且繁琐的工作,实在不是一个优秀程序员的作风,所以多次查找和尝试后,找到一个工具类网站——Api…

recyclerview 分组_Android使用RecyclerView实现跨列分组

效果图:需求分析:如上图所示,这是一个展示年级及学期的界面。年级分为三组高中、初中和小学。因学期太多若按一个一个控件的写既繁琐又不够优雅,所以我采用 RecyclerView配合分组来实现效果。注意:我这边是使用一个 Re…

rtmp服务器_nginx+windwos 搭建 rtmp 流媒体服务器

喜欢就关注我们吧!“ 写此篇文章属于笔者在开发项目中,对项目开发架构的一种选型,目前正在探索阿里云的视频直播服务和nginx自行搭建流媒体服务器,希望能选择最优的一种方案,进行开发。”以下是使用nginx自行搭建rtmp流…

java rest风格传参_SpringMVC的REST风格的四种请求方式总结

一、 在HTTP 协议里面,四个表示操作方式的动词:GET、POST、PUT、DELETE。它们分别对应四种基本操作:1、GET 获 取资源2、POST 新建资源3、PUT 更新资源4、DELETE 删除资源二、REST:即 Representational State Transfer。(资源)表…

java语言编写进制转换_Java 3种方法实现进制转换

由其他进制转换为十进制比较简单,下面着重谈一谈十进制如何化为其他进制。1.使用Java带有的方法Integer,最简单粗暴了,代码如下//使用java提供的方法//但仅局限于比较常用的二进制、八进制、十六进制public static String trans1(int num, in…

r语言聚类分析_图说层次聚类分析原理和R语言实现

1、引言“物以类聚、人以群分”。但我们面对一群人或者一堆物的时候,我们都希望将他们分分类,分类之后,我们才能更加有针对性地采取措施,从而提高工作效率。如,我们将消费者分成若干类,有的是土豪、有的是工…

peewee创建mysql_python – peewee MySQL,如何创建包装SQL构建的ins的自定义字段类型?...

我想在peewee(通过MySQL)创建一个自定义UUID字段.在python中,我使用UUID作为一个六角形字符串,例如:uuid ’110e8400-e29b-11d4-a716-446655440000′但是我想将它存储在数据库中的BINARY(16)类型的列中以节省空间.MySQL内置了HEX()和UNHEX()方法,可以在字符串和二进…

python scrapy教程实例_Python之scrapy实例1

下文参考:http://www.jb51.net/article/57183.htm个人也是稍加整理,修改其中的一些错误,这些错误与scrapy版本选择有关,个环境:Win7x64_SP1 Python2.7 scrapy1.1另外例子中的URL(http://www.dmoz.org/Computers/Prog…

goods.java_javaweb网上书城项目 1.用户管理:注册会员 - 下载 - 搜珍网

压缩包 : java web网上图书商城项目.zip 列表java web网上图书商城项目/java web网上图书商城项目/goods/java web网上图书商城项目/goods/.classpathjava web网上图书商城项目/goods/.myeclipse/java web网上图书商城项目/goods/.mymetadatajava web网上图书商城项目/goods/.p…