帮看看。。这个怎么改、、
void addStu(String name,int age,String arr[]){Student stu1=new Student();
stu1.setName(name);
stu1.setAge(age);
int i=(arr.length);
stu1.setNum(i);
if(i==99999){
System.out.println("学生人数以到最大,不能再添加了");
}else{
arr[i]=stu1;//这个stu1报错
}
想半天不明白哦、、、为啥那里报错、、
----------------解决方案--------------------------------------------------------
void addStu(String name,int age,Student[] arr){
Student stu1=new Student();
stu1.setName(name);
stu1.setAge(age);
int a;
for(int i ;i<arr.length;i++){
if(arr[i]==null){
a=i;
retunrn a;
}
}
stu1.setNum(i);
if(i==99999){
System.out.println("学生人数以到最大,不能再添加了");
}else{
arr[a]=stu1;
}
好吧。。总算发现了。。这样子就好了、、、
[ 本帖最后由 SUXU19881102 于 2013-2-28 11:20 编辑 ]
----------------解决方案--------------------------------------------------------
虽然说错是不会错了 但是不合理的地方太多
----------------解决方案--------------------------------------------------------
????排版不优美
----------------解决方案--------------------------------------------------------
以下是引用SUXU19881102在2013-2-28 10:56:38的发言:
void addStu(String name,int age,Student[] arr){
Student stu1=new Student();
stu1.setName(name);
stu1.setAge(age);
int a;
for(int i ;i
你这样能实现你要的功能吗?我有些看不懂,我的想法是写一个Student的工厂方法。别把什么东西都放到addStu()里。因为你这样搞来搞去其实就一个 stu1 没有其它的 对象了。void addStu(String name,int age,Student[] arr){
Student stu1=new Student();
stu1.setName(name);
stu1.setAge(age);
int a;
for(int i ;i
[ 本帖最后由 ren829 于 2013-2-28 12:29 编辑 ]
----------------解决方案--------------------------------------------------------
回复 3楼 hhwz
public class test {
public static Student[] arr = new Student[99999];
public static void addStu(String name, int age) {
for (int i = 0; i < arr.length; i++) {
if(arr[arr.length-1]!=null&&i==arr.length-1){
System.out.println("超过最大添加人数");
break;
}
if (arr[i] == null) {
Student stu1 = new Student();
stu1.setName(name);
stu1.setAge(age);
stu1.setNum(i);
arr[i]=stu1;
break;
}
}
}
public static void main(String[] args) {
addStu("123",123);
for(Student stu1 : arr){
if(stu1!=null){
System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
}
}
System.out.println("------------------------------");
addStu("321",321);
for(Student stu1 : arr){
if(stu1!=null){
System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
}
}
addStu("456",456);
}
//你看看这个和楼主的有什么区别
public static Student[] arr = new Student[99999];
public static void addStu(String name, int age) {
for (int i = 0; i < arr.length; i++) {
if(arr[arr.length-1]!=null&&i==arr.length-1){
System.out.println("超过最大添加人数");
break;
}
if (arr[i] == null) {
Student stu1 = new Student();
stu1.setName(name);
stu1.setAge(age);
stu1.setNum(i);
arr[i]=stu1;
break;
}
}
}
public static void main(String[] args) {
addStu("123",123);
for(Student stu1 : arr){
if(stu1!=null){
System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
}
}
System.out.println("------------------------------");
addStu("321",321);
for(Student stu1 : arr){
if(stu1!=null){
System.out.println(stu1.getNum()+"\t"+stu1.getName()+"/t"+stu1.getAge());
}
}
addStu("456",456);
}
//你看看这个和楼主的有什么区别
----------------解决方案--------------------------------------------------------
看的太累。。。
----------------解决方案--------------------------------------------------------
版主的程序也没怎么看懂,不知道这个程序要实现什么目的?望解释。
----------------解决方案--------------------------------------------------------
它的想法只是用一个数组来保存 Student
如果保存的数量超过了数组的最大长度就 输入超过长度,仅此而已
----------------解决方案--------------------------------------------------------
擦,搂住在方法里搞一个new Student()把我搞蒙了。
我一直以为 这个东西要这么写
Test{
Student stu1;
Test(Student stu1()){
this.stu1=stu1;
}
}
构造函数引入一个 Student 引用;Student 类做一个 getStudent(){return new Student();}
----------------解决方案--------------------------------------------------------