2020.8.22

一、今日学习内容

人、学生、教师系统:

  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关键字的作用。

三、明日计划

  完成相关例题的验证。

原文地址:https://www.cnblogs.com/marr/p/13582878.html