メソッドが呼び出されるたびにpolicyNumberが1ずつ増えないのはなぜだろうか。私がそれを実行するとき、私はこれを手に入れます。
追加した各ポリシーを自動的にPolicyNumber++にしようとしています。代わりに、同じ番号を取得しています。代わりに、私が作成するすべての新しいポリシーに同じ値が割り当てられます。
run:
Policy #3 with amount $320.0
Policy #3 with amount $500.14
Policy #3 with amount $0.0
false
私は以前にこの方法を使用しましたが、なぜ今は機能しないのかわかりません。誰かが光を当ててくれませんか。ありがとうございました!
メインクラス
public class Assignment3 {
public static void main(String[] args) {
Policy p1 = new Policy(320);
Policy p2 = new Policy(500.14);
Policy p3 = new Policy(0);
System.out.println(p2.policyNumber);
p1.print(); System.out.println();
p2.print(); System.out.println();
p3.print(); System.out.println();
System.out.println(p1.isExpired());
}
}
ポリシークラス
public class Policy {
double amount;
public int policyCount;
public static int policyNumber;
public Policy(){
amount = 0;
policyCount = 1;
policyNumber=0;
}
public Policy(double a){
amount = a;
policyNumber ++;
}
public boolean isExpired(){
return false;
}
public void print(){
System.out.print("Policy #" + this.policyNumber + " with amount $" + this.amount);
}
}