Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/319.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 算术静态变量错误_Java - Fatal编程技术网

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);
}