1. 程式人生 > >java this作為例項引數的使用

java this作為例項引數的使用

1、代表自身物件

package GUI;
import java.awt.*;
import java.awt.event.*;
import java.awt.event.ActionListener;

/**
 * Created by ADY on 2016/11/17.
 */
public class TFMath {
    public static void main(String[] args){
        new TMFrame().launchFrame();
    }
}

class TMFrame extends Frame{
    TextField num1,num2,num3;
    public void launchFrame(){
        num1 = new TextField(10);
        num2 = new TextField(10);
        num3 = new TextField(15);
//      TextField test = new TextField(2);
        Label lbplus = new Label("+");
        Button btequal = new Button("=");
        //this是當前類,當前物件。(既是TMFrame,包含的是成員變數num1、num2、num3)
        btequal.addActionListener(new TFMonitor(this));
        setLayout(new FlowLayout());
        add(num1);
        add(lbplus);
        add(num2);
        add(btequal);
        add(num3);
        pack();
        setVisible(true);
    }
}

class TFMonitor implements ActionListener{
    TMFrame tf = null;
    public TFMonitor(TMFrame tf){
        this.tf = tf;
    }
    public void actionPerformed(ActionEvent e){
        int n1 = Integer.parseInt(tf.num1.getText());
        int n2 = Integer.parseInt(tf.num2.getText());
        //      " " 是一個字串,字串+int自動轉成字串
        tf.num3.setText("" + (n1 + n2));
        //int n3 = Integer.parseInt(tf.test.get)

        //tf.num1.setText("");
        //tf.num2.setText("");
    }
}

2、引用構造方法

class student extends person{
    private String school;

    student(String name,String school){
        //super(name,location);
        this(name,"beijing",school);   /**有顯式this()呼叫的構造器就會抑制掉該構造器裡隱式的super()呼叫。注意this()和
                                          this.不一樣。
                                            this()呼叫本類中另一種構造方法,this()必須是構造方法的第一句
                                            super()呼叫基類的一種構造方法,super()必須是構造方法的第一句
                                            this:表示當前物件名
                                            super:表示引用當前物件父類中的成員
                                        */
    }

    student(String n,String l,String school){
        super(n,l);
        this.school = school;
    }

}