【发布时间】:2015-01-07 06:46:13
【问题描述】:
我从班级学生那里做了一个数组
student [] stu=new student[100];
我在课堂 student op 中,我想将方法 insert 中的名称和代码插入数组 stu。
到目前为止一切正常,但是当我想从 student op 类中的另一个方法(如 delete)中获取我的姓名和代码时,它显示我的数组 stu是空的。问题出在哪里?如果我删除该行
stu[0]=新学生();
在 delet 方法中 Net beans 显示错误!!
public class studentop {
student [] stu=new student[100];
private int counter=0;
int con=0;
public int edd;
public void insert(int edame){
String ans;
Scanner input=new Scanner(System.in);
for(int i=edame;i<100;i++){
System.out.println("add more student? ");
ans=input.next();
if(ans.equals("y")){
String thename;
stu[i]=new student();
System.out.println("insert name "+(i+1)+" : ");
thename = input.next();
stu[i].setname(thename);
System.out.println("insert code "+(i+1)+" : ");
int thecode;
thecode = input.nextInt();
stu[i].setcode(thecode);
System.out.println(stu[i].getcode());
for(int m=0;m<=3;m++){
System.out.println("add mark "+(m+1)+" ? ");
String ans2;
ans2=input.next();
if(ans2.equals("y")){
switch (m){
case 0:
System.out.println("mark"+(m+1)+" : ");
int mark;
mark=input.nextInt();
stu[i].setmark(mark);
break;
case 1:
System.out.println("mark"+(m+1)+" : ");
// int mark;
mark=input.nextInt();
stu[i].setMark2(mark);
break;
case 2:
System.out.println("mark"+(m+1)+" : ");
// int mark;
mark=input.nextInt();
stu[i].setMark3(mark);
break;
case 3:
System.out.println("mark"+(m+1)+" : ");
// int mark;
mark=input.nextInt();
stu[i].setMark4(mark);
break;
}
}
else{
break;
}
}
System.out.println(stu[i].getname());//aztarighe get name az
}
else {
edame=i;
edd=edame;
break;
}
}//end for
}
public void delete(){
stu[0]=new student();//if I delet this line it shows an error!
System.out.println(stu[0].getcode());
}
}
这是我班的学生
public class student {
public String name;
public int code;
public double mark;
private double mark2;
private double mark3;
private double mark4;
public void setname(String sourcename){
name=sourcename;
}
public String getname(){
return name;
}
【问题讨论】:
-
为什么要双发?
-
你传入insert方法的edame值参数是什么?
-
edame 值显示我们要继续添加学生的位置