2013-02-23 3 views
0

Это в DFM.javaне может найти символ в 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)); 

Эта часть где йх класса VECT, работал хорошо и код похож на матрицы класса

Может ли кто-нибудь помочь?

+3

Я отлично смотрю на меня. Возможно, объектный файл для 'Algebra.java' устарел (просто попробуйте перекомпилировать его). – Dukeling

+0

Я удивлен, если ваш класс «Алгебра» компилируется успешно! –

+0

Нашел ошибку, я был настолько глуп, я сохранял файл, который я редактировал в другом файле, потому что я собирался сделать пакет, а затем после его изменения и снятия пакета я составлял неправильный файл :) извините и спасибо – user2013777

ответ

1

Похоже подписи get -метода вашего matrix -класса является отсутствие модификатора public:

double get(int i,int j) 

поэтому он имеет «по умолчанию» (пакет) видимость. Измените его на

public double get(int i,int j) 

и он должен работать.

+0

Обнаружена ошибка, я был настолько глуп, я сохранял файл, который я редактировал в другом файле, потому что я собирался сделать пакет, а затем после его изменения и выгрузки пакета я составлял неправильный файл :) извините и спасибо – user2013777

Смежные вопросы