Java对象数组类型的参数,太难懂了。 50
我真是看了一遍一遍又一遍,看不懂。请逐一帮助我解决问题。第一,对象数组类型,是不是先把类实例化,然后在对象里面声明新的数组,然后把对象里的数组调用到类里面的方法里做参数?...
我真是看了一遍一遍又一遍,看不懂。
请逐一帮助我解决问题。
第一,对象数组类型,是不是先把类实例化,然后在对象里面声明新的数组,然后把对象里的数组调用到类里面的方法里做参数??是不是这么回事?
然后,定义一个数组是这样的:
数组类型[] 数组名=new 数组类型[数组长度]
可是我在代码里看到了这个代码,我看不懂.Student[] stu=new Student[5];
整个代码是这样的:
这是第一个类,这个类里面没有方法,只有属性。
package ch14;
public class Student {
String name;
int java;
int html;
int sql;
double hegiht;
}
这是第二个类,在这个类的方法里有一个数组参数,然后还需要返回一个double值!
package ch14;
public class CalScore {
public double cal(Student[] stus){
double sumD=0;
for(int i=0;i<stus.length;i++){
sumD=sumD+stus[i].hegiht;
}
return sumD/stus.length;
}
}
下面是测试类,我在我看不懂的代码后面加上★然后注明我不懂的地方,麻烦老师详解。谢谢。
package ch14;
import java.util.*;
import ch11.sd; ★为什么要引用这个类?
public class TestCal {
public static void main(String[] args) {
CalScore calScore=new CalScore();
Scanner input=new Scanner(System.in);
Student[] stus=new Student[5]; ★为什么这个数组类型是Student??
for(int i=0;i<stus.length;i++){
stus[i]=new Student(); ★为什么每次循环都需要实例化??
System.out.println("请输入身高");
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
}
System.out.println("平均身高是:"+calScore.cal(stus));
}
}
回答清楚了我再加分。 展开
请逐一帮助我解决问题。
第一,对象数组类型,是不是先把类实例化,然后在对象里面声明新的数组,然后把对象里的数组调用到类里面的方法里做参数??是不是这么回事?
然后,定义一个数组是这样的:
数组类型[] 数组名=new 数组类型[数组长度]
可是我在代码里看到了这个代码,我看不懂.Student[] stu=new Student[5];
整个代码是这样的:
这是第一个类,这个类里面没有方法,只有属性。
package ch14;
public class Student {
String name;
int java;
int html;
int sql;
double hegiht;
}
这是第二个类,在这个类的方法里有一个数组参数,然后还需要返回一个double值!
package ch14;
public class CalScore {
public double cal(Student[] stus){
double sumD=0;
for(int i=0;i<stus.length;i++){
sumD=sumD+stus[i].hegiht;
}
return sumD/stus.length;
}
}
下面是测试类,我在我看不懂的代码后面加上★然后注明我不懂的地方,麻烦老师详解。谢谢。
package ch14;
import java.util.*;
import ch11.sd; ★为什么要引用这个类?
public class TestCal {
public static void main(String[] args) {
CalScore calScore=new CalScore();
Scanner input=new Scanner(System.in);
Student[] stus=new Student[5]; ★为什么这个数组类型是Student??
for(int i=0;i<stus.length;i++){
stus[i]=new Student(); ★为什么每次循环都需要实例化??
System.out.println("请输入身高");
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
}
System.out.println("平均身高是:"+calScore.cal(stus));
}
}
回答清楚了我再加分。 展开
展开全部
package ch14;
import java.util.*;
import ch11.sd; ★为什么要引用这个类?
//这个是多余的,没有必要,估计是引入多了,对运行没有影响的,
public class TestCal {
public static void main(String[] args) {
CalScore calScore=new CalScore();
Scanner input=new Scanner(System.in);
Student[] stus=new Student[5]; ★为什么这个数组类型是Student??
//因为你要生成的是Student类型的数组,此时数组里面每个元素为null
for(int i=0;i<stus.length;i++){
stus[i]=new Student(); ★为什么每次循环都需要实例化??
//java规定,所有对象使用前必须实例化,这里是分配内存给数组第i个元素,然后你就可以对数组元素操作了
System.out.println("请输入身高");
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
//这个是给stus[i]里面的成员变量height赋值,一般不推荐这样写
}
System.out.println("平均身高是:"+calScore.cal(stus));
}
}
import java.util.*;
import ch11.sd; ★为什么要引用这个类?
//这个是多余的,没有必要,估计是引入多了,对运行没有影响的,
public class TestCal {
public static void main(String[] args) {
CalScore calScore=new CalScore();
Scanner input=new Scanner(System.in);
Student[] stus=new Student[5]; ★为什么这个数组类型是Student??
//因为你要生成的是Student类型的数组,此时数组里面每个元素为null
for(int i=0;i<stus.length;i++){
stus[i]=new Student(); ★为什么每次循环都需要实例化??
//java规定,所有对象使用前必须实例化,这里是分配内存给数组第i个元素,然后你就可以对数组元素操作了
System.out.println("请输入身高");
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
//这个是给stus[i]里面的成员变量height赋值,一般不推荐这样写
}
System.out.println("平均身高是:"+calScore.cal(stus));
}
}
展开全部
第一,对象数组,先声明,然后再实例化。
Student[] stu=new Student[5];
这句相当于 Student[] stu; //声明
stu = new Student[5];//实例化
第二:
import ch11.sd; ★为什么要引用这个类? //可能用到这个头文件 如果没用到可以去掉
Student[] stus=new Student[5]; ★为什么这个数组类型是Student
这个数组类型就是Student,表示它是5个Student对象组成。
stus[i]=new Student(); ★为什么每次循环都需要实例化??
每次实例化1个Student对象,和 Student[] stus=new Student[5];效果是一样的
比如 stus[0] 就是1个 Student,里面有Student里的所有成员
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
首先,stus[i]就是一个Student实例,每个Student里都有所有成员。stus[i].hegiht就是这个实例里的hegiht的成员变量。
Student[] stu=new Student[5];
这句相当于 Student[] stu; //声明
stu = new Student[5];//实例化
第二:
import ch11.sd; ★为什么要引用这个类? //可能用到这个头文件 如果没用到可以去掉
Student[] stus=new Student[5]; ★为什么这个数组类型是Student
这个数组类型就是Student,表示它是5个Student对象组成。
stus[i]=new Student(); ★为什么每次循环都需要实例化??
每次实例化1个Student对象,和 Student[] stus=new Student[5];效果是一样的
比如 stus[0] 就是1个 Student,里面有Student里的所有成员
stus[i].hegiht=input.nextDouble(); ★为什么这个数组stus[i]后面调用了height?
首先,stus[i]就是一个Student实例,每个Student里都有所有成员。stus[i].hegiht就是这个实例里的hegiht的成员变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
java中任务任务类都可以说是一个类型。比如说类中的Student,是一个类,也是一种类型。就和String,Integer相同的。
你可以看一下String的源代码,其实也是的一个String.java文件。
数组中初始时第一个都是空,即null.所以需要用到时需要初始化。stus[i]就是初始化。类似于
String i = "aaa".其实是一个意思.
stus[i].hegiht表示把对应里的hegiht的属性复制,其中和String i = "aaa"也是同一个意思。
记住。JAVA中的任何类包括自已定义的类和String, Integer等JAVA自带的类没有区别。同样的处理。
你可以看一下String的源代码,其实也是的一个String.java文件。
数组中初始时第一个都是空,即null.所以需要用到时需要初始化。stus[i]就是初始化。类似于
String i = "aaa".其实是一个意思.
stus[i].hegiht表示把对应里的hegiht的属性复制,其中和String i = "aaa"也是同一个意思。
记住。JAVA中的任何类包括自已定义的类和String, Integer等JAVA自带的类没有区别。同样的处理。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询