在Java中使用关键字this

在Java中使用关键字this,java,netbeans,this,Java,Netbeans,This,我已经阅读了很多关于在java中使用关键字“this”的解释,但仍然没有完全理解它。我是否在本例中使用它: private void login_BActionPerformed(java.awt.event.ActionEvent evt) { if(user_TF.getText().equals("admin")&& pass_PF.getText().equals("admin")){

我已经阅读了很多关于在java中使用关键字“this”的解释,但仍然没有完全理解它。我是否在本例中使用它:

private void login_BActionPerformed(java.awt.event.ActionEvent evt) {                                        
    if(user_TF.getText().equals("admin")&& pass_PF.getText().equals("admin")){
        this.B.setVisible(true);
    }else{
        JOptionPane.showMessageDialog(null, "Warning!", "InfoBox: "+"Warning", JOptionPane.INFORMATION_MESSAGE);
    }
    this.user_TF.setText("");
    this.pass_PF.setText("");
}      

如果用户和pass匹配,它应该打开一个新窗口。我是否在这里的任何地方使用“this”关键字?

我认为有两个主要用法你应该知道:

  • 如果您有一个名为N的类变量和一个名为N的方法变量,那么为了区分它们,请将此.N用于类变量,将N用于方法变量
  • 假设您有2个构造函数。一个采用字符串名称,另一个采用名称+年龄。不要复制代码,只需使用this()调用另一个构造函数即可

在您的例子中,我没有看到任何名为“B”的本地(方法)变量,因此我想您可以不使用它。

该类的任何非静态方法都需要调用该类的对象。类具有修改和读取状态的状态和行为的蓝图。目标是实现这个蓝图。一旦对象被创建,它就拥有这些状态和方法

假设您有以下代码

public class A{
    int property;
    public void foo(){
         bar();
    }

    public void bar(){
         property = 40;
    }
}

public class B{
    public static void main(String[] args){
        A obj = new A();
        obj.foo();
    }
}
让我们试着回答几个问题

问题1。在mwthod
foo
中,我们调用
bar
,我们没有使用任何显式对象来调用它(使用
点运算符),对象是调用的方法
bar

问题2。方法
bar
尝试访问和修改名为
property
的变量。此状态称为
属性
属于哪个对象

答复

A1对象由
A.this
(它与
this
相同)。
它是调用了
foo
方法的对象,该方法在被调用的方法中隐式可用。执行该方法的对象可以通过
this
访问

A2。和Q1的答案相同


任何时候都可以通过类名访问对象。这在类的非静态方法或块中。

在本例中我是否使用它:这是一个问题吗?因为我在这里看不到任何答案,所以我对它进行了编辑,以显示我认为“this”可能被使用的位置。如果您发现其中一个答案有用,您可能会选择它作为最佳答案或对其进行评分。