gpt4 book ai didi

java - 我的主方法中的哪个语句正在调用我的其他类和我的主类中的所有其他方法?

转载 作者:行者123 更新时间:2023-12-01 12:04:53 26 4
gpt4 key购买 nike

问题:好的,由于我对这个主题缺乏全面的理解,这听起来有点令人困惑。目前,我正在按照 YouTube 教程创建一个游戏(以了解 Java 游戏开发的基础知识)。

在学习了一些教程之后,我对 main 方法和包含它的类的真正目的是什么感到困惑。我认为main方法的工作就是调用自己类的所有方法以及其他类中所需的方法。然而,在我的主“游戏”类的主要方法中,这就是我所拥有的:

public static void main (String[] args) {
JFrame frame = new JFrame(title);
frame.add(game);
frame.setSize(WIDTH,HEIGHT);
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setFocusable(true);
frame.setLocationRelativeTo(null);
frame.setResizable(false);
frame.setVisible(true);
frame.pack();
game.start();
}

frame.add(game)(gameGame的实例)是否“调用”其他类中的所有其他方法? frame.add() 到底是做什么的? 另外,尽管阅读了很多解释,我仍在尝试理解线程。 当我编写 game.start(); 来“启动”线程时,这到底意味着什么?它只调用游戏类中的所有方法吗?

如果需要的话,这是我的线程代码:

private synchronized void start() {
if(running) {
return;
} else {
running = true;
}
thread = new Thread(this);
thread.start();
}
public synchronized void stop(){
if(!running) {
return;
} else {
running = false;
}
try {
thread.join();
} catch (InterruptedException e) {
e.printStackTrace();
}
System.exit((0));
}

这是我初始化的变量:

private static final long serialVersionUID = -8921419424614180143L;
public static final int WIDTH = 640;
public static final int HEIGHT = WIDTH / 4*3;
public static String title = "Game";
public static Game game = new Game();
public static GameState state = GameState.MENU;
private boolean running = false;
private Thread thread;
private Renderer gfx;
public static Game getInstance(){

我只是不确定如何调用游戏类和其他类中的所有其他方法(如果这是我的主方法中的全部内容)。任何帮助将不胜感激。正如你可能知道的那样,我在这里真的很挣扎。

最佳答案

main() 方法的目的是为独立执行提供一个入口点。

在您的情况下(您没有显示 game 是如何初始化的,但我猜这是一个 static Game game = new Game(); 初始化字段)会发生什么首先静态字段被初始化(这将调用 Game() 构造函数)。

然后main方法就开始了。它将初始化的 game 设置为框架的内容(这意味着 Frame 将调用各种 UI 相关方法,例如 paint() ) Gui 中的线程是一个相当复杂的主题,但为了你的问题,你可以忽略它)。

main 中的其余方法用于设置包含框架。这对于较大的应用程序来说是不寻常的,但对于如此小的示例来说却很常见。 (它确实会导致调用游戏上的方法,例如布局或绘图)。

最后 main 调用了 game.start() (这是您所展示的 Game 上的 start() 方法)。它确实创建了一个新线程,该线程(根据定义)执行赋予 new Thread(this)Runable 上的 run() 方法构造函数(this,此时与 game 是同一实例)。

关于java - 我的主方法中的哪个语句正在调用我的其他类和我的主类中的所有其他方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27683738/

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