我试图在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();
}
}
}
答案 0 :(得分:0)
你已经用静电场射击了自己的脚。改变这个:
public static double im,re;
到此:
public double im,re;
或更好:
private double im,re;
如果类是可变的,可以使用适当的getter和可能的setter。
请注意,静态字段是类的字段而不是实例,因此每个Matrix实例将为这些字段保留相同的值,除非您创建实例(非静态)字段。