代码优化之 组合与内部类
一、简单计算功能_源码:1)启动main() 2)调用计算器类,计算功能布局,3)在计算器类中调用 运算事件监听器类;
二、代码优化之 组合 在类中声明另一个类私有化,直接使用另一个类;
` package com.xiaoPang.lesson02.TextCalc03;
//简易计算器
public class TextCalc03 {
public static void main(String[] args) {
//只运行
new Calc03().Calc03to();
}
}
package com.xiaoPang.lesson02.TextCalc03;
import com.xiaoPang.lesson02.Ysjt;
import java.awt.*;
public class Calc03 extends Frame {
//属性
TextField text,text2,text3;
//方法
public void Calc03to(){
//3个文本框
text = new TextField(10);
text2 = new TextField(10);
text3= new TextField(8);
//一个按钮
Button button = new Button("=");
//要完成计算需要给按钮添加一个事件监听
button.addActionListener(new Ysjt1(this));
//一个标签
Label label = new Label("+");
//流式布局
setLayout(new FlowLayout());
add(text);
add(label);
add(text2);
add(button);
add(text3);
pack();
setVisible(true);
}
}
package com.xiaoPang.lesson02.TextCalc03;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Ysjt1 implements ActionListener {
private Calc03 calc03;
public Ysjt1(Calc03 calc03) {
this.calc03=calc03;
}
@Override
public void actionPerformed(ActionEvent e) {
//获得三个变量,是文本类型,需要转化为,数字类型int,就要用包装类型转换
int t1=Integer.parseInt(this.calc03.text.getText());
int t2=Integer.parseInt(this.calc03.text2.getText());
//2,将这个值 + 运算后 ,放到 num3中
calc03.text3.setText(""+(t1+t2));
//清除前2个框的参数
calc03.text.setText("");
calc03.text2.setText("");
}
}
`
三、代码优化之 内部类,在类中直接声明一个类,访问外部的属性方法;
public class TextCalc04 { public static void main(String[] args) { //只运行 new Calc04().Calc04to(); } }
`package com.xiaoPang.lesson02.TextCalc04;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class Calc04 extends Frame {
//属性
TextField text,text2,text3;
//方法
public void Calc04to(){
//3个文本框
text = new TextField(10);
text2 = new TextField(10);
text3= new TextField(8);
//一个按钮
Button button = new Button("=");
//要完成计算需要给按钮添加一个事件监听
button.addActionListener(new Ysjt1());
//一个标签
Label label = new Label("+");
//流式布局
setLayout(new FlowLayout());
add(text);
add(label);
add(text2);
add(button);
add(text3);
pack();
setVisible(true);
}
private class Ysjt1 implements ActionListener {
@Override
public void actionPerformed(ActionEvent e) {
//获得三个变量,是文本类型,需要转化为,数字类型int,就要用包装类型转换
int t1=Integer.parseInt(text.getText());
int t2=Integer.parseInt(text2.getText());
//2,将这个值 + 运算后 ,放到 num3中
text3.setText(""+(t1+t2));
//清除前2个框的参数
text.setText("");
text2.setText("");
}
}
}
`

浙公网安备 33010602011771号