gpt4 book ai didi

java - 如何从另一个类访问对象方法?

转载 作者:行者123 更新时间:2023-12-01 15:10:10 25 4
gpt4 key购买 nike

这是我的主类代码“Main.java”:

import org.lwjgl.LWJGLException;
import org.lwjgl.opengl.Display;
import org.lwjgl.opengl.DisplayMode;

import static org.lwjgl.opengl.GL11.*;

public class Main{
public static void main(String[] args){
try{
Display.setDisplayMode(new DisplayMode(640, 480));
Display.setTitle("LWJGL TESTING");
Display.create();
}catch (LWJGLException e){
e.printStackTrace();
Display.destroy();
System.exit(1);
}

glMatrixMode(GL_PROJECTION);
glOrtho(0, 640, 480, 0, 1, -1);
glMatrixMode(GL_MODELVIEW);

while (!Display.isCloseRequested()){
glClear(GL_COLOR_BUFFER_BIT);
new KeyboardEventHandler();
Line line1 = new Line(100, 100, 200, 200, 1);
Line line2 = new Line(400, 0, 400, 100, 2);
Display.update();
Display.sync(60);
}
Display.destroy();
System.exit(0);
}
}

这是我的 KeyboardEventHandler 类的代码,标题为“KeyboardEventHandler.java”:

import org.lwjgl.input.Keyboard;


public class KeyboardEventHandler extends Main{
public KeyboardEventHandler(){
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){

}
}
}

这是我的类,标题为“Line.java”:

import static org.lwjgl.opengl.GL11.*;

import org.lwjgl.opengl.*;
import org.lwjgl.*;
import org.lwjgl.opengl.GL11;

public class Line {
int id;
public Line(int startx, int starty, int endx, int endy, int startingid){
glBegin(GL_LINE_STRIP);
glVertex2i(startx, starty);
glVertex2i(endx, endy);
glEnd();
id = startingid;
}
public int getLineId(){
return id;
}
}

如何从 KeyboardEventHandler 类访问“line1”行的 getLineId() 方法,我对 Java 还很陌生,所以如果这是一个明显的答案,我很抱歉。

最佳答案

您可以将行传递到 KeyboardEventHandler 构造函数中。

//New KeyboardEventHandler
import org.lwjgl.input.Keyboard;

public class KeyboardEventHandler extends Main{
public KeyboardEventHandler(Line passedLine /* Passing the Line object*/){
if(Keyboard.isKeyDown(Keyboard.KEY_LEFT)){
int lineID = passedLine.getLineId();
}
}
}

然后在你的主类中

/*Section from Main class*/
while (!Display.isCloseRequested()){
glClear(GL_COLOR_BUFFER_BIT);
Line line1 = new Line(100, 100, 200, 200, 1);
//Pass line into keyboard event handler\\
new KeyboardEventHandler(line1);
Line line2 = new Line(400, 0, 400, 100, 2);
//Pass line into keyboard event handler\\
new KeyboardEventHandler(line2);
Display.update();
Display.sync(60);
}

关于java - 如何从另一个类访问对象方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12433978/

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