gpt4 book ai didi

java - 如何在此 JOGL 场景中在 java 中使用 NOT use "this"关键字

转载 作者:行者123 更新时间:2023-12-01 18:09:20 24 4
gpt4 key购买 nike

1)底部的代码是JOGL介绍的一部分,JOGL只是java的openGL,我不太明白这里“this”的用法。我以前使用过它,并在许多用途中对它进行了点对点的研究,但我不明白它在这个特定上下文中的使用方式,所以请不要引导我到另一个“这个”解释,因为我我已经读过它们了。

例如,下面的位是:

public S1_original() {
super("S1");
this.setSize(WIDTH, HEIGHT);

这里的“this”关键字指的是什么?我没有编写任何其他类,那么使用“.setSize()”方法来做什么?

2)如果我在上面的示例中不使用“this”和“this.setSize(WIDTH, HEIGHT)”,我会在那里放什么?

3)那么这段代码中的“this”指的是什么?

canvas.addGLEventListener(this);

为什么类似的行前面需要一个“this”,但这里它在里面使用 this 作为参数。

public class S1_original extends Frame implements GLEventListener {

private static final int WIDTH=640;
private static final int HEIGHT=480;
//private static final float NEAR_CLIP=0.1f;
//private static final float FAR_CLIP=100.0f;

private GLCanvas canvas;
private FPSAnimator animator;
private double theta = 0;
private double sinValue = 0;
private double cosValue = 0;

public static void main(String[] args) {
S1 frame = new S1();
frame.setVisible(true);
}

public S1_original() {
super("S1");
this.setSize(WIDTH, HEIGHT);

GLProfile glp = GLProfile.getDefault();
GLCapabilities caps = new GLCapabilities(glp);
GLCanvas canvas = new GLCanvas(caps);

this.add(canvas, "Center");
this.addWindowListener(new WindowAdapter() {
public void windowClosing(WindowEvent e) {
System.exit(0);
}
} );

canvas.addGLEventListener(this);

animator = new FPSAnimator(canvas, 60);

animator.start();
}

非常感谢您的帮助!

最佳答案

This this 的完全标准用法:它指的是该方法当前正在操作的对象。由于S1_original()是一个构造函数,它引用当前正在构造的对象。所以该行的作用是在正在构造的对象上调用 setSize(WIDTH, HEIGHT) 。但是,当从另一个成员方法或构造函数内部调用成员方法时,this 始终可以被省略,因此该行相当于简单的:

setSize(WIDTH, HEIGHT);

您的困惑可能源于您尚未在类中实际创建 setSize 方法。但是,请注意,您的类扩展了 Frame - 该方法是从该类继承的。

关于java - 如何在此 JOGL 场景中在 java 中使用 NOT use "this"关键字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34095580/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com