A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 744919632 中级黑马   /  2015-11-7 15:28  /  3022 人查看  /  16 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

5黑马币
请完成下面的代码:(思考题)
        我有5个学生,请把这个5个学生的信息存储到数组中,并遍历数组,获取得到每一个学生信息。
       
        学生:Student
                成员变量:name,age
                构造方法:无参,带参
                成员方法:getXxx()/setXxx()
               
        存储学生的数组?自己想想应该是什么样子的?
         Student[] s = {new Student(),new Student()};
int [] arr = {1,3,4}

最佳答案

查看完整内容

package test.game; import java.util.ArrayList; import java.util.List; class Student { private String name; private int age; public Student(){ } public Student(String name, int age) { super(); this.name = name; this.age = age; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } pu ...

16 个回复

倒序浏览
package test.game;

import java.util.ArrayList;
import java.util.List;

class Student {
        private String name;
        private  int age;
       
        public Student(){
               
        }

        public Student(String name, int age) {
                super();
                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 class Print {

        public static void main(String[] args) {
                List<Student> arr = new ArrayList<Student>();
               
               
                arr.add(new Student("张三",22));
                arr.add(new Student("李四",16));
                arr.add(new Student("王五",33));
                arr.add(new Student("赵琦",23));
                arr.add(new Student("刘佳",13));
               
                for(Student s:arr){
                        System.out.println(s);
                }

        }

}
结果:
Student [name=张三, age=22]
Student [name=李四, age=16]
Student [name=王五, age=33]
Student [name=赵琦, age=23]
Student [name=刘佳, age=13]


最好用容器,之后遍历,可以很容器存取数据。
回复 使用道具 举报
遍历学生数组,得到学生对象,调用学生对象的getName和getAge方法打印学生信息;
既然数组中存放的是对象,那为何不考虑使用集合来完成呢;
回复 使用道具 举报
数组中应该存放 指向对象的指针
回复 使用道具 举报
  1. public class Students {

  2.         public static void main(String[] args) {

  3.                 ArrayList<Student> stus=new ArrayList<Student>();//ArrayList集合装对象

  4.                 stus.add(new Student("张三",11));
  5.                 stus.add(new Student("李四",21));
  6.                 stus.add(new Student("王二",18));
  7.                
  8.                 for(Student st:stus)
  9.                 System.out.println(st);
  10.         }

  11. }

  12. class Student{
  13.        
  14.         String name;
  15.         int age;
  16.        
  17.         public Student(String name, int age) {
  18.                 super();
  19.                 this.name = name;
  20.                 this.age = age;
  21.         }
  22.        
  23.         public String getName() {
  24.                 return name;
  25.         }
  26.         public void setName(String name) {
  27.                 this.name = name;
  28.         }
  29.         public int getAge() {
  30.                 return age;
  31.         }
  32.         public void setAge(int age) {
  33.                 this.age = age;
  34.         }
  35.        
  36.         @Override//override toString方法方便输出信息
  37.         public String toString() {
  38.                 return "姓名:"+name+" 年龄:"+age;
  39.         }
  40.        
  41. }
复制代码


回复 使用道具 举报

List<Student> stus=new ArrayList<Student>();
这样比较好
回复 使用道具 举报

for(Student st:stus)
       System.out.println(st);

st是Student类的对象,不是字符串,不能用 System.out.println来打印
回复 使用道具 举报
韦德460 发表于 2015-11-7 21:42
for(Student st:stus)
       System.out.println(st);

一般都是List<Student> stus=new ArrayList<Student>();这样写,那么问题来了,这样写比我上面那样写好在哪里呢?
我重写了Student的toString方法,这样直接打印是可以的。
回复 使用道具 举报
用集合比较好,List<Student> stus=new ArrayList<Student>();
回复 使用道具 举报
许佳鑫 发表于 2015-11-7 21:51
一般都是List stus=new ArrayList();这样写,那么问题来了,这样写比我上面那样写好在哪里呢?
我重写了S ...

我看了一下FilterOutputStream这个类,里面确实有public void println(Object x)这个方法,谢谢你的指点
回复 使用道具 举报
Jared 中级黑马 2015-11-7 22:30:50
11#

Student[] s = {new Student(“zhangsan”,10),new Student("lisi",20),new Student("wangwu",30),new Student("zhaoliu",40),new Student("sunqi",50)};

for(int x=0;x<5;x++){
  System.out.println(s[x].getName()+s[x].getAge())
}
回复 使用道具 举报
Jared 中级黑马 2015-11-7 22:31:52
12#
给个分吧 哥们 急用分的!!
回复 使用道具 举报
韦德460 发表于 2015-11-7 22:22
我看了一下FilterOutputStream这个类,里面确实有public void println(Object x)这个方法,谢谢你的指点 ...

互相学习,我现在在想为什么这样写会比较好?List stus=new ArrayList();   只是感觉比较好,似乎更符合接口编程,可以实现多态更方便。 但终究还是说不清。
回复 使用道具 举报
//创建Students类
class Students
{       
        private String name;
        private int age;
        Students(String name,int age)       
        {
                this.name=name;
                this.age=age;       
        }
        public void set_name(String name)
        {
                this.name=name;
        }
        public String get_name()
        {
                return this.name;
        }
       
        public void set_age(int age)
        {
                this.age=age;
        }
        public int get_age()
        {
                return this.age;
        }
}

//包含主函数的类
public class BianLi {

        public static void main(String[] args)
        {
                //将对象存储到数组中
                Students[] st=new Students[]
                              {new Students("张三",15),new Students("李四",16),new Students("王五",17),
                                                new Students("赵六",18),        new Students("二狗",19)};       
                //遍历数组中的对象
                for(int i=0;i<st.length;i++)
                {               
                        System.out.println("name:\t"+st[i].get_name()+"\tage:"+st[i].get_age());                                                        
                }
        }               
}

结果是:
name:        张三                age:15
name:        李四          age:16
name:        王五                age:17
name:        赵六                age:18
name:        二狗                age:19


回复 使用道具 举报
  1. public class demo1 {
  2.         public static void main(String[] args) {
  3.                 Student []stu=new Student[5];
  4.                 stu[0]=new Student("老大",18);
  5.                 stu[1]=new Student("大二",38);
  6.                 stu[2]=new Student("张三",48);
  7.                 stu[3]=new Student("李四",22);
  8.                 stu[4]=new Student("王五",28);
  9.                 for(int i=0;i<stu.length;i++){
  10.                         System.out.println(stu[i]);
  11.                 }

  12.         }
  13. }
  14. class Student{
  15.         private String name;
  16.         private int age;
  17.         public Student(String name, int age) {
  18.                 super();
  19.                 this.name = name;
  20.                 this.age = age;
  21.         }
  22.         public Student() {
  23.                 super();
  24.         }
  25.         public String getName() {
  26.                 return name;
  27.         }
  28.         public void setName(String name) {
  29.                 this.name = name;
  30.         }
  31.         public int getAge() {
  32.                 return age;
  33.         }
  34.         public void setAge(int age) {
  35.                 this.age = age;
  36.         }
  37.         @Override
  38.         public String toString() {
  39.                 return "Student [name=" + name + ", age=" + age + "]";
  40.         }
  41.        
  42. }
复制代码
回复 使用道具 举报
许佳鑫 发表于 2015-11-7 21:51
一般都是List stus=new ArrayList();这样写,那么问题来了,这样写比我上面那样写好在哪里呢?
我重写了S ...

其实都可以啦。。
回复 使用道具 举报
好吧都看见了好多腻害的
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马