public class ArrayCompute
{
ArrayCompute(){
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
};
float aSum(){
float sum = 0.0f;
for (int i=1;i<array.length;i++){ /* array.length 编译出错,不知道为什么
能告诉我原因吗?我想知到怎么得到数组
的长度?前面已经构造它并初始化了啊?
为什么在aSum()这个方法不能用
array.length ??
};
return sum;
};
public static void main()
{
}
}
{
ArrayCompute(){
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
};
float aSum(){
float sum = 0.0f;
for (int i=1;i<array.length;i++){ /* array.length 编译出错,不知道为什么
能告诉我原因吗?我想知到怎么得到数组
的长度?前面已经构造它并初始化了啊?
为什么在aSum()这个方法不能用
array.length ??
};
return sum;
};
public static void main()
{
}
}
去掉试试
作用域是局部的,也就是说变量array只在构造函数ArrayCompute(){}中起作用!
而你使用数组长度的地方却是在方法float aSum(){}里,所以会报错变量未定义!
修改你的程序:
public class ArrayCompute
{
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
ArrayCompute(){
};
float aSum(){
float sum = 0.0f;
for (int i=1;i<array.length;i++){ };
return sum;
}; public static void main()
{
}
}
public class ArrayCompute
{
ArrayCompute(){
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
};
float aSum(int arrLenth){ //求数组元素之和
float sum = 0.0f;
for (int i=1;i<arrLenth;i++){
};
return sum;
};
float aAvg(int arrLenth,float sum){ //求数组元素的平均值
float avg = 0.0f;
avg = sum / arrLenth;
return avg;
};
public static void main(String arg[])
{
int aLen=0; //数组长度
ArrayCompute ArrCom = new ArrayCompute();
aLen = ArrCom.array.length;
}
}// aLen = ArrCom.array.length; 这一句出错了,不知道为什么,能告诉我为什么?以及怎么解决吗? 因为我已经建立一实例对像ArrCom,为什么不能用ArrCom.array.length为得到数据的长度?
};
只是构造函数内部的变量
要把array的声明放在构造函数外部就可以了
public class ArrayCompute
{
float array[]=null; ArrayCompute(){
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
this.array=array;
};
构造函数已经初如始化.
ArrayCompute(){
float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
};
当我通过ArrayCompute这个类来建立一个对像ArrCom时,那个ArrCom也应该有这个float array[] = {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};(是称为成员变量吗?)
既然有了这个成员变量的数组为什么在ArrCom这个对像里不能用?或者应该怎么用呢?小弟初学,且愚钝,望各位大位海函,能告诉怎么回事?想不明白?
public class ArrayCompute
{
float array[];//如此定义,才能用
ArrayCompute(){
float temp[]= {60f,78.8f,92f,87f,58.4f,66f,73f,97f,79f,96f};
array=temp;//注意,数组初始化只能在定义时进行初始化
}
float aSum(int arrLenth){ //求数组元素之和
float sum = 0.0f;
for (int i=0;i<arrLenth;i++){//数组下标应该从0开始
sum+=this.array[i];
};
return sum;
}; float aAvg(int arrLenth,float sum){ //求数组元素的平均值
float avg = 0.0f;
avg = sum / arrLenth;
return avg;
}; public static void main(String arg[])
{
int aLen=0; //数组长度
ArrayCompute ArrCom = new ArrayCompute();
aLen = ArrCom.array.length;
System.out.println(aLen);
}
}