gpt4 book ai didi

java - 对实例和声明的误解

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

我对 Java 完全是个新手,正在创建贪吃蛇游戏。在游戏中,我创建了一个 Board 类,该类的作用是创建一个 JFrame 来提供视觉表示(据我理解)。我的问题在于我对代码缺乏理解。我不太清楚什么是“公共(public)静态董事会”;做。我原以为它创建了 Board 类的静态实例,但我认为这是不正确的。

我也在努力处理“board = new Board();”这一行,据我了解,这会在 Board 类中创建一个构造实例,但是,我不确定为什么我们将其分配给“board ”。

public class Game {

/**
* @author HyperBlue
*/

//Declaring a static instance/object of Board, this can be accessed from anywhere in the program. The fact that it is static means that it cannot be edited. -- Not sure if right definition
public static Board board;

public static void main(String[] args) {
// TODO Auto-generated method stub

//Creates a static object board
board = new Board();

}

}

编辑:考虑到这一点,我是否正确地认为 public JFrame frame; 没有创建一个名为frame的新JFrame实例?如果没有,那么它会创建一个我可以操作的变量吗?

最佳答案

public static Board board;声明了一个可以引用板的变量。在某种程度上,可以把它想象成一个盒子——你创建了一个空盒子。它里面什么也没有,但你现在可以在那个盒子里放一些东西。

声明的每个部分都会告诉您有关该盒子的一些信息:

  • public:任何人都可以访问此框
  • 静态:该框与游戏关联,而不是与特定实例关联。目前,这意味着永远只有一个盒子,而不是多个。
  • Board:盒子的“类型”是 Board - 只有 Board 类型的东西适合盒子。
  • board:盒子的名称是“board”。当您想要引用此框中的内容时,可以使用名称board

您认为 board = new Board(); 创建 Board 的实例是正确的。具体来说,new Board(); 部分是创建新的 Board 实例的部分。通过说 board = new Board();,您可以将该新实例放入之前声明的标记为 board 的框中。从现在开始,您可以通过名称 board 引用您创建的棋盘,或者在此类之外引用 Game.board。同样重要的是要知道,通过说 board = new Board()board 以前的内容(如果有的话)现在会丢失。你把盒子倒掉了,这样你就可以把新的东西放进去。显然这里没有任何内容,但是当您在任何面向对象语言(例如 java)中前进时,请记住这一点。

关于java - 对实例和声明的误解,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27715564/

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