2011-07-19 28 views
0

行列で参照されるブール値の2次元配列を使用して、LETTERS_PER_DISPLAY文字を保持できるLEDベースのディスプレイをシミュレートします。Java 2次元配列

FONT_LETTER_HEIGHT行と(FONT_LETTER_WIDTH×LETTERS_PER_DISPLAY)列を持つブール値の2次元配列を作成し、それをインスタンス変数行列に代入するようにコンストラクタを変更します。

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] 
} 

私のコンストラクタが正しいかどうか教えてください。

+2

を。もう一度読む。 (答えも間違っています) – Jacob

+0

各ブール値は1つのLEDを表していますか? – powerMicha

答えて

3

実際には正しくありません。コンストラクタにローカルを定義することによってメンバ変数の行列を非表示にします。コンストラクタ内のマトリックスはコンストラクタへのローカルおよびコンストラクタ外部表示されていないのに対し、

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]; 
} 
+2

OPが次のように書いているので、FONT_LEETER_WIDTHにLETTERS_PER_DISPLAYを掛けなければならないかもしれません: "* FONT_LETTER_WIDTH times LETTERS_PER_DISPLAY *" –

+0

ありがとう! –

1

あなたの1次元アレイ行列がクラス変数である:ここで正しい方法です。

0

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には影響しません。コード付き

0

二つの小さなちゃったごめんなさい:

  1. マトリックスは、クラスのメンバ変数として定義されているが、2次元配列として定義する必要があり、その後に再定義する必要はありません

「(FONT_LETTER_WIDTH回がなければならないことをコンストラクタ

  • オリジナルのポストの状態LETTERS_PER_D ISPLAY)コラム」

  • とあなたのコンストラクタのみ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]; 
    }