2016-04-08 17 views
0

同じパッケージの別のJavaクラスのradioquesのjavaクラスカウントから整数変数X [0]にアクセスしたいと思います。最初のJavaクラスからのX [0]と2番目のJavaクラスからのOの平均を計算したいと思います。 クラスは以下のとおりです。同じパッケージのあるクラスから別のクラスに1つの変数にアクセスする方法

package abc; 

import java.io.*; 
import java.util.*; 

public class count { 

public static File f = new File("C:/Users/Prashant/Desktop/OCEAN/f.txt"); 
public static File[] fileList = new File("C:/Users/Prashant/Desktop/OCEAN/Clusters/").listFiles(); 

public int countWord(String word, File file) throws FileNotFoundException { 
    int c = 0; 
    Scanner scanner = new Scanner(file); 
    while (scanner.hasNext()) { 
     String nextToken = scanner.next(); 
     if (nextToken.equalsIgnoreCase(word)) { 
      c++; 
     } 
    } 
    scanner.close(); 
    return c; 
} 

public static void main(String[] args) throws IOException, FileNotFoundException //, NoSuchElementException 
{ 
    count c = new count(); 
    c.xyz(); 
} 

public void xyz() throws IOException, FileNotFoundException //, NoSuchElementException 
{ 
    int res = 0; 
    int X[] = new int[10]; 
    for (int i = 0; i < 10; i++) { 
     Scanner scanner1 = new Scanner(fileList[i]); 
     res = 0; 
     while (scanner1.hasNext()) { 
      String nextToken1 = scanner1.next(); 
      count d = new count(); 
      int s = d.countWord(nextToken1, f); 
      res += s; 
     } 
     System.out.println(res); 
     X[i]=res; 
     File fl = new File("C:/Users/Prashant/Desktop/OCEAN/res.txt"); 
     if (!fl.exists()) { 
      fl.createNewFile(); 
     } 
     FileWriter fw = new FileWriter(fl, true); 
     BufferedWriter bw = new BufferedWriter(fw); 
     //bw.write(res+"\n"); 
     bw.write(fileList[i].getName().toString() + "\t" + res + "\n"); 
     //bw.write(System.getProperty("line.separator")); 
     bw.close(); 
     scanner1.close(); 
    } 
} 
} 

他のクラスには、次のとおりです。

package abc; 

import org.apache.jasper.JasperException; 

public class radioques { 


public void rq(String q[]) throws JasperException, NullPointerException, Exception { 
    int ques[] = new int[44]; 
    int i = 0; 
    for (String s : q) { 
     ques[i] = Integer.parseInt(s.trim()); 
     i++; 
    } 
    int o, c, e, a, n; 
    o = ques[4] + ques[9] + ques[14] + ques[19] + ques[24] + ques[29] + (6 - ques[34]) + ques[39] + (6 - ques[40]) + ques[43]; 
    c = ques[2] + (6 - ques[7]) + ques[12] + (6 - ques[17]) + (6 - ques[22]) + ques[27] + ques[32] + ques[37] + (6 - ques[42]); 
    e = ques[0] + (6 - ques[5]) + ques[10] + ques[15] + (6 - ques[20]) + ques[25] + (6 - ques[30]) + ques[35]; 
    a = (6 - ques[1]) + ques[6] + (6 - ques[11]) + ques[16] + ques[21] + (6 - ques[26]) + ques[31] + (6 - ques[36]) + ques[41]; 
    n = ques[3] + (6 - ques[8]) + ques[13] + ques[18] + (6 - ques[23]) + ques[28] + (6 - ques[33]) + ques[38]; 
    float O = (float) o; 
    O = O/50 * 100; 
    float C = (float) c; 
    C = C/50 * 100; 
    float E = (float) e; 
    E = E/50 * 100; 
    float A = (float) a; 
    A = A/50 * 100; 
    float N = (float) n; 
    N = N/50 * 100; 
    System.out.println(O); 
    System.out.println(C); 
    System.out.println(E); 
    System.out.println(A); 
    System.out.println(N); 



} 

public static void main(String args[]) { 

} 
} 

答えて

0

あなたのクラスcountXという変数を持っていません。あなたのメソッドxyzにはXというローカル変数がありますが、これはメソッドの1回の呼び出しでのみ有効です。

Javaの基本についてもう少し詳しくお読みください。

xyzxyzが呼び出された場合はその値を返すか、直接またはゲッターメソッドを使用してアクセスできるインスタンス変数にします。

関連する問題