Java 使用getmethods&;作为扫描仪变量输入;设置方法
我试图创建一个类Java 使用getmethods&;作为扫描仪变量输入;设置方法,java,java.util.scanner,getter-setter,Java,Java.util.scanner,Getter Setter,我试图创建一个类Tax,它使用scanner变量从用户那里获取工资和税率,并使用用户的输入提供税后工资 我得到的错误是set方法不能用于使用scanner变量。请提出解决方案 代码如下: package new_version; import java.util.Scanner; class Tax { private int salary; private double rate; private double posttaxsal; public int
Tax
,它使用scanner变量从用户那里获取工资和税率,并使用用户的输入提供税后工资
我得到的错误是set方法不能用于使用scanner变量。请提出解决方案
代码如下:
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参数,而不是扫描仪
。您应该向它传递一个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());
}
setSalary
需要一个int参数,而不是扫描仪
。您应该向它传递一个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对象。
使用和 工作示例:
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
输入/输出:
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
正如我在前面的评论中提到的,您的函数需要int和double,而不是Scanner对象。
使用和 工作示例:
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
输入/输出:
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
函数所需的是int和double,而不是Scanner对象。使用
Scanner.nextInt()
和Scanner.nextDouble()
。观察:如果我是你,我会使用Double和Integer而不是基元类型。声明默认构造函数也是一种很好的做法。另请参见immutable objects Approach您的函数需要的是int和double,而不是Scanner对象。使用Scanner.nextInt()
和Scanner.nextDouble()
。观察:如果我是你,我会使用Double和Integer而不是基元类型。声明默认构造函数也是一种很好的做法。另请参见不可变对象方法