Java 访问私有类中的数组

Java 访问私有类中的数组,java,arrays,private,Java,Arrays,Private,我不知道如何访问数组temp,以便将当前数组元素temp[I]与最大销售额(即0)进行比较,以确定哪个更大,每次尝试时,我都无法在步骤8和步骤7中访问temp,我不想更改类的可见性 public class Sales { public static void main(String[] args) { int[] sales; sales = getSales(); printSales(sales); printSum

我不知道如何访问数组temp,以便将当前数组元素temp[I]与最大销售额(即0)进行比较,以确定哪个更大,每次尝试时,我都无法在步骤8和步骤7中访问temp,我不想更改类的可见性

public class Sales {
    public static void main(String[] args) {
        int[] sales;

        sales = getSales();
        printSales(sales);
        printSummary(sales);
    }

    private static int[] getSales() {
        Scanner input = new Scanner(System.in);
        int[] temp;

        System.out.print("Enter the number of salespeople: ");
        temp = new int[input.nextInt()]; // Step 1

        for (int i = 0; i < temp.length; i++) // Step 2
        {
            System.out.print("Enter sales for salesperson " + (i + 1) + ": ");
            temp[i] = input.nextInt(); // Step 3
        }
        return temp; // Step 4
    }

    private static void printSales(int[] s) {
        System.out.println();
        System.out.println("Salesperson   Sales");
        System.out.println("-----------   -----");
        for (int i = 0; i < 5; i++) // Step 5
        {
            System.out.printf("%6d%12d\n", i + 1, s[i]); // Step 6
        }
    }

    private static void printSummary(int[] s) {
        int sum = 0;
        int max_sale = 0; // Salesperson with the most sales
        int min_sale = 0; // Salesperson with the least sales

        for (int i = 0; i < ________; i++) // Step 7
        {
            ____________ // Step 8

        }
        System.out.println();
        System.out.println("Total sales:  " + sum);
        System.out.println("Average sales: " + (double) sum / s.length);
        System.out.println("Salesperson " + (max_sale + 1) + " had the maximum sale with " + s[max_sale]);
        System.out.println("Salesperson " + (min_sale + 1) + " had the minimum sale with " + s[min_sale]);
    }
}
公共类销售{
公共静态void main(字符串[]args){
国际[]销售;
sales=getSales();
印刷销售(销售);
打印摘要(销售);
}
私有静态int[]getSales(){
扫描仪输入=新扫描仪(System.in);
int[]温度;
System.out.print(“输入销售人员人数:”);
temp=new int[input.nextInt()];//步骤1
对于(int i=0;i
temp
是一个局部变量,已在
main
中创建并传递给
printsummmary(int[]s)
方法,因此您可以使用
s
访问它

for (int i = 0; i < s.length; i++) { // STEP 7
    if (s[i] > max_sale) max_sale = s[i]; // STEP 8
    if (s[i] < min_sale) min_sale = s[i];
    sum += s[i];
}
for(inti=0;imax_sale)max_sale=s[i];//步骤8
如果(s[i]
temp
是一个局部变量,已在
main
中创建并传递给
printsummmary(int[]s)
方法,因此您可以使用
s
访问它

for (int i = 0; i < s.length; i++) { // STEP 7
    if (s[i] > max_sale) max_sale = s[i]; // STEP 8
    if (s[i] < min_sale) min_sale = s[i];
    sum += s[i];
}
for(inti=0;imax_sale)max_sale=s[i];//步骤8
如果(s[i]
获取Andrew Tobilko代码并将其更改为将索引保存给具有最高销售价值的人。实现这个替换您的循环将起作用

for (int i = 0; i < s.length; i++) { // STEP 7
    if (s[i] > s[max_sale]) max_sale = i; // STEP 8
    if (s[i] < s[min_sale]) min_sale = i;
    sum += s[i];
}
for(inti=0;is[max\u sale])max\u sale=i;//步骤8
如果(s[i]
获取Andrew Tobilko代码并将其更改为将索引保存给具有最高销售价值的人。实现这个替换您的循环将起作用

for (int i = 0; i < s.length; i++) { // STEP 7
    if (s[i] > s[max_sale]) max_sale = i; // STEP 8
    if (s[i] < s[min_sale]) min_sale = i;
    sum += s[i];
}
for(inti=0;is[max\u sale])max\u sale=i;//步骤8
如果(s[i]
多亏了@andrew,这在第7/8步起作用

int max = 0; 
int min = Integer.MAX_VALUE; 

for (int i= 0; i < s.length; i++) { 
sum += s[i]; 
if (s[i] > max) { 
max_sale = i; 
max = s[i]; 
} 
if (s[i] < min) { 
min_sale = i; 
min = s[i]; 
} 
}
int max=0;
int min=整数最大值;
对于(int i=0;imax{
最大销售额=i;
max=s[i];
} 
如果(s[i]
多亏了@andrew,这在第7/8步起作用

int max = 0; 
int min = Integer.MAX_VALUE; 

for (int i= 0; i < s.length; i++) { 
sum += s[i]; 
if (s[i] > max) { 
max_sale = i; 
max = s[i]; 
} 
if (s[i] < min) { 
min_sale = i; 
min = s[i]; 
} 
}
int max=0;
int min=整数最大值;
对于(int i=0;imax{
最大销售额=i;
max=s[i];
} 
如果(s[i]
您会遇到什么错误,是运行时错误还是构建时错误,您希望更改什么?您需要更具体一些<代码>我无法访问temp非常模糊,在我们试图回答您的问题时对我们没有帮助。您所说的是哪个temp数组?我认为你做这件事的方式看起来不错。你能说得更清楚吗?我还可以建议更好的缩进,它会使你的代码更容易理解。我已经更新了信息你会得到什么错误,是运行时还是构建时,以及你愿意更改什么?你需要更具体一些<代码>我无法访问temp非常模糊,在我们试图回答您的问题时对我们没有帮助。您所说的是哪个temp数组?我认为你做这件事的方式看起来不错。你能说得更清楚吗?我还可以建议更好的缩进,它会让你的代码更容易理解。我已经更新了信息它产生了正确的结果,但线程“main”java.lang.ArrayIndexOutOfBoundsException:1535 at Sales.printSummary(Sales.java:61)at Sales.main中也出现了异常(Sales.java:11)知道为什么吗???@Brent,我保证,这个语句不会抛出任何异常it@Brent,使用
max\u sale
而不是
s[max\u sale]
虽然它确实产生了正确的总销售额和平均销售额,但它会在出现错误后出错线程“main”java.lang.ArrayIndexOutOfBoundsException:300在Sales.printSummary(Sales.java:59)在Sales.main(Sales.java:11)中出现异常“@Brent,
ArrayIndexOutOfBoundsException
意味着您试图获取元素,但该元素不会产生正确的结果,而且在线程“main”java.lang.ArrayIndexOutOfBoundsException:1535 at Sales.printsumption(Sales.java:61)at Sales.main(Sales.java:11)中也会出现异常。”知道为什么吗???@Brent,我保证这句话不会引发任何异常it@Brent,美国