在类之间传递变量的最佳方法是什么?

时间:2017-02-02 16:11:16

标签: java

private boolean shouldBank;
private boolean started;
private long startTime;
private String areaChoice;

private FishingArea fishingArea;

public Fishing (Main s) {
    this.s = s;
}

public void onStart() {
    FishingMenu menu = new FishingMenu();
    menu.setVisible(true);

    started = true;
    startTime = System.currentTimeMillis();//Gets time in milliseconds and stores it in a variable.

    if(menu.exit) {
        s.log("Script aborted. Exiting.");
        s.stop(false);
    }

    shouldBank = menu.shouldBank;
    fishingArea = menu.fishingArea;
    areaChoice = menu.areaChoice;
}

相关FishingMenu代码:

btnStart.addActionListener(new ActionListener() {
        public void actionPerformed(ActionEvent e) {                
            fishingArea = fishingAreas[cmbArea.getSelectedIndex()];
            areaChoice = cmbArea.getSelectedItem().toString();

            shouldBank = chkBank.isSelected();

            exit = false;
            dispose();
        }
    });

我有FishingMenu,用户选择他们的选项,并在第一堂课使用这些选项。我现在处理它的方法是将菜单类中的所有相关变量设置为public,然后在main类中创建变量,并将它们设置为与菜单中的变量相同,如onStart()底部所示。我知道这是一个非常糟糕的做法,但我不确定一个更好的方法。我也不确定是否在第一类(shouldBank,start,...等)中给出前4个变量这样的类是正确的但是我在整个课堂上使用它们再次,我不知道知道更好的方法。对这两个问题的任何建议?

我尝试了一些谷歌搜索,但我不确定如何说出问题。

1 个答案:

答案 0 :(得分:0)

您可以将变量设为私有,并使用setter来设置值。此外,您可以为Menu类创建ValueObjects。另外,我建议您解压缩ActionListener。