Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/357.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_Reference_Static_Field - Fatal编程技术网

Java 无法对非静态字段值进行静态引用

Java 无法对非静态字段值进行静态引用,java,reference,static,field,Java,Reference,Static,Field,我对编程还不熟悉,我只是在尝试使用数组。我正在制作我想在数组上使用的方法,但是当我试图通过这些方法传递实际数组时,我在标题中得到了错误。我做错了什么 public class ArrayPractice extends Arrays { double[] values = new double[11]; public static void main(String[] args) { //when methods are created run them

我对编程还不熟悉,我只是在尝试使用数组。我正在制作我想在数组上使用的方法,但是当我试图通过这些方法传递实际数组时,我在标题中得到了错误。我做错了什么

public class ArrayPractice extends Arrays
{
    double[] values = new double[11];

    public static void main(String[] args)
    {
        //when methods are created run them each once for the array we created and     then print out the result.
        fillArray(values);
        firstLastSwap(values);
        System.out.println(values);

    }


    public void fillArray(double[] array)
    {
        for(int i=0; i<array.length; i++)
        {
            values[i] = Math.random();
        }
    }

    public void firstLastSwap(double[] array)
    {
        double tempOne = array[0];
        double tempTwo = array[array.length-1];
        for(int i=0; i<array.length; i++)
        {
            if(i == array[0])
            {
                array[i] = tempTwo;
            }
            else if(i == array[array.length-1])
            {
                array[i] = tempOne;
            }
        }
    }

    public void shiftElementsLeft(double[] array)
    {

    }

    public void evenElementsToZero(double[] array)
    {

    }

    public void replaceWithBigNeighbor(double[] array)
    {

    }



}
公共类数组实践扩展数组
{
double[]值=新的double[11];
公共静态void main(字符串[]args)
{
//创建方法时,为我们创建的数组分别运行它们一次,然后打印结果。
填充数组(值);
firstLastSwap(值);
System.out.println(值);
}
公共空填充数组(双[]数组)
{
对于(int i=0;i将关键字“static”放在全局变量前面:

静态双精度[]值=新双精度[11]


Main()是一个静态方法,它只能使用其中定义的静态字段或变量。

选项1。将在
Main()中访问的方法设置为静态。
方法

选项2:在main()方法中创建类的实例,并使用该实例访问非静态方法

ArrayPractice AP = new ArrayPractice();
AP. fillArray(values);

在发帖前搜索旧问题。我做了。我不理解答案。那么你就不会理解这些了。