我的问题是如何将值添加到另一个类的变量中,例如:
private int balance;
然后在同一个类的方法中,我使用以下方法向天平添加值:
balance += 50;
但是当我去另一个班级,然后输入对象然后是余额的设定者:
myObject.setBalance(50);
但问题出现在这里,当我去第一堂课并从那里返回余额时,我得不到任何东西(或旧的余额值)换句话说,余额的新值没有被添加。有什么想法吗?在过去的几个小时里,我一直被困在这一点
这是我的代码:
public class Zoo
{
private int balance;
public void setBalance(int balance)
{
this.balance = balance;
}
public int getBalance()
{
return this.balance;
}
}
MY SECOND CLASS:
public class RandomEvents
{
private Zoo ZooBalance = new Zoo();
public void callEventSix()
{
System.out.println("A local group has raised money to your Zoo");
System.out.println("Would you like to accept the money? (y) or (n)");
Scanner readerEventThree = new Scanner(System.in);
String readerTwo = readerEventThree.next();
if ( readerTwo.equals("y") )
{
ZooBalance.setBalance(166);
System.out.println("You have accepted the gift");
System.out.println("Your new balance is " + ZooBalance.getBalance());
} else if ( readerTwo.equals("n") )
{
System.out.println("You have refused the gift");
}
}
}
答案 0 :(得分:5)
在你的情况下
替换此行:
ZooBalance.setBalance(166);
使用:
ZooBalance.setBalance(ZooBalance.getBalance() + 166);
Sytem.out.println(ZooBalance.getBalance()); // 166
您需要为该课程制作setter
。假设该类的名称为TestClass
。
class TestClass {
private int balance = 50;
};
public int getBalance() {
return this.balance;
};
public void setBalance(int newBalance) {
this.balance = newBalance;
};
然后在另一个班级:
TestClass test = new TestClass();
test.setBalance(test.getBalance() + 50);
System.out.println(test.getBalance);// 100
答案 1 :(得分:2)
我非常确定将50
添加到某个值并将值设置为50
之间存在差异。
myObject.setBalance(50);
不会添加50
,它会将值更改为50
。要添加50,您必须按照myObject.setBalance(myObject.getBalance() + 50);
答案 2 :(得分:1)
通常有两种方法。
首先。使用getter
和setter
:
Zoo zoo = new Zoo();
zoo.setBalance(zoo.getBalance() + 50);
二。添加adder
方法:
public void addToBalance(int addend) {
balance += addend;
}
Zoo zoo = new Zoo();
zoo.addToBalance(50);