一、今日学习内容
人、学生、教师系统:
1、人、学生和教师
设计一个类people,有保护数据成员:age(年龄,整型),name(姓名,string),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setValue(int m, string str)给age和name赋值;有一个void类型的纯虚函数display()。
设计一个学生类student,公有继承类people,有私有成员:studentID(学号,整型),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setID(int m)给studentID赋值;display()函数输出学生的姓名,年龄,学号。
设计一个教师类teacher,公有继承类people,有私有成员:teacherID(工号,整型),行为成员:两个构造函数(一个默认,另一个有参数);默认析构函数;void setID(int m)给teacherID赋值; display()函数输出教师的姓名,年龄,工号。
在main函数定义学生对象和教师对象,给对象初始化赋值或调用setValue()和setID()赋值,并输出学生和老师的信息。
1 //People类:
2 public abstract class People {
3 protected int age;
4 protected String name;
5 People(){}
6 People(int a,String n){
7 age=a;
8 name=n;
9 }
10 public void setValue(int m,String str) {
11 age=m;
12 name=str;
13 }
14 public abstract void display();
15 }
16 //Student类:
17 public class Student extends People {
18 private int studentID;
19 Student(){}
20 Student(int a,String n,int i){
21 super(a,n);
22 studentID=i;
23 }
24 public void setID(int m) {
25 studentID=m;
26 }
27 public void display() {
28 System.out.println("学生:\n"+"姓名:"+name+"\t年龄:"+age+"\t学号:"+studentID);
29 }
30 }
31 //Teacher类:
32 public class Teacher extends People{
33 private int teacherID;
34 Teacher(){}
35 Teacher(int a,String n,int ti){
36 super(a,n);
37 teacherID=ti;
38 }
39 public void setID(int m) {
40 teacherID=m;
41 }
42 public void display() {
43 System.out.println("教师:\n"+"姓名:"+name+"\t年龄:"+age+"\t工号:"+teacherID);
44 }
45 }
46 //Test1类:
47 public class Test1 {
48 public static void main(String[] args) {
49 Student s1=new Student();
50 s1.setValue(18, "李明");
51 s1.setID(10010);
52 s1.display();
53 Teacher t1=new Teacher();
54 t1.setValue(43, "John");
55 t1.setID(20020);
56 t1.display();
57 }
58 }
2、定义猫科动物Animal类,由其派生出猫类(Cat)和豹类(Leopard),在Animal类中定义虚函数,输出“My name is Animal”,在派生类中分别重新定义该函数,显示“My name is **”,其中**为各自类名
1 //Animal类:
2 public abstract class Animal {
3 protected String name;
4 protected int age;
5 public Animal() {}
6 }
7 //Cat类:
8 public class Cat extends Animal {
9 Cat(){}
10 public void display() {
11 System.out.println("My name is Cat");
12 }
13 }
14 //Leopard类:
15 public class Leopard extends Animal {
16 Leopard(){}
17 public void display() {
18 System.out.println("My name is Leopard");
19 }
20 }
21 //Test3类:
22 public class Test3 {
23 public static void main(String[] args) {
24 Cat a=new Cat();
25 Leopard b=new Leopard();
26 a.display();
27 b.display();
28 }
29 }
二、遇到的问题
不清楚abstract关键字的作用。
三、明日计划
完成相关例题的验证。
