簡體   English   中英

如何從一個類到同一包的另一個類訪問一個變量

[英]How to access one variable from one class to another of the same package

我想從具有相同包的另一個Java類不透明對象中的Java類計數中訪問整數變量X [0]。 我想從第一個Java類計算X [0]和從第二個Java類計算O的平均值。 這些類是:

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[]) {

}
}

您的班級count沒有名為X的變量。 您的方法xyz具有一個名為X的局部變量,但這僅在該方法的一次調用期間有效。

也許您應該閱讀更多有關Java基礎的知識?

如果在需要該值的位置調用了xyz則從xyz返回X[0] ,或者將其設為可以直接訪問或通過getter方法訪問的實例變量。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM