酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

一、试编写以下类(请注意各成员的权限修饰符,请尝试测试各权限修饰符的作用): 1.建包gc,有以下两个类: (1)公共测试类test_inherit,要求: 生成一个教师:张老师,35岁,女,副教授,打印输出其信息;修改职称为“教授”,再输出信息 生成一个学生:张恒,19岁,男,工程技术学院,打印输出其信息;修改school为“湖北工业大学工程技术学院”,并再次输出信息。 (2)父类person:姓名、年龄、性别(思考1:如果不允许将属性设置为public,那么此处设置为何种权限比较合适;思考2:将属性设置成私有的是否合适?)。 方法: ① 构造方法:要求:两个。一个无形参;一个有形参,利用形参为其成员赋值。 ② 设置及获取姓名、年龄、性别的方法。 ③ 方法info():打印输出姓名、年龄、性别的方法。 2.包gc.zg,有类teacher:继承自person,增加私有成员变量“职称”rank。 方法: ① 构造方法:为姓名、年龄、性别、职称赋值。 ② 重写父类方法info:打印输出教师的所有信息,其中姓名、年龄和性别可调用父类的info()方法,体会继承的好处。(思考:该方

以下是使用 Java 实现的代码: ```java package gc; class Person { private String name; private int age; private String gender; // 无参构造方法 public Person() { } // 有参构造方法 public Person(String name, int age, String gender) { this.name = name; this.age = age; this.gender = gender; } public String getName() { return name; } public void setName(String name) { this.name = name; } public int getAge() { return age; } public void setAge(int age) { this.age = age; } public String getGender() { return gender; } public void setGender(String gender) { this.gender = gender; } public void info() { System.out.println("姓名:" + name + ",年龄:" + age + ",性别:" + gender); } } class TestInherit { public static void main(String[] args) { // 创建教师对象 Teacher teacher = new Teacher("张老师", 35, "女", "副教授"); teacher.info(); teacher.setRank("教授"); teacher.info(); // 创建学生对象 Student student = new Student("张恒", 19, "男", "工程技术学院"); student.info(); student.setSchool("湖北工业大学工程技术学院"); student.info(); } } package gc.zg; class Teacher extends Person { private String rank; // 构造方法 public Teacher(String name, int age, String gender, String rank) { super(name, age, gender); this.rank = rank; } public String getRank() { return rank; } public void setRank(String rank) { this.rank = rank; } @Override public void info() { super.info(); System.out.println("职称:" + rank); } } class Student extends Person { private String school; // 构造方法 public Student(String name, int age, String gender, String school) { super(name, age, gender); this.school = school; } public String getSchool() { return school; } public void setSchool(String school) { this.school = school; } @Override public void info() { super.info(); System.out.println("学校:" + school); } } ``` 对于思考 1:如果不允许将属性设置为 `public`,一般设置为 `private` 或者使用 `protected` 。`private` 表示只能在当前类中访问,`protected` 可以在当前类、子类以及同一个包中的其他类访问。 对于思考 2:将属性设置为私有的是合适的,符合封装的原则,可以更好地控制属性的访问和修改,提高代码的安全性和可维护性。通过提供 `get` 和 `set` 方法来控制属性的读写操作。 [2024-10-16 18:40:42 | AI写代码神器 | 745点数解答]

相关提问