0

私はこの小さな小さなコードを持っていますが、クラス内のクラスaa.widthからの値を読み取れない理由がわかりません。aaab

私は基本的なゲームを作成しようとしています。ファイルab.javaには print ステートメントがあります。で関数を呼び出していないことはわかっていますがaa、それがJavaの仕組みです。できると思っaa.widthたので、パブリック変数なので値を取得します...助けてくれてありがとう

aa.java :

package com.Game;

import javax.swing.JFrame;

public class aa {

    public static ab f= new ab();
    public static int width = 600;
    public static int height = 400;
    public static void main(String args[]){

        f.setSize(width,height);
        f.setResizable(false);
        f.setVisible(true);
        f.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
        f.setTitle("game first");
        f.setLocationRelativeTo(null);
        System.out.println("main window running!");

    }
}

ab.java

package com.Game;

import java.awt.GridLayout;

import javax.swing.*;

public class ab extends JFrame {

    /**
     * 
     */
    private static final long serialVersionUID = 1L;
    public ac panel;

    public ab() {
        panel = new ac(this);
        setLayout(new GridLayout (1,1,0,0));
        add(panel);
        System.out.format("the value of width %d\n", aa.width);
    }

}

それは出力します:

the value of width 0
main window running!
4

2 に答える 2

6

コンストラクターaa.widthを呼び出した後に変数を設定しています。1行上にab()移動して完了です。public static int width = 600;

于 2013-08-24T05:21:57.537 に答える
0

また、パブリック変数をあまり使用しないことをお勧めします。代わりに、各オブジェクトにはプライベート変数とセッター/ゲッター メソッドが必要です。Java GUI や MVC (モデル ビュー コントローラー) を初めて使用する場合は、ゲームの構造と作成方法を確認することをお勧めします。内部にすべて、またはさらに一歩進んで、ロジックを処理するクラスとすべてのグラフィックスを処理するクラスが必要です。コーディングする前によく考えれば、おそらくコーディングとデバッグが速くなるでしょう。

あなたのコードが何をしたいのか理解できないので、これ以上は言えません。

于 2013-08-24T08:02:27.020 に答える