javaSE中对象数组类型的参数的引用和实例化方法!

1:第1个类:package com.example;
public class Three1 {
//定义身高属性:
public float height=0f;
}
2:第2个类:package com.example;
public class Three2 {
public float height(Three1 [] stu){
float avgHeight=0f;
float all=0f;
int count=0;
for (int i = 0; i < stu.length; i++) {
if (stu[i].height !=0) {
all=all+stu[i].height;
count++;
}
}
avgHeight=all/count;
return avgHeight;
}
}
第3个测试类:import java.util.Scanner;
import com.example.Three1;
import com.example.Three2;
public class ThreeTest {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义包含5个元素的学生对象数组:
Three1 [] arr1=new Three1[5];
Three2 duixiang=new Three2();
Scanner input=new Scanner(System.in);
for (int i = 0; i < arr1.length; i++) {
System.out.println("请输入第"+(i+1)+"名学生的身高:");
arr1[i]=new Three1();//实例化
arr1[i].height=input.nextFloat();

}
//调用方法:
float avg=duixiang.height(arr1);
System.out.println(avg);
}
}
请教各位大侠:第2个类中:stu[i].height 是什么意思,怎么解释?2:测试类中:arr1[i]=new Three1(); 是什么意思,怎么解释?求详细的解答理论!

stu[i].height 循环遍历学生身高数组,很简单啊,你在height方法中传入了stu[]数组。

第二个:既然你都写了注释 实例化,。还不明白?Three1是你定义的第一个类,而这个类中只有一个参数:即身高。在这里,通过循环,将输入的身高,放入身高数组arr[i]中,i=0,存入第一个学生身高;i=2,存入第二个学生升高........循环一次,就实例化Three1一次,产生一个学生身高。
温馨提示:内容为网友见解,仅供参考
第1个回答  2012-07-11
Tree2类中的height方法接受一个Tree对象类型的数组。stu[i].height 表示方法接受的Tree对象数组中的第i个Tree对象。所以stu[i].height 表示的哥Tree对象的height属性。
arr1[i]=new Three1(); 表示arr1数组第i个元素师一个Tree对象
相似回答