在你的代碼,bill
是input
一個局部變量。您不能從input
以外引用該變量。
如果input
和output
是要分開的方法,那麼平常的事情將是使他們實例方法,並創建一個parking
實例使用的方法。這允許您將bill
作爲實例變量(又名「實例字段」)存儲。 (正常班最初封頂,如Parking
,所以我會在這裏這樣做。)
public class Parking {
private double bill;
public Parking() {
this.bill = 0.0;
}
public void input() {
int hoursParked = IO.getInt("(\\(\\ \n(-,-) How many hours were you parked?\no_(\")(\")");
this.bill = hoursParked * 0.5 + 2; // Or perhaps `+=`
}
public void output() {
System.out.println(" Parking");
System.out.println("$2 Fee plus $0.50 every hour!");
System.out.println("\nYour amount owed is $" + this.bill + "0");
}
}
(Java使得參照實例成員時,可選擇使用this.
。我一直主張用它,因爲上面,使明確我們沒有使用一個局部變量,其他衆說紛紜,說這是不必要的,繁瑣。這是一個風格問題。)
使用
Parking p = new Parking();
p.input(args);
p.output();
或者,回報的bill
從input
然後將值將它傳遞到output
:
public class Parking {
public static double input() {
int hoursParked = IO.getInt("(\\(\\ \n(-,-) How many hours were you parked?\no_(\")(\")");
return hoursParked * 0.5 + 2;
}
public static void output(double bill) {
System.out.println(" Parking");
System.out.println("$2 Fee plus $0.50 every hour!");
System.out.println("\nYour amount owed is $" + bill + "0");
}
}
用法:
double bill = parking.input(args);
parking.output(bill);
邊注:由於既不input
也不output
就與args
什麼,我已經刪除它以上。
我在方法輸入中聲明瞭bill,並且需要將它放在SOUT中的輸出方法中。 –
您需要了解變量的範圍。 https://www.cs.umd.edu/~clin/MoreJava/Objects/local.html – kosa
這些只是你的'input'方法中的局部變量。他們不是類變量。如果您想跨方法使用它們,則需要聲明它們。 –