Ciao! E grazie della risposta... dunque per ora ho fatto quanto segue, un codice che ha un metodo che calcola le medie e dovrebbe restituirmi la differenza tra esse... peró mi dá errori tipo...
non-static variable this cannot be referenced from a static context
return this.first_time_ave; }
peró se non metto i getter con this.nomevariabile mi crea problemi per variabili non statiche chiamate nella main statica...
Cosa sto sbagliando?
codice:import java.io.BufferedReader; import java.io.FileReader; import java.io.IOException; import java.io.Reader; import java.util.StringTokenizer; public class ReadFileee { /*interval for calculating average, 100ns*/ private boolean first_time_ave=true, second_time_ave=true; private double Sum=0, Ave1=0; boolean first_time = true; private int k=0; public static void main(String[] args) throws IOException { int n=3; int k=0; double sum=0; double T1=0, T2=0; boolean first_time = true; BufferedReader br = null; try{ String line; br = new BufferedReader(new FileReader("prova2.txt")); while ((line = br.readLine()) != null) { StringTokenizer stringTokenizer = new StringTokenizer(line, " "); while (stringTokenizer.hasMoreElements()) { double x = Double.parseDouble(stringTokenizer.nextElement().toString()); double y = Double.parseDouble(stringTokenizer.nextElement().toString()); if (k == 0 && getFirst_time_ave()) T1=x; //fissare il primo elemento x per il primo salto else if (k == 0 && !getFirst_time_ave() && getSecond_time_ave()) T2=x; //fissare ogni volta il primo elemento, secondo salto if(k<n) { sum += y; k++; System.out.println("y = " + y); } //Qui posso chiamare il metodo che legge somma e fa la media? if(k==n) { setSum(sum); if(first_time==true) { Average1(getSum()); first_time = false; } //double DiffInAve = //System.out.println("Difference in Averages is D =" + DiffInAve ); //k=0; else { double DiffInAve = Average2(getSum()); System.out.println("Difference in Averages is D =" + DiffInAve ); } } } } } catch (NumberFormatException e) { System.out.println(e.toString()); } finally { try { if (br != null) br.close(); } catch (IOException ex) { ex.printStackTrace(); } } } public static void Average1(double S) { double ave1=0; ave1=S/3; setAve1(ave1); System.out.println("sum y = " + S); System.out.println("Ave.1 = " + getAve1()); //first_time = false; S=0; //return Ave1; } public static double Average2(double S) { double D=0; double Ave2=0, A=0, K=0; Ave2=S/3; System.out.println("sum y = " + S); System.out.println("Ave.i = " + Ave2); A=getAve1(); A=Ave2; //Ave1=Ave2; D=(A-Ave2); Ave2=0; S=0; K=getK(); K=0; return D; } /*public double Averages() { return this.Averages; }*/ public static boolean getFirst_time_ave() { //this.first_time_ave = first_time_ave; return this.first_time_ave; } public static boolean getSecond_time_ave() { return this.second_time_ave; } public static boolean getFirst_time() { return this.first_time; } public static double getSum() { return this.Sum; } public static double getT1() { return this.T1; } public static double getT2() { return this.T2; } public static double getK() { return this.k; } public static double getAve1() { return this.Ave1; } public static void setSum(double sum) {} public static void setAve1(double ave1) {} }

Rispondi quotando