如何从同一项目中的另一个类访问主类中的变量? [复制]

Posted

技术标签:

【中文标题】如何从同一项目中的另一个类访问主类中的变量? [复制]【英文标题】:How do I access variables from the main class from another class in the same project? [duplicate] 【发布时间】:2013-10-25 08:35:44 【问题描述】:

我正在 java 中制作一个 cookie 点击器克隆来练习我的 java 技能,但我有一个小问题,我有在主类中声明的变量,我想从 ActionListener 类访问这些变量。这是来自 ActionListener 类的一些示例代码。 int 变量(例如 clicks、grandamaCost)和 JTextFields(例如 display、cpsDisplay)都在主类中。我想知道如何访问主类中的变量,以便这段代码可以在另一个类中工作。谢谢!

@Override
public void actionPerformed(ActionEvent e) 
    JButton b = (JButton) e.getSource();
    button(b.getText());


/**
 *
 * @param input the label of the buttons being clicked.
 */
public void button(String input) 
    switch (input) 
        case "Cookie":
            clicks++;
            display.setText("Cookies: " + clicks + "");
            cpsDisplay.setText("CPS: " + cps);
            break;
        case "Buy grandma":
            if (clicks >= grandmaCost) 
                grandmas++;
                clicks = clicks - grandmaCost;
                grandmaCost = (int) ((.15 * grandmaCost) + grandmaCost);
                cps++;
            
            display.setText("Cookies: " + clicks + "");
            prices[0].setText("$" + grandmaCost);
            cpsDisplay.setText("CPS: " + cps);
            break;
        case "Buy monkey":
            if (clicks >= monkeyCost) 
                monkeys++;
                clicks = clicks - monkeyCost;
                monkeyCost = (int) ((.15 * monkeyCost) + monkeyCost);
                cps = cps + 2;
            
            display.setText("Cookies: " + clicks + "");
            prices[1].setText("$" + monkeyCost);
            cpsDisplay.setText("CPS: " + cps);
            break;
        case "Buy Teemo":
            if (clicks >= teemoCost) 
                teemos++;
                clicks = clicks - teemoCost;
                teemoCost = (int) ((.15 * teemoCost) + teemoCost);
                cps = cps + 3;
            
            display.setText("Cookies: " + clicks + "");
            prices[2].setText("$" + teemoCost);
            cpsDisplay.setText("CPS: " + cps);
            break;
    

【问题讨论】:

***.com/questions/19416446/… 你已经问过这个问题了。 【参考方案1】:

我实际上并没有通过你的代码,但标准的方法是在你的主类中定义两个私有类变量

private int clicks

然后你定义 setter 和 getter 来设置和获取它们

public int getClicks() 
     return clicks;


public int setClicks(int i) 
      clicks = i;

然后你使用上面的方法获取和设置在任何类之外使用它

【讨论】:

以上是关于如何从同一项目中的另一个类访问主类中的变量? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

如何从同一类中的另一个方法检索最后插入的 id?

如何从同一个类中的另一个构造函数调用抽象类的构造函数(方法重载)[重复]

从同一个类中的另一个方法调用 main 方法

从 Java 中的另一个类访问 berkeley db

如何在Obj C中的另一个类中使用一个类中声明的变量

从 Java Swing 中的另一个类访问 JPanel 变量