一、今日学习内容
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 }
二、遇到的问题
对Java中abstract关键字的作用不明白
三、明日计划
完成相关例题