分析问题关键词: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 范畴内,这里就不展开来讲了。
偷懒的我~
以上。