代码优化之 组合与内部类

一、简单计算功能_源码: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("");



    }
}

}
`

posted @ 2021-12-15 13:50  小胖昂  阅读(40)  评论(0)    收藏  举报