簡體   English   中英

Java:看不到我的變量

[英]Java: can't see my variable

我有這么小的代碼,但是我不知道為什么它不能從ab類中的aa類讀取aa.width的值。

我正在嘗試創建一個基本的游戲。 文件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!

您要在調用ab()構造函數之后設置aa.width變量。 移動public static int width = 600; 一排,您就完成了。

我想建議您也不要使用過多的公共變量,而是每個對象都應具有其私有變量和setter / getter方法。 我建議您還檢查游戲的結構以及嘗試創建游戲的方式,如果您是Java GUI和/或MVC(模型視圖控制器)的新手,也許您只想用自己的內容創建一個類需要所有內容,或者更進一步,需要一個類處理邏輯,並一個類處理所有圖形。 如果您在編碼之前進行了認真的思考,則可能會更快地進行編碼和調試。

我無法告訴您更多信息,因為我無法理解您的代碼想要做什么。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM