- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我对 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;
声明了一个可以引用板的变量。在某种程度上,可以把它想象成一个盒子——你创建了一个空盒子。它里面什么也没有,但你现在可以在那个盒子里放一些东西。
声明的每个部分都会告诉您有关该盒子的一些信息:
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/
我是一名优秀的程序员,十分优秀!