当前位置: 代码迷 >> 综合 >> 3、请设计一个函数既能打印学生的基本信息也可以打印老师的基本信息
  详细解决方案

3、请设计一个函数既能打印学生的基本信息也可以打印老师的基本信息

热度:71   发布时间:2024-03-07 09:56:46.0

package com.etime2;

/**
 * 为Student和Teacher父类
 * 
 * 
 * @author 清
 *
 */
public class People {

    private String name;// 姓名
    private int age;// 年龄

    // 构造方法
    public People() {
        super();
    }

    public People(String name, int age) {
        super();
        this.name = name;
        if (JudgeAge(age)) {
            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) {
        if (JudgeAge(age)) {
            this.age = age;
        }
    }

    // 年龄限制方法 x<=150&&x>0
    private boolean JudgeAge(int age) { //此方法只允许本类调用
        boolean b = false;
        if (age <= 0 || age > 150) {
            System.out.println("年龄不合法");
        } else {
            b = true;// 合法
        }
        return b;
    }

}
--------------------------------------------------------------------------------
package com.etime2;

/**
 * People子类
 * 
 * @author 清
 *
 */
public class Student extends People {
    //学生类新增 学号 和 班级 属性
    private int studentID;//学号
    private String grade;//班级
    
    public Student() {
        super();
        // TODO Auto-generated constructor stub
    }

    public Student(int studentID, String grade,String name, int age) {
        super(name,age);
        this.studentID = studentID;
        this.grade = grade;
    }

    public int getStudentID() {
        return studentID;
    }

    public void setStudentID(int studentID) {
        this.studentID = studentID;
    }

    public String getGrade() {
        return grade;
    }

    public void setGrade(String grade) {
        this.grade = grade;
    }
    
    
    
    

    
    
    
    

}
------------------------------------------------------------------------
package com.etime2;
 
/**
 * People类子类
 * @author 清
 *
 */
public class Teacher extends People {
    
    //新增职工号 和 授课科目
    private int employeeNumber;//职工号
    private String Subject;//授课科目
    public Teacher() {
        super();
    }
    public Teacher(int employeeNumber, String subject,String name, int age) {
        super(name,age);
        this.employeeNumber = employeeNumber;
        this.Subject = subject;
    }
    public int getEmployeeNumber() {
        return employeeNumber;
    }
    public void setEmployeeNumber(int employeeNumber) {
        this.employeeNumber = employeeNumber;
    }
    public String getSubject() {
        return Subject;
    }
    public void setSubject(String subject) {
        Subject = subject;
    }
    
    
    
    
    
    

}
----------------------------------------------------------------
package com.etime2;

public class Test01 {

    public static void main(String[] args) {
        Test01 te=new Test01();
        
        Student student=new Student();
        student.setName("张三");
        student.setAge(18);
        student.setGrade("2017级123班");
        student.setStudentID(20179527);
        
        Teacher teacher=new Teacher();
        teacher.setName("李四");
        teacher.setAge(30);
        teacher.setEmployeeNumber(32768);
        teacher.setSubject("体育");
        
        te.printData(teacher);
        System.out.println("--------------------");
        te.printData(student);
    
    }
    
    //判断数据类型并打印数据
    public void printData(People people) {
        if(people instanceof Student) {//与学生类型匹配成功
            System.out.println("姓名:"+people.getName());
            System.out.println("年龄:"+people.getAge());
            System.out.println("学号:"+((Student) people).getStudentID());
            System.out.println("班级:"+((Student) people).getGrade());
        }else if(people instanceof Teacher) {
            System.out.println("姓名:"+people.getName());
            System.out.println("年龄:"+people.getAge());
            System.out.println("学科:"+((Teacher) people).getSubject());
            System.out.println("工号:"+((Teacher) people).getEmployeeNumber());
        }else {
            System.out.println("数据类型未匹配");
        }
        
    }

}
 

  相关解决方案