2.5代码思想
1.代码 面向过程
package com.kuang;
import org.w3c.dom.Text;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Constructor;
public class TestCalc1 {
public static void main(String[] args) {
new Calculator();
}
}//简易计算器 面向过程
//计算器类
class Calculator extends Frame
{
public Calculator(){
//三个文本框
TextField num1 = new TextField(10);
TextField num2 = new TextField(10);
TextField num3 = new TextField(20);//字符数
//一个按钮
Button button = new Button("=");
//监听事件 button键
button.addActionListener(new MyCalculatorListener(num1,num2,num3));
//一个标签 + 号
Label label = new Label("+");
//布局 流式布局
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
pack();//自适应大小
setVisible(true); //frame可视
}
}
//监听器类
class MyCalculatorListener implements ActionListener
{
//获取三个数字三个变量
private TextField num1,num2,num3;
//利用构造函数进行传参操作
public MyCalculatorListener(TextField num1, TextField num2, TextField num3)
{
this.num1=num1;
this.num2=num2;
this.num3=num3;
}
//写这个监听应该实现的操作 即将几个数字相加
@Override
public void actionPerformed(ActionEvent e) {
//获得加数和被加数
int n1=Integer.parseInt(num1.getText());
int n2=Integer.parseInt(num2.getText());
//将运算的值放到第三个框
num3.setText(""+(n1+n2));
//清除前两个
num1.setText(" ");
num2.setText(" ");
}
}
2.代码 类的组合,面向对象
package com.kuang;
import org.w3c.dom.Text;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Constructor;
public class TestCalc2 {
public static void main(String[] args) {
new Calculator2().lodeFrame();
}
}//简易计算器 类的组装
//计算器类
class Calculator2 extends Frame
{
//属性
TextField num1,num2,num3;
//方法
public void lodeFrame(){
//三个文本框
TextField num1 = new TextField(10);
TextField num2 = new TextField(10);
TextField num3 = new TextField(20);//字符数
//一个按钮
Button button = new Button("=");
//监听事件 button键
button.addActionListener(new MyCalculatorListener2(this));
//一个标签 + 号
Label label = new Label("+");
//布局 流式布局
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
pack();//自适应大小
setVisible(true); //frame可视
}
}
//监听器类
class MyCalculatorListener2 implements ActionListener
{
//在监听器类中获得计算机的类 类的组装
Calculator2 calculator2=null;
//利用构造函数进行传参操作
public MyCalculatorListener2(Calculator2 calculator2)
{
this.calculator2=calculator2;
}
//写这个监听应该实现的操作 即将几个数字相加
@Override
public void actionPerformed(ActionEvent e) {
//获得加数和被加数
int n1=Integer.parseInt(calculator2.num1.getText());
int n2=Integer.parseInt(calculator2.num2.getText());
//将运算的值放到第三个框
calculator2.num3.setText(""+(n1+n2));
//清除前两个
calculator2.num1.setText(" ");
calculator2.num2.setText(" ");
}
}
3.代码 内部类,操作更快更简洁
package com.kuang;
import org.w3c.dom.Text;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.lang.reflect.Constructor;
public class TestCalc3 {
public static void main(String[] args) {
new Calculator3().lodeFrame();
}
}//简易计算器 内部类
//计算器类
class Calculator3 extends Frame
{
//属性
TextField num1,num2,num3;
//方法
public void lodeFrame(){
//三个文本框
num1 = new TextField(10);
num2 = new TextField(10);
num3 = new TextField(20);//字符数
//一个按钮
Button button = new Button("=");
//监听事件 button键
button.addActionListener(new MyCalculatorListener3());
//一个标签 + 号
Label label = new Label("+");
//布局 流式布局
setLayout(new FlowLayout());
add(num1);
add(label);
add(num2);
add(button);
add(num3);
pack();//自适应大小
setVisible(true); //frame可视
}
private class MyCalculatorListener3 implements ActionListener
{
//写这个监听应该实现的操作 即将几个数字相加
@Override
public void actionPerformed(ActionEvent e) {
//获得加数和被加数
int n1=Integer.parseInt(num1.getText());
int n2=Integer.parseInt(num2.getText());
//将运算的值放到第三个框
num3.setText(""+(n1+n2));
//清除前两个
num1.setText(" ");
num2.setText(" ");
}
}
}