创建具有复数的矩阵

Creating a matrix with complex numbers

我正在尝试在 Java 中创建一个包含复数的矩阵。编译后,程序在每个 v[i][j] 中只记住最后一次读取的真实响应。虚部..我认为这与警告 "The static field Matrix.im(/Matrix.re) should be accessed in a static way" 有关,但我真的不知道这意味着什么..我对 Java 有点陌生,我做错了什么?谢谢! ^-^

import java.util.Scanner;
    public class Matrix {
    public static double im,re;

    public Matrix(double re, double im)
    {
        this.re=re;
        this.im=im;
    }


        public static void main(String[] args)
        {
            int n,m,i,j;
            double x,y;
            Scanner sc=new Scanner(System.in);
            n=sc.nextInt();
            m=sc.nextInt();
            Matrix[][] v= new Matrix[n][m];
            for(i=0;i<n;i++)
                for(j=0;j<m;j++)
                    {
                        x=sc.nextDouble();
                        y=sc.nextDouble();
                        v[i][j]=new Matrix(x,y);
                }
        for(i=0;i<n;i++)
        {
            for(j=0;j<m;j++)
                System.out.print(v[i][j].re+"+i*"+v[i][j].im+" ");
            System.out.println();

        }
    }
}

你的静电场是搬起石头砸自己的脚。改变这个:

public static double im,re;

对此:

public double im,re;

或更好:

private double im,re;

如果 class 是可变的,则使用适当的 getter 和可能的 setter。

请注意,静态字段是 class 而非实例的字段,因此每个 Matrix 实例都将为这些字段保留相同的值 除非你创建实例(非静态)字段。