在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中找不到符号的主要内容,如果未能解决你的问题,请参考以下文章

java package找不到符号

java 中总是出现找不到符号 是怎么回事

java 中 “找不到符号”的错误

java 枚举 找不到符号

java里显示找不到符号?

java集合的一个程序,总是提示找不到符号,找不到原因在哪?求大神帮助!