java如何在函数中调用主函数的数组

import java.util.Scanner;

interface getGrade{
public void finGrade();
}

class First implements getGrade{
public void finGrade(){
int sum;
for (int i=0;i<=4;i++)
{
sum=sum+a[i];
}
int num;
num=sum/5;
System.out.println("平均成绩为:"+num);
}
};

class Second implements getGrade{
public void finGrade(){
int j,k,t;
for (j=1;j<5;j++)
for (k=0;k<5-j;k++)
if (a[k]>a[k+1])
{
t=a[k];
a[k]=a[k+1];
a[k+1]=t;
}

a[0]=0;
a[4]=0;
int sun;
for (int i=0;i<=4;i++)
{
sun=sun+a[i];
}

int nun;
nun=sun/3;
System.out.println("平均成绩为:"+nun);
System.out.println("(去掉一个最高分和一个最低分)");
}
};

public class exer4 {
public static void main (String args[]){
System.out.println("请依次输入评委所给的分数");
System.out.println("(默认为五个评委)");
int a[] = new int [5];
Scanner reader = new Scanner(System.in);
int x = reader.nextInt();
int i;
for (i=0;i<=4;i++)
a[i]=x;

First fir=new First();
Second sec=new Second();
fir.finGrade();
sec.finGrade();
}
}

我的代码,求问如何在子函数里调用主函数里的数组,如果有什么错误请指出来,谢谢

import java.util.Scanner;


interface getGrade{
   public void finGrade();
   }

class First implements getGrade{

    int a[];

    public First(){}


    public First(int grade[]){

        a=grade.clone();

    }


     public void finGrade(){
            int sum;
            for (int i=0;i<=4;i++)
              {
                  sum=sum+a[i];
              }
             int num;
             num=sum/5;
             System.out.println("平均成绩为:"+num);
            }
            };

class Second implements getGrade{

     int a[];

    public Second(){}


    public Second(int grade[]){

        a=grade.clone();    

    }


     public void finGrade(){
           int j,k,t;
      for (j=1;j<5;j++)
         for (k=0;k<5-j;k++)
           if (a[k]>a[k+1])
              {
                  t=a[k];
                  a[k]=a[k+1];
                  a[k+1]=t;
               }

             a[0]=0;
             a[4]=0;
             int sun;
             for (int i=0;i<=4;i++)
             {
                 sun=sun+a[i];
             }

             int nun;
             nun=sun/3;
             System.out.println("平均成绩为:"+nun);
             System.out.println("(去掉一个最高分和一个最低分)");
             }
             };

public class exer4 {
   public static void main (String args[]){
      System.out.println("请依次输入评委所给的分数");
      System.out.println("(默认为五个评委)");
      int a[] = new int [5];
      Scanner reader = new Scanner(System.in);
      int x = reader.nextInt();
      int i;
      for (i=0;i<=4;i++)
            a[i]=x;
           
      First fir=new First(a);
      Second sec=new Second(a);
      fir.finGrade();
      sec.finGrade();
  }
}


楼上设置全局变量是个方法,这样进行参数传递也是一种方法。

温馨提示:答案为网友推荐,仅供参考
第1个回答  推荐于2017-09-21
1.0
16.0
3.0
4.0
5.0
测试代码如下:

import javax.swing.JOptionPane;

public class Test {

/**
* @zdz
*/
public static void main(String[] args) {
double aArray[]= new double[]{1,2,3,4,5};
printArray(aArray);

}
public static void printArray(double aArray[])
{
String output="";
aArray[1]=20;
//aArray[]= new double[]{1,2,3,4,5};
aArray[1]=16;
for(int i=0;i<aArray.length;i++)
{output+=String.valueOf(aArray[i])+"\n";}

JOptionPane.showMessageDialog(null,output);
}

}
第2个回答  2014-04-06
public class exer4 {
    public static int a[] = new int [5];
    public static void main (String args[]){
       //跟你原来的一样,把数组声明删掉
   }
 }
 
 
 别的类中:exer4.int[0]=12;类似这样使用

第3个回答  2015-08-12
1、函数的定义
函数就是定义在类中的具有特定功能的一段独立小程序,函数也称为方法。
java中最小的功能单元就是函数。
2、函数的格式
修饰符 返回值类型 函数名(参数类型 形式参数1,参数类型 形式参2)
{
执行语句;
return返回值;
}
返回值类型:函数运行后的结果的数据类型。
参数类型:是形式参数的数据类型。
形式参数:是一个变量,用于存储调用函数时传递给函数的实际参数。
实际参数:传递给形式参数的具体数值。
return:用于结束函数。
返回值:该值会返回给调用者。
3、函数的应用
编写代码就是不断的实现功能,java中最小的功能单元就是函数,所以我们写代码的时候,只要把功能定义在一个独立的函数中,不要把代码都放在主函数里面,主函数的功能就是调用函数,这样就提高了代码的复用。
如何定义一个函数呢?
1,:既然函数时一个独立的功能,那么该功能的运算结果是什么先明确;
2:明确在定义该功能的过程中是否需要未知的内容参与运算;
范例1 需求:计算任意一个 整数乘以3+5 的结果。
1:明确功能的结果是一个整数*3+5的结果;返回值类型为int型。
2:在实现该功能的过程中没有未知内容参与运算;明确函数的参数列表(参数类型和参数的个数)。
public class FunctionDemo {
public static void main(String[] args){
int num = 3;
System.out.println(num*3+5);//输出3*3+5的结果
num = 8;
System.out.println(num*3+5);//输出8*3+5的结果
}
}

// 发现以上的运算因为获取不同数据的运算结果,代码出现了重复。
// 为了提高代码的复用性,对代码进行了抽取,将这个部分定义成一个独立的功能,方便日后使用。
// Java中对功能的定义是通过函数的形式来实现的。
// 需要定义功能,完成一个整数的*3+5的运算,并打印结果。
1,先明确函数定义的格式。
整数*3+5的返回值是个整数,返回值类型为int型。
第4个回答  2014-04-06
你需要先了解参数传递的概念
相似回答