簡體   English   中英

使用getmethods和setmethods作為掃描儀變量輸入

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM