[英]Input as a Scanner Variable using getmethods & setmethods
我正在嘗試創建一個Tax
類,該類使用掃描儀變量從用戶那里獲取薪水和稅率,並使用來自用戶的輸入來提供稅后薪水。
我收到的錯誤是無法使用set方法來使用掃描儀變量。 請提出解決方案。
代碼如下:
package new_version;
import java.util.Scanner;
class Tax
{
private int salary;
private double rate;
private double posttaxsal;
public int getSalary()
{
return salary;
}
public double getRate()
{
return rate;
}
public void setSalary(int newSalary)
{
salary = newSalary;
}
public void setRate(double newRate)
{
rate = newRate;
}
public double posttaxsal()
{
posttaxsal = salary - (salary*rate);
return posttaxsal;
}
}
public class Taxusinginput {
public static void main(String[] args) {
Tax test = new Tax();
Scanner s = new Scanner(System.in);
Scanner r = new Scanner(System.in);
test.setSalary(s);
test.setRate(r);
}
}
setSalary
需要int參數,而不是Scanner
。 您應該將一個int
值傳遞給它。
例如 :
test.setSalary(s.nextInt());
setRate
。
除此之外,沒有理由創建兩個Scanner實例。
public static void main(String[] args) {
Tax test = new Tax();
Scanner s = new Scanner(System.in);
test.setSalary(s.nextInt());
test.setRate(s.nextDouble());
}
如我先前的評論中所述,您的函數期望一個int和一個double而不是Scanner對象。
使用Scanner#nextInt()
和Scanner.nextDouble()
。
工作示例:
import java.util.Scanner;
public class Taxusinginput {
public static void main(String[] args) {
Tax test = new Tax();
// Use only one scanner
Scanner sc = new Scanner(System.in);
System.out.print("Enter salary: ");
test.setSalary(sc.nextInt());
System.out.print("Enter rate: ");
test.setRate(sc.nextDouble());
System.out.println("Post-tax salary: " +
test.posttaxsal());
sc.close();
}
}
class Tax {
private int salary;
private double rate;
private double posttaxsal;
public int getSalary() {
return salary;
}
public double getRate() {
return rate;
}
public void setSalary(int newSalary) {
salary = newSalary;
}
public void setRate(double newRate) {
rate = newRate;
}
public double posttaxsal() {
posttaxsal = salary - (salary * rate);
return posttaxsal;
}
}
輸入輸出:
Enter salary: 1000
Enter rate: 0.02
Post-tax salary: 980.0
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.