1、设计一个用户类,该类有用户编号、用户名、密码、姓名、性别属性,另外有一个学生类,继承用户类,学生类里有属性专业,具有方法上课,编写程序实现以上过程,并写出测试代码。(50分)
用户类(User):
属性:userID、userName、userPwd、name、sex
学生类(Student):extends User
属性:major
方法:public String goClass()//学生上课方法
测试类(Test):
//查询所有学生名字
public static List getAllUserName(List students){
//补全代码
}
//删除给定用户编号的用户
public static  List removeUserById(List students,String id){
//补全代码
}public static void main(String args[]){//部分代码
Student user1=new Student(*,*,*,*,*,*);
Studentuser2=new Student(*,*,*,*,*,*);
 …………
//把用户加到动态数组中,代码请补全//调用方法public static List getAllUserName(List students),请补全代码
//调用方法public static  List removeUserById(List students,String id),请补全代码}

解决方案 »

  1.   


    先一步一步来,首先建立User类public class User {
    //封装类所有属性全部私有表示
    private String userID,userName,userPwd,name,sex;
    //创建构造
    public User(String userID, String userName, String userPwd, String name, String sex) {
    super();
    this.userID = userID;
    this.userName = userName;
    this.userPwd = userPwd;
    this.name = name;
    this.sex = sex;
    }
    //封装类添加每个属性的set和get方法
    public String getUserID() {
    return userID;
    }
    public void setUserID(String userID) {
    this.userID = userID;
    }
    public String getUserName() {
    return userName;
    }
    public void setUserName(String userName) {
    this.userName = userName;
    }
    public String getUserPwd() {
    return userPwd;
    }
    public void setUserPwd(String userPwd) {
    this.userPwd = userPwd;
    }
    public String getName() {
    return name;
    }
    public void setName(String name) {
    this.name = name;
    }
    public String getSex() {
    return sex;
    }
    public void setSex(String sex) {
    this.sex = sex;
    }}
      

  2.   

    学生类(Student):extends User
    属性:major
    方法:public String goClass()//学生上课方法public class Student extends User {
    //子类追加属性
    private String major;
    //子类的构造
    public Student(String userID, String userName, String userPwd, String name, String sex, String major) {
    super(userID, userName, userPwd, name, sex);
    this.major = major;
    }
    //子类属性的set和get方法,父类属性被子类继承,子类可以直接使用父类的set和get方法来调用,这里不用再次重写
    public String getMajor() {
    return major;
    }
    public void setMajor(String major) {
    this.major = major;
    }
    //子类新增的方法
    public String goClass() {
    return "Internet";
    }
    }
      

  3.   

    student类忘了重写tostring方法,重写tostring 方便直接显示类的内容@Override
    public String toString() {
    return "["+getUserID()+","+getUserName()+","+getUserPwd()+","+getName()+","+getSex()+","+getMajor()+"]";
    }
    test类import java.util.ArrayList;
    import java.util.List;public class test { public static void main(String[] args) {
    // TODO Auto-generated method stub
    List<Student> students=new ArrayList<Student>();
    Student user1=new Student("1", "zhangsan", "123", "zhangsan", "nan", "computer");
    Student user2=new Student("2", "lisi", "123", "lisi", "nan", "computer");
    students.add(user1);
    students.add(user2);
    System.out.println(students);
    System.out.println(getAllUserName(students));
    System.out.println(removeUserById(students, "2"));
    }
    public static List<String> getAllUserName(List<Student> students) {
    //参数类是一个student类的list,返回的是userName的一个String的list
    List<String> list=new ArrayList<String>();
    //历遍students的list把students中的username加入新list中
    students.forEach(x->list.add(x.getName()));
    return list;
    }
    public static List<Student> removeUserById(List<Student> students,String Id){
    //历遍students类的list,如果找到userId与给于的Id相同的话,把该元素remove出list
    for(int i=0;i<students.size();i++) {
    if(students.get(i).getUserID().equals(Id)) {
    students.remove(i);
    }
    }
    return students;
    }
    }