[英]Java Object initialization
无法理解如何获取我的对象值。 例如在此代码行中。 我有对象,例如“ 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);
}
}
我想增加例如计数值。
在我之前的代码中,我这样做就像CarMain.main[0] += 1;
现在有了这个代码,我做不到。
不能像CarMain.Money.count +=1;
那样做CarMain.Money.count +=1;
好了,您已经实现了进行计数的正确方法。
基本上,每次调用实例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。
首先,我想指出您的变量名不符合Java Naming Conventions(Java命名约定) ,这对于那些试图帮助您的人来说,使您的代码更难阅读。
接下来,这个问题对我来说并不完全清楚,但是听起来您想创建一个带有按钮的图形用户界面(GUI),该按钮每次单击时都会增加MainHolder
的计数。 我还认为您在如何构建对象的数据模型类型方面会遇到困难,该模型将允许您根据需要存储和修改数据。
让我们从MainHolder
开始,我假设它将成为您的数据模型。 创建数据模型对象的一种常见方法是定义您希望其拥有的private
(请参阅Java教程-控制对类成员的访问 )字段,并为每个字段提供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(模型视图控制器)模式,因为这通常被认为是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
器将调用控制器的addMoney
方法,如下所示:
addMoneyButton.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
controller.addMoney(1);
}
});
希望这能使您朝正确的方向前进,祝您好运!
尝试将count变量声明为public,或为其构建方法
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.