在java中找不到符号
Posted
技术标签:
【中文标题】在java中找不到符号【英文标题】:cannot find symbol in java 【发布时间】:2013-02-08 23:54:13 【问题描述】:这是在 DFM.java
这部分在主类中
Algebra.vect dx = new Algebra.vect(new double[] 2.0,3.0,4.0);
Algebra.matrix eij = new Algebra.matrix();
System.out.println(eij.get(1,1));
dx.set(1,4.0);
System.out.println(dx.get(1));
这是在 Algebra.java
class Algebra
public static class vect
double[] v = new double[3];
public vect()
v[0]=v[1]=v[2]=0;
public vect(double[] v)
this.v=v;
int tamanho()
return v.length;
double get(int i)
return v[i];
void set(double[] v)
this.v=v;
void set(int i, double n)
v[i]=n;
void print()
for(int i=0; i < v.length; i = i + 1)
System.out.print(v[i] + " ");
System.out.print("\n");
public static class operacoes
double prodInt(vect v1, vect v2)
return v1.get(0)*v2.get(0)+v1.get(1)*v2.get(1)+v1.get(2)*v2.get(2);
double[] somaVV(vect v1, vect v2)
return new double[] v1.get(0)+v2.get(0), v1.get(1)+v2.get(1), v1.get(2)+v2.get(2) ;
double[] prodMV(matrix m, vect v)
double[] Soma = new double[3];
Soma[0]=Soma[1]=Soma[2]=0;
for(int i=0;i< v.tamanho();i=i+1)
for(int j=0;i< v.tamanho();j=j+1)
Soma[i]=m[i][j]*v[j];
return Soma;
public static class matrix
double[][] m = new double[3][3];
public matrix()
for(int i=0;i< v.tamanho();i=i+1)
for(int j=0;i< v.tamanho();j=j+1)
m[i][j]=0;
public matrix(double[][] m )
this.m=m;
double get(int i,int j)
return m[i][j];
void set(double [][] m)
this.m=m;
void set(int i,int j, double n)
m[i][j]=n;
void print()
for(int i=0;i< v.tamanho();i=i+1)
for(int j=0;i< v.tamanho();j=j+1)
System.out.print(m[i][j] + " ");
System.out.print("\n");
System.out.print("\n");
错误
DFM.java:29: error: cannot find symbol
System.out.println(eij.get(1,1));
^
symbol: method get(int,int)
location: variable eij of type matrix
1 error
但是当我在评论中调用 eij 方法时
dx.set(1,4.0);
System.out.println(dx.get(1));
dx 属于 vect 类的这部分, 效果很好,是代码类似于矩阵类
有人可以帮忙吗?
【问题讨论】:
我看起来很好。可能Algebra.java
的目标文件已过期(只需尝试重新编译它)。
不知道你的Algebra
类是否编译成功!!
发现错误,我太傻了,我正在将我正在编辑的文件保存在另一个文件中,因为我要做一个包,然后在更改它并取出我正在编译的包之后错误的文件:) 抱歉,谢谢
【参考方案1】:
看起来您的matrix
-class 的get
-方法的签名缺少修饰符public
:
double get(int i,int j)
所以它具有“默认”(包)可见性。改成
public double get(int i,int j)
它应该可以工作。
【讨论】:
发现错误,我太傻了,我正在将我正在编辑的文件保存在另一个文件中,因为我要做一个包,然后在更改它并取出我正在编译的包之后错误的文件:) 抱歉,谢谢以上是关于在java中找不到符号的主要内容,如果未能解决你的问题,请参考以下文章