Java 算术静态变量错误
**我对你有意见Java 算术静态变量错误,java,Java,**我对你有意见 import java.util.*; import java.math.*; public class Arithmectic { double mealCost; int tipPercent; int taxPercent; public Arithmectic(double inMeal, int inTip, int inTax){ Scanner scan = new Scanner(System.in);
import java.util.*;
import java.math.*;
public class Arithmectic {
double mealCost;
int tipPercent;
int taxPercent;
public Arithmectic(double inMeal, int inTip, int inTax){
Scanner scan = new Scanner(System.in);
inMeal = scan.nextDouble();
mealCost = inMeal;
inTip = scan.nextInt();
tipPercent = inTip;
inTax = scan.nextInt();
taxPercent = inTax;
}
public void printValues(){
System.out.println(mealCost);
System.out.println(tipPercent);
System.out.println(taxPercent);
}
public static void main(String[] args) {
Arithmectic rest = new Arithmectic(mealCost, tipPercent, taxPercent);
}
}
有人能帮我解释一下为什么我会出现这个错误吗?***如果您的
main
在同一个类中(即arithmetic
),那么您正试图访问该类的实例变量,以便将它们传递给该类的构造函数
这毫无意义,而且无论如何也无法完成(您无法从静态上下文访问实例变量)
如果您的构造函数正在从用户输入初始化成员,则不需要从外部获取这些参数
也就是说,在main
中获取用户输入并将其传递给构造函数会更有意义:
Arithmectic rest = new Arithmectic(mealCost, tipPercent, taxPercent);
新算法(mealCost、tipPercent、taxPercent)
您试图传递的这些变量有算术
的类成员,似乎不存在于公共静态main(String[])
的范围内。您可能应该重新设计arithmetic
构造函数,不使用扫描器输入变量,而只分配parametr=>类成员。另一个方法应该实际读取输入,并将读取的值作为参数传递给构造函数。
public Arithmectic(double inMeal, int inTip, int inTax){
mealCost = inMeal;
tipPercent = inTip;
taxPercent = inTax;
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
double inMeal = scan.nextDouble();
int inTip = scan.nextInt();
int inTax = scan.nextInt();
Arithmectic rest = new Arithmectic(inMeal, inTip, inTax);
}