[英]Java Two-Dimensional Array
将由矩阵引用的 boolean 值的二维数组将用于模拟可容纳 LETTERS_PER_DISPLAY 字母的基于 LED 的显示器。
修改构造函数以创建具有 FONT_LETTER_HEIGHT 行和 (FONT_LETTER_WIDTH 乘以 LETTERS_PER_DISPLAY) 列的 boolean 的二维数组,并将其分配给实例变量矩阵。
public class LEDDisplay
{
private boolean[] = matrix;
private static final int FONT_LETTER_HEIGHT = 5;
private static final int FONT_LETTER_WIDTH = 6;
private static final int LETTERS_PER_DISPLAY = 10;
public LEDDisplay()
{
boolean[][] matrix = new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH]
}
请你告诉我我的构造函数是否正确?
这实际上是不正确的 - 您通过定义构造函数的局部变量来隐藏成员变量矩阵。 这是正确的方法:
public class LEDDisplay
{
private boolean[][] matrix;
private static final int FONT_LETTER_HEIGHT = 5;
private static final int FONT_LETTER_WIDTH = 6;
private static final int LETTERS_PER_DISPLAY = 10;
public LEDDisplay()
{
matrix = new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH * LETTERS_PER_DISPLAY];
}
您的一维数组矩阵是 class 变量,而构造函数中的矩阵对于构造函数是本地的,并且在构造函数之外不可见。
FONT_LETTER_HEIGHT 行和(FONT_LETTER_WIDTH乘以LETTERS_PER_DISPLAY)列
那应该是:
new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH * LETTERS_PER_DISPLAY]
并将其分配给实例变量矩阵。
public LEDDisplay()
{
matrix = new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH]
}
然而
boolean[][] matrix = new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH]
创建一个仅在构造函数中可见的局部变量matrix
。 这对实例变量matrix
没有影响。
代码的两个小问题:
矩阵定义为class的成员变量,应该定义为二维数组,然后不需要在构造函数中重新定义
原来的帖子说应该有
“(FONT_LETTER_WIDTH 乘以 LETTERS_PER_DISPLAY)列”
并且您的构造函数仅包含 FONT_LETTER_WIDTH
像这样的东西:
public class LEDDisplay
{
private boolean[][] matrix;
private static final int FONT_LETTER_HEIGHT = 5;
private static final int FONT_LETTER_WIDTH = 6;
private static final int LETTERS_PER_DISPLAY = 10;
public LEDDisplay()
{
matrix = new boolean[FONT_LETTER_HEIGHT][FONT_LETTER_WIDTH * LETTERS_PER_DISPLAY];
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.