JavaSE基础知识分享(八)

打印 上一主题 下一主题

主题 901|帖子 901|积分 2703

写在前面

前面讲的是java中聚集这部分的内容,今天给各人发一个上期题目参考答案!
Person类:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-07-20:47
  5. */
  6. public abstract class Person {
  7.     private String name;
  8.     private int age;
  9.     private String gender;
  10.     public Person() {
  11.     }
  12.     public Person(String name, int age, String gender) {
  13.         this.name = name;
  14.         this.age = setAge(age);
  15.         this.gender = gender;
  16.     }
  17.     public String getName() {
  18.         return name;
  19.     }
  20.     public void setName(String name) {
  21.         this.name = name;
  22.     }
  23.     public int getAge() {
  24.         return age;
  25.     }
  26.     private int setAge(int age) {
  27.         if (age < 0) {
  28.             System.out.println("年龄输入错误,默认为0");
  29.             return 0;
  30.         }
  31.         return age;
  32.     }
  33.     public String getGender() {
  34.         return gender;
  35.     }
  36.     public void setGender(String gender) {
  37.         this.gender = gender;
  38.     }
  39.     @Override
  40.     public String toString() {
  41.         return "Person{" +
  42.                 "name='" + name + '\'' +
  43.                 ", age=" + age +
  44.                 ", gender='" + gender + '\'' +
  45.                 '}';
  46.     }
  47.     @Override
  48.     protected void finalize() throws Throwable {
  49.         try {
  50.             System.out.println("对象 " + name + " 正在被销毁");
  51.         } finally {
  52.             super.finalize();
  53.         }
  54.     }
  55.     public void increaseAge(int age) {
  56.         if (age > 0 && setAge(this.age) != 0) {
  57.             this.age += age;
  58.         } else {
  59.             System.out.println("你增加的年龄为负数,不能增加!");
  60.         }
  61.     }
  62.     public abstract String speak();
  63. }
复制代码
School类:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-07-21:05
  5. */
  6. public class School {
  7.     public Person[] people;
  8.     public School() {
  9.     }
  10.     public School(int size) {
  11.         people = new Person[size];
  12.     }
  13.     public void print(int index) {
  14.         if (index >= 0 && index < people.length && people[index] != null) {
  15.             System.out.println(people[index].speak());
  16.         } else {
  17.             System.out.println("索引超出范围或对象为空");
  18.         }
  19.     }
  20. }
复制代码
Student类:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-07-20:58
  5. */
  6. public class Student extends Person{
  7.     private String studentId;
  8.     public Student() {
  9.     }
  10.     public Student(String name, int age, String gender, String studentId) {
  11.         super(name, age, gender);
  12.         this.studentId = studentId;
  13.     }
  14.     public String getStudentId() {
  15.         return studentId;
  16.     }
  17.     public void setStudentId(String studentId) {
  18.         this.studentId = studentId;
  19.     }
  20.     @Override
  21.     public String toString() {
  22.         return "Student{" +
  23.                 "name='" + getName() + '\'' +
  24.                 ", age=" + getAge() +
  25.                 ", gender='" + getGender() + '\'' +
  26.                 ", studentId='" + studentId + '\'' +
  27.                 '}';
  28.     }
  29.     @Override
  30.     public String speak() {
  31.         return getName()+"正在学高数!!";
  32.     }
  33. }
复制代码
Teacher类:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-07-21:04
  5. */
  6. public class Teacher extends Person implements Smoking{
  7.     public Teacher() {
  8.     }
  9.     public Teacher(String name, int age, String gender) {
  10.         super(name, age, gender);
  11.     }
  12.     @Override
  13.     public String speak() {
  14.         return getName()+"正在教高数!!";
  15.     }
  16.     @Override
  17.     public void smoking() {
  18.         System.out.println(getName()+"正在吸烟");
  19.     }
  20.     public void preparing(){
  21.         System.out.println(getName()+"正在备课");
  22.     }
  23. }
复制代码
Test类:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-07-21:01
  5. */
  6. public class Test {
  7.     public static void main(String[] args) {
  8. //        Person p4 = new Person("小明",21,"男");
  9. //        System.out.println(p4.toString());
  10. //        Person p4 = new Person("小明", 20, "男");
  11. //        System.out.println(p4.toString());
  12. //        System.out.println("================================");
  13. //        p4.increaseAge(2);
  14. //        System.out.println(p4.toString());
  15. //        Student p1 =new Student("李子杰",23,"男","1001");
  16. //        System.out.println(p1.toString());
  17.         Student p1 =new Student("李子杰",23,"男","1001");
  18.         Student p2 =new Student("尤海涛",22,"男","1002");
  19.         Teacher p3 =new Teacher("黄崇涛",21,"男");
  20.         School s1 = new School(3);
  21.         s1.people[0] = p1;
  22.         s1.people[1] = p2;
  23.         s1.people[2] = p3;
  24.         System.out.println(p1.speak());
  25.         System.out.println(p2.speak());
  26.         System.out.println(p3.speak());
  27.         Teacher t1 = (Teacher)  s1.people[2];
  28.         t1.preparing();
  29. //
  30. //        p3.smoking();
  31.     }
  32. }
复制代码
吸烟接口:
  1. package com.shujia.TiMu_1000.ten2.Ti15;
  2. /**
  3. * @author cjy
  4. * @create 2024-08-08-20:15
  5. */
  6. public interface Smoking {
  7.     abstract void smoking();
  8. }
复制代码
好了,今天的分享就结束了。答案也是仅供参考,不代表最终答案,如果有错误或更简朴的方法,接待在下面留言!!

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

王海鱼

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表