创建具有复数的矩阵

时间:2015-11-27 14:31:26

标签: java matrix complex-numbers

我试图在Java中创建一个复数的矩阵。编译完成后,程序会在每个v [i] [j]中记忆最后一个真实的resp。想象部分。我认为这与警告有关"静态字段Matrix.im(/Matrix.re)应该以静态方式访问",但我不知道是什么这意味着......我是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();

        }
    }
}

1 个答案:

答案 0 :(得分:0)

你已经用静电场射击了自己的脚。改变这个:

public static double im,re;

到此:

public double im,re;

或更好:

private double im,re;

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

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