在下面代码中,this指的是哪些
package cn.itcast.player;
import java.awt.*;
import javax.swing.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.awt.event.WindowAdapter;
import java.awt.event.WindowEvent;
class Cardlayout extends Frame implements ActionListener{
Panel carPanel = new Panel();
Panel contPanel = new Panel();
Button nexButton,preButton;
CardLayout cardLayout=new CardLayout();
public Cardlayout() {
// TODO Auto-generated constructor stub
setSize(300,200);
setVisible(true);
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Cardlayout.this.dispose();
}
});
carPanel.setLayout(cardLayout);
carPanel.add(new Label("第一个界面",Label.CENTER));
carPanel.add(new Label("第二个界面",Label.CENTER));
carPanel.add(new Label("第三个界面",Label.CENTER));
nexButton =new Button("下一个界面");
preButton =new Button("上一个界面");
nexButton.addActionListener(this);
preButton.addActionListener(this);
contPanel.add(preButton);
contPanel.add(nexButton);
this.add(carPanel,BorderLayout.CENTER);
this.add(contPanel,BorderLayout.SOUTH);
}
@Override
public void actionPerformed(ActionEvent e) {
// TODO Auto-generated method stub
if (e.getSource()==nexButton) {
cardLayout.next(carPanel);
}
if (e.getSource()==preButton) {
cardLayout.previous(carPanel);
}
}
}
public class Example2{
public static void main(String[]args) {
Cardlayout cardlayout = new Cardlayout();
}
}
谢谢做答
说了那么多,,,起始this一句话就可以描述,就是“当前对象”
【1】“解决局部变量和成员变量名称冲突问题”,,这个经常出现,,
很好理解,一个事对象的属性,一个事局部变量(this作为当前对象,调用属性理所应当)
【2】“在下面代码中,this指的是哪些”
题主可能把this理解难了,,
代码中这个代码中的this题主都可以看作是,main方法中创建的这个对象“ Cardlayout cardlayout = new Cardlayout();”
其中这个比较特别:“Cardlayout.this.dispose();”,,含义是一样的只是形式不同,解释如下:
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
Cardlayout.this.dispose();
}
});
此处使用到了匿名内部类,,“ Cardlayout.this.dispose();”
这句代码没有在当前类中,而是在一个内部类中,,如果使用this的话指代的是匿名内部类的对象,,所以需要使用Cardlayout.this(类名.this)
有问题还可以追问,,,对你有帮助,,请采纳
Cardlayout 这个类的自己
this是指Frame吗?还是CardLayout?
this其实就是一个引用,只不过这个引用优点特殊,普通的引用调用方法,是根据引用指向的具体对象,你在编译的时候基本就知道是哪个对象调用,当然不包含多态的情况,this是动态的,他调用的成员变量和方法,是根据当前调用该方法的对象决定的,哪个对象调用了这个方法,this就指向了哪个对象
this 表示当前类对象 Cardlayout
最简单的话来理解,谁是调用者谁就是this
java是面向对象编程 ,this指的的对象本身
类似汉语中的“在下”
Java是以花括号{ }做闭包,this的作用域在当前使用的花括号之中,代表的是当前类对象。
public void setMachineNum(Integer machineNum) {
this.machineNum = machineNum;
}
set方法里面理解一下。this就是调用这个方法的对象
this 就是 调用者