方法getChangeBalance无法从setchangebalance方法获得值,setChangeBalance获取int值并将其保存到Accoumpalance balbalance变量中,但是GetChangeBalance可以从SetChangeBalance接收值。
编辑:checkbalance.java
package atm;
import java.util.Scanner;
public class CheckBalance extends Validation {
Scanner sc = new Scanner(System.in);
public CheckBalance(int i) {
Validation vd = new Validation();
System.out.println("RM" + vd.getchangebalance());
System.out.println("1:menu n2:Exit");
String temp = sc.next();
if (temp.equals("1")) {
Screen sr = new Screen(i);
}
if (temp.equals("2")) {
System.exit(0);
}
}
}
验证。Java
package atm;
public class Validation {
public int[] account = {1231, 1232, 1233, 1234};
public int[] pin = {1231, 1232, 1233, 1234};
private int accountbalance;
public Validation() {
accountbalance = 0;
}
public void setchangebalance(int accountbalance) {
this.accountbalance = accountbalance;
}
public int getchangebalance() {
System.out.print("cuba setchangebalance" + accountbalance);
return this.accountbalance;
}
public void setbalanceminus(int newminus) {
accountbalance -= newminus;
}
public int getbalanceminus() {
return accountbalance;
}
public void setbalanceadd(int newadd) {
accountbalance += newadd;
}
public int getbalanceadd() {
return accountbalance;
}
}
因此,假设GetChangeBalance((将存储在存款或提取后的值,但该值不会更改。
因为CheckBalance
扩展了Validation
,因此您无需在构造函数内部创建此类的实例。因此,您的构造函数应该看起来像这样:
public class CheckBalance extends Validation {
public CheckBalance(int i) {
System.out.println("RM" + getChangeBalance());
...
}
...
}
如果您将在构造函数内部创建一个验证实例,而不是将其分配给任何属性,则在构造函数完成其工作之后将其丢失。
其次,您可以更新验证类,因为您的课程确实使用了4种方法:
public class Validation {
public int[] account = {1231, 1232, 1233, 1234};
public int[] pin = {1231, 1232, 1233, 1234};
private int accountBalance; // because this is a primitive type, default value is 0
public int getAccountBalance () { // get current balance value
System.out.print("cuba setChangeBalance" + accountBalance);
return accountBalance;
}
public void setAccountBalance(int value) { // set balance
this.accountBalance= value;
}
public void minus(int value) { // remove from balance
accountBalance-= value;
}
public void add(int value) { // add to balance
accountBalance+= value;
}
}
我得到了您的印象,您不完全了解获取/设置方法的工作方式,否则您使用的屏幕类有一些无法正常工作的东西。
我建议您在验证类中添加一个简单的主要方法,以便您首先测试和了解该类的行为。
以下是这样一种主要方法的示例(基于Beri给出的验证版本,但随着打印的方式移出了GET方法(
public static void main(String[] args) {
Validation validation = new Validation();
System.out.println("Balance: " + validation.getAccountBalance());
validation.setAccountBalance(100);
System.out.println("Balance: " + validation.getAccountBalance());
validation.minus(25);
System.out.println("Balance: " + validation.getAccountBalance());
validation.add(10);
System.out.println("Balance: " + validation.getAccountBalance());
}