什么是;这一点;Java中的mean和reference

什么是;这一点;Java中的mean和reference,java,Java,我对java有点陌生,写了一个作业,制作了一个带有按钮的JFrame。“this.setTitle…”和“this.setSize…”的确切含义是什么。这是我的密码: import javax.swing.JButton; import javax.swing.JFrame; public class Assignment1 extends JFrame{ public Assignment1() throws Exception{ this.setTitle("Ass

我对java有点陌生,写了一个作业,制作了一个带有按钮的JFrame。“this.setTitle…”和“this.setSize…”的确切含义是什么。这是我的密码:

import javax.swing.JButton;
import javax.swing.JFrame;

public class Assignment1 extends JFrame{
    public Assignment1() throws Exception{
        this.setTitle("Assignment 1");
        this.setSize(400,800);
        this.getContentPane().add(new JButton("Click"));
        this.setVisible(true);
    }
public static void main(String[] args) throws Exception{
    new Assignment1();


 }
}

“this”表示类Assignment1的一个实例,在本例中,它是一个专门的JFrame

setTitle、setSize、getContentPane和setVisible是JFrame的方法,它们被Assignment1类继承

ThisThis是一个保留字,表示您正在使用的类的实例。例如,当您说this.setTitle时,您的引用是您正在使用的Assignment1的当前实例的方法setTitle

假设您创建了Assignment1的两个实例,如下所示:

a1 = new Assignment1();
a2 = new Assignment1();
如果您说a1.setTitle(“alfa”),您将使用实例a1的setTitle方法。在类中,您可以将此方法称为this.setTitle,与类中的方法完全相同。那么,如果你说a2.settitle(“beta”),这将不会与第一条语句冲突。您将获得两个JFrame,一个标题为“alfa”,另一个标题为“beta”


这就是为什么不能在静态方法中使用它的原因。可以调用静态方法,而无需创建类的实例。这就是为什么它们也被称为“类方法”。

顺便说一句,这可能是一个最适合堆栈溢出的问题。官方Java教程相当不错。顺便说一下,我同意@choward的观点。这个问题在StackOverflow中会更好。。。