我的问题是如何从另一个类向变量添加值,例如:
private int balance;
Run Code Online (Sandbox Code Playgroud)
然后在同一个类的方法中,我使用以下方法向天平添加值没有问题:
balance += 50;
Run Code Online (Sandbox Code Playgroud)
但是当我去另一个类,然后键入对象然后是余额的setter:
myObject.setBalance(50);
Run Code Online (Sandbox Code Playgroud)
但问题出现在这里,当我去第一堂课并从那里返回余额时,我得不到任何东西(或旧的余额值),换句话说,余额的新值没有被添加.有什么想法吗?在过去的几个小时里,我一直被困在这一点上
这是我的代码:
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");
}
}
}
Run Code Online (Sandbox Code Playgroud)
在你的情况下
替换此行:
ZooBalance.setBalance(166);
Run Code Online (Sandbox Code Playgroud)
有:
ZooBalance.setBalance(ZooBalance.getBalance() + 166);
Sytem.out.println(ZooBalance.getBalance()); // 166
Run Code Online (Sandbox Code Playgroud)
你需要setter为那个班级做一个.假设类的名称是TestClass.
class TestClass {
private int balance = 50;
};
public int getBalance() {
return this.balance;
};
public void setBalance(int newBalance) {
this.balance = newBalance;
};
Run Code Online (Sandbox Code Playgroud)
然后在另一个班级:
TestClass test = new TestClass();
test.setBalance(test.getBalance() + 50);
System.out.println(test.getBalance);// 100
Run Code Online (Sandbox Code Playgroud)