无法理解如何获取我的对象值。例如,在此代码行中。我有对象例如" Money",然后点击按钮我想增加Money计数。
package com.crelix.crelix;
public class MainHolder {
int id;
String name;
int count;
public void id(int id) {
}
public MainHolder(String name) {
}
public void count(int count) {
}
public static void main(String args[]) {
MainHolder Money = new MainHolder("Money: ");
MainHolder MoneyClicks = new MainHolder("Money Clicks: ");
MainHolder Boxes = new MainHolder("Boxes: ");
MainHolder BoxClicks = new MainHolder("Boxes Clicks: ");
MainHolder BoxLevel = new MainHolder("Box Level: ");
MainHolder PlayerLevel = new MainHolder("Player Level: ");
MainHolder GarageLevel = new MainHolder("Garage Level: ");
MainHolder GarageSlots = new MainHolder("Garage Slots: ");
Money.id(1);
Money.count(0);
MoneyClicks.id(2);
MoneyClicks.count(0);
Boxes.id(3);
Boxes.count(0);
BoxClicks.id(4);
BoxClicks.count(0);
BoxLevel.id(5);
BoxLevel.count(1);
PlayerLevel.id(6);
PlayerLevel.count(1);
GarageLevel.id(7);
GarageLevel.count(1);
GarageSlots.id(8);
GarageSlots.count(25);
}
}
我想增加值,例如count。
在我之前的代码中,我这样做是为了CarMain.main[0] += 1;
现在有了这个代码,我无法做到。
并且不能像CarMain.Money.count +=1;
答案 0 :(得分:0)
嗯,你已经实现了正确的计数方法。
基本上,每次调用实例Money.count(1)
时,都可以在count方法中使用以下实现:
// This function will increment the count by the entered count variable.
public void function count(int count){
this.count += count;
}
如果您希望count变量始终加1,那么您不需要count参数。您可以不带任何参数调用该方法,然后在方法中递增1。
答案 1 :(得分:0)
我首先要指出您的变量名称不符合Java Naming Conventions,这使得我们这些试图帮助您的人更难以阅读您的代码。
接下来,问题对我来说并不完全清楚,但听起来你想创建一个带有按钮的图形用户界面(GUI),每次点击它时都会增加MainHolder
的计数。我还认为你坚持如何构建一个数据模型类型的对象,允许你根据需要存储和修改数据。
让我们从MainHolder
开始,我假设它将成为您的数据模型。创建数据模型对象的常用方法是定义您希望它拥有的private
(请参阅Java Tutorial - Controlling Access to Members of a Class)字段,并为每个将公开提供给其他字段的字段提供getter和/或setter方法。类(例如您的GUI)。
public class MainHolder {
private static int nextId = 1;
private int id;
private String name;
private int count;
public MainHolder(String name) {
count = 0;
this.name = name;
id = nextId;
nextId++;
}
public void setCount(int count) {
this.count = count;
}
public int getCount(){
return count;
}
}
您将注意到构造函数如何初始化大多数内部字段,并将对象的id
设置为nextId
,然后将static
nextId
字段增加1 。我认为这是您根据自己的问题和代码寻找的行为类型。
另请注意,提供了一对简单的方法getCount
和setCount
,可以访问count
字段。
现在您可以创建GUI并使用数据模型。我将假设您要遵循MVC (model view controller)模式,因为这通常被认为是GUI应用程序的最佳实践。因此,您可能会在控制器类中创建MainHolder
的实例,然后将控制器传递给GUI实例。控制器将提供业务级方法 - 可能类似于addMoney(int amt)
在控制器内部你会得到类似的东西:
public class Controller{
private MainHolder money;
...
public Controller(){
money = new MainHolder("Money: ");
}
...
public addMoney(int amt){
int amount = money.getCount() + amt;
money.setCount(amount);
}
...
public static void main(String args[]) {
Controller controller = new Controller();
MyGui myGui = new MyGui(controller);
//Invoke appropriate method(s) to show the GUI
...
在你的GUI类中你会有一个附加到你的按钮的监听器,它会调用控制器的addMoney
方法,如下所示:
addMoneyButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
controller.addMoney(1);
}
});
我希望这能让你朝着正确的方向前进,祝你好运!
答案 2 :(得分:-2)
尝试将count变量声明为public,或为其构建方法