黑马程序员技术交流社区

标题: 建一个Student类定义些功能方法,再建student类的数组,怎么调用student中的方法呢? [打印本页]

作者: 千曲生    时间: 2014-6-2 21:40
标题: 建一个Student类定义些功能方法,再建student类的数组,怎么调用student中的方法呢?
建好一个类并建立一个同类型的数组,无法调用此数组中的而方法:求大神指导
  1. package day12;

  2. public class Student {
  3.         String name;
  4.         int age;
  5.         public Student(){}
  6.         public void Stu(String name,int age){
  7.                 this.name=name;
  8.                 this.age=age;       
  9.                 System.out.println("name="+name);
  10.                 System.out.println("age="+age);
  11.         }
  12.         public String getName() {
  13.                 return name;
  14.         }
  15.         public void setName(String name) {
  16.                 this.name = name;
  17.         }
  18.         public int getAge() {
  19.                 return age;
  20.         }
  21.         public void setAge(int age) {
  22.                 this.age = age;
  23.         }
  24.          public static void main(String[] args)
  25.          {         
  26.                  Student[] arr=new Student[5];
  27.                   
  28.                  
  29. //                 Student a=new Student("张三",20);
  30. //                 arr[1]=new Student("李四",21);
  31. //                 arr[2]=new Student("王二",22);
  32. //                 arr[3]=new Student("麻子",23);
  33. //                 arr[4]=new Student("小贱",24);
  34.               arr[0].Stu("张三",24);
  35.               arr[1].Stu ("李四",21);
  36.               arr[2].Stu ("王二",22);
  37.                  arr[3].Stu ("麻子",23);
  38.              arr[4].Stu ("小贱",24);                  
  39.                  for (int i = 0; i < arr.length; i++) {
  40.                         System.out.println(arr[i]);
  41.                        
  42.                 }
  43.                  
  44.          }

  45. }
复制代码

作者: Boiled_Water    时间: 2014-6-2 21:53

LZ的构造方法不对,再有就是对数组附值时要用你注释掉的部分,要输入学生对象时,要重写toString()方法,实现对学生对象的属性输出。


public class Student {
        String name;
        int age;
        public Student(){}
//        public void Stu(String name,int age){
//                this.name=name;
//                this.age=age;        
//                System.out.println("name="+name);
//                System.out.println("age="+age);
//        }
        public String getName() {
                return name;
        }
        public Student(String name, int age) {
   super();
   this.name = name;
   this.age = age;
  }
  public void setName(String name) {
                this.name = name;
        }
        public int getAge() {
                return age;
        }
        public void setAge(int age) {
                this.age = age;
        }
        
        @Override
        public String toString() {
   return "name="+this.name+";age="+this.age;
         
        };
         public static void main(String[] args)
         {         
                 Student[] arr=new Student[5];
                  
                 
//                 Student a=new Student("张三",20);
                 arr[0] = new Student("张三",20);
                 arr[1]= new Student("李四",21);
                 arr[2]=new Student("王二",22);
                 arr[3]=new Student("麻子",23);
                 arr[4]=new Student("小贱",24);
//              arr[0].Stu("张三",24);
//              arr[1].Stu ("李四",21);
//              arr[2].Stu ("王二",22);
//                  arr[3].Stu ("麻子",23);
//             arr[4].Stu ("小贱",24);                  
                 for (int i = 0; i < arr.length; i++) {
                        System.out.println(arr[i]);
                        
                }
                 
         }
}


作者: Boiled_Water    时间: 2014-6-2 21:54


  1. public class Student {
  2.         String name;
  3.         int age;
  4.         public Student(){}
  5. //        public void Stu(String name,int age){
  6. //                this.name=name;
  7. //                this.age=age;        
  8. //                System.out.println("name="+name);
  9. //                System.out.println("age="+age);
  10. //        }
  11.         public String getName() {
  12.                 return name;
  13.         }
  14.         public Student(String name, int age) {
  15.                         super();
  16.                         this.name = name;
  17.                         this.age = age;
  18.                 }
  19.                 public void setName(String name) {
  20.                 this.name = name;
  21.         }
  22.         public int getAge() {
  23.                 return age;
  24.         }
  25.         public void setAge(int age) {
  26.                 this.age = age;
  27.         }
  28.         
  29.         @Override
  30.         public String toString() {
  31.                         return "name="+this.name+";age="+this.age;
  32.                
  33.         };
  34.          public static void main(String[] args)
  35.          {         
  36.                  Student[] arr=new Student[5];
  37.                   
  38.                  
  39. //                 Student a=new Student("张三",20);
  40.                  arr[0] = new Student("张三",20);
  41.                  arr[1]= new Student("李四",21);
  42.                  arr[2]=new Student("王二",22);
  43.                  arr[3]=new Student("麻子",23);
  44.                  arr[4]=new Student("小贱",24);
  45. //              arr[0].Stu("张三",24);
  46. //              arr[1].Stu ("李四",21);
  47. //              arr[2].Stu ("王二",22);
  48. //                  arr[3].Stu ("麻子",23);
  49. //             arr[4].Stu ("小贱",24);                  
  50.                  for (int i = 0; i < arr.length; i++) {
  51.                         System.out.println(arr[i]);
  52.                         
  53.                 }
  54.                  
  55.          }

  56. }
复制代码



作者: chenzhiyuan    时间: 2014-6-2 22:09
package 论坛的问题;

public class Student {
        String name;
        int age;

        public Student() {
        }
        //构造方法是这样写的,你那样都没那样干过,用自定义的名字,名字是类的名字,
        public Student(String name, int age) {
                this.name = name;
                this.age = age;

        }

        public String getName() {
                return name;
        }

        public void setName(String name) {
                this.name = name;
        }

        public int getAge() {
                return age;
        }

        public void setAge(int age) {
                this.age = age;
        }

        @Override
        public String toString() {
                return "Student [name=" + name + ", age=" + age + "]";
        }

        public static void main(String[] args) {

                Student[] arr = new Student[5];

                // Student a=new Student("张三",20);
                // arr[1]=new Student("李四",21);
                // arr[2]=new Student("王二",22);
                // arr[3]=new Student("麻子",23);
                // arr[4]=new Student("小贱",24);
                arr[0] = new Student("王3二", 12);
                arr[1] = new Student("王4二", 22);
                arr[2] = new Student("王5二", 32);
                arr[3] = new Student("王e二", 42);
        //        arr[4] = new Student("王e二", 42);

                for (int i = 0; i < arr.length; i++) {
                        if (arr[i] != null) {

                                System.out.println(arr[i].toString());
                        }

                }

        }

}

作者: 多一点    时间: 2014-6-2 22:19
Students[] arr = new Students[5];你这句代码我是这么理解的:
1.建立了一个 Students数组
2.而这个数组里装了Students 类创建的5个对象
3.这5个对象都是null;
Student a=new Student("张三",20);//这里是不可以这样的 你根本就没有这样的构造方法。当然就不能这样来建立对象啦。
  public Students(String name , int age)
    {
        this.name = name;
        this.age = age;
    }
//你的这方法只是把name 和age 传参而已,不是用这两个属性去构造对象。也就是说传进去就相当于 setxxxx方法,只是同时set了两个属性值。
public void Stu(String name, int age)
    {
        this.name = name;
        this.age = age;
        System.out.println("name=" + name);
        System.out.println("age=" + age);

    }

你用数组去装对象,这样对象里的东西就不好拿啦,最好是用集合。













欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2