java中已,创建员工类(Employee),请在此基础上完成下面代码的编写。要求:定义津贴接口(IAllowance)包含方法,该方法返回值为空类型,显示津贴项和金额,无参数:allowance( )。定义子类,教师类(Teacher),继承自Employee类,实现IAllowance接口。成员变量: 工号(id) 私有String类型职称(title)私有String类型如:讲师、教授月工资(salary)私有double类型教师总数量(amount)私有int类型,表明当前总的教师数量,初始值为0构造方法:采用形参传参的方式,为教师姓名、年龄、职称、月工资初始化。并将教师总数量加1。普通方法:(1)覆盖Object类的equals方法当两个教师的姓名、工号和职称均相等时,认为是两者就是相等的。(2)覆盖Object类中的toString( )方法返回字符串格式如下:姓名:*****,年龄:*****,工号:****,月工资:****(3)实现接口中的方法,显示津贴项目和金额,如“差旅补:660/月”。通过main函数测试。(1)创建两个教师对象t1和t2,其中t1的姓名、年龄、工号、职称和月工资值为“张三”、48、20010101、“副教授”,7432.5;t2的各属性值自拟,分别输出t1和t2;(2)显示教师总人数;(3)将t1的职称改为“教授”;(4)调用equals方法判断两个教师对象是否相等,并输出;(5)输出t1的津贴信息。

时间: 2024-01-17 11:13:03 浏览: 38
下面是代码实现: ``` interface IAllowance { void allowance(); } class Employee { private String name; // 姓名 private int age; // 年龄 private String id; // 工号 private double salary; // 月工资 public Employee(String name, int age, String id, double salary) { this.name = name; this.age = age; this.id = id; this.salary = salary; } public String getName() { return name; } public int getAge() { return age; } public String getId() { return id; } public double getSalary() { return salary; } public void setName(String name) { this.name = name; } public void setAge(int age) { this.age = age; } public void setId(String id) { this.id = id; } public void setSalary(double salary) { this.salary = salary; } } class Teacher extends Employee implements IAllowance { private String title; // 职称 private static int amount = 0; // 教师总数量 public Teacher(String name, int age, String id, double salary, String title) { super(name, age, id, salary); this.title = title; amount++; } public String getTitle() { return title; } public void setTitle(String title) { this.title = title; } @Override public boolean equals(Object obj) { if (obj instanceof Teacher) { Teacher other = (Teacher) obj; if (this.getName().equals(other.getName()) && this.getId().equals(other.getId()) && this.title.equals(other.title)) { return true; } } return false; } @Override public String toString() { return "姓名:" + this.getName() + ",年龄:" + this.getAge() + ",工号:" + this.getId() + ",月工资:" + this.getSalary(); } @Override public void allowance() { System.out.println("差旅补:660/月"); } public static int getAmount() { return amount; } } public class Main { public static void main(String[] args) { Teacher t1 = new Teacher("张三", 48, "20010101", 7432.5, "副教授"); Teacher t2 = new Teacher("李四", 35, "20020101", 6480, "讲师"); System.out.println(t1.toString()); System.out.println(t2.toString()); System.out.println("教师总人数:" + Teacher.getAmount()); t1.setTitle("教授"); System.out.println("修改后的职称为:" + t1.getTitle()); boolean isEqual = t1.equals(t2); System.out.println("t1和t2是否相等:" + isEqual); t1.allowance(); } } ``` 输出结果: ``` 姓名:张三,年龄:48,工号:20010101,月工资:7432.5 姓名:李四,年龄:35,工号:20020101,月工资:6480.0 教师总人数:2 修改后的职称为:教授 t1和t2是否相等:false 差旅补:660/月 ```

相关推荐

在XGS_2.java文件中已,创建员工类(Employee),请在此基础上完成下面代码的编写。 1. 定义津贴接口(IAllowance) 包含方法,该方法返回值为空类型,显示津贴项和金额,无参数:allowance( )。 2. 定义子类,教师类(Teacher),继承自Employee类,实现IAllowance接口。 成员变量: 工号(id) 私有String类型 职称(title) 私有String类型如:讲师、教授 月工资(salary) 私有double类型 教师总数量(amount) 私有int类型,表明当前总的教师数量,初始值为0 构造方法: 采用形参传参的方式,为教师姓名、年龄、职称、月工资初始化。并将教师总数量加1。 普通方法: (1)覆盖Object类的equals方法 当两个教师的姓名、工号和职称均相等时,认为是两者就是相等的。 (2)覆盖Object类中的toString( )方法 返回字符串格式如下:姓名:*****,年龄:*****,工号:****,月工资:**** (3)实现接口中的方法,显示津贴项目和金额,如“差旅补:660/月”。 3. 通过main函数测试。 (1)创建两个教师对象t1和t2,其中t1的姓名、年龄、工号、职称和月工资值为“张三”、48、20010101、“副教授”,7432.5;t2的各属性值自拟,分别输出t1和t2; (2)显示教师总人数; (3)将t1的职称改为“教授”; (4)调用equals方法判断两个教师对象是否相等,并输出; (5)输出t1的津贴信息。

最新推荐

recommend-type

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板

六首页数字藏品NFT交易网React NextJS网站模板 六首页数字藏品nft交易网反应NextJS网站模板
recommend-type

wireshark安装教程入门

wireshark安装教程入门
recommend-type

基于C++负数据库的隐私保护在线医疗诊断系统

【作品名称】:基于C++负数据库的隐私保护在线医疗诊断系统 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。 【项目介绍】: 基于负数据库的隐私保护在线医疗诊断系统 NDBMedicalSystem 客户端及服务器端 本项目是在保护用户隐私的前提下,完成了对新冠肺炎、乳腺癌、眼疾等多种疾病的智能诊断。
recommend-type

基本的嵌入式操作系统给

任务管理
recommend-type

3-10.py

3-10
recommend-type

zigbee-cluster-library-specification

最新的zigbee-cluster-library-specification说明文档。
recommend-type

管理建模和仿真的文件

管理Boualem Benatallah引用此版本:布阿利姆·贝纳塔拉。管理建模和仿真。约瑟夫-傅立叶大学-格勒诺布尔第一大学,1996年。法语。NNT:电话:00345357HAL ID:电话:00345357https://theses.hal.science/tel-003453572008年12月9日提交HAL是一个多学科的开放存取档案馆,用于存放和传播科学研究论文,无论它们是否被公开。论文可以来自法国或国外的教学和研究机构,也可以来自公共或私人研究中心。L’archive ouverte pluridisciplinaire
recommend-type

实现实时数据湖架构:Kafka与Hive集成

![实现实时数据湖架构:Kafka与Hive集成](https://img-blog.csdnimg.cn/img_convert/10eb2e6972b3b6086286fc64c0b3ee41.jpeg) # 1. 实时数据湖架构概述** 实时数据湖是一种现代数据管理架构,它允许企业以低延迟的方式收集、存储和处理大量数据。与传统数据仓库不同,实时数据湖不依赖于预先定义的模式,而是采用灵活的架构,可以处理各种数据类型和格式。这种架构为企业提供了以下优势: - **实时洞察:**实时数据湖允许企业访问最新的数据,从而做出更明智的决策。 - **数据民主化:**实时数据湖使各种利益相关者都可
recommend-type

2. 通过python绘制y=e-xsin(2πx)图像

可以使用matplotlib库来绘制这个函数的图像。以下是一段示例代码: ```python import numpy as np import matplotlib.pyplot as plt def func(x): return np.exp(-x) * np.sin(2 * np.pi * x) x = np.linspace(0, 5, 500) y = func(x) plt.plot(x, y) plt.xlabel('x') plt.ylabel('y') plt.title('y = e^{-x} sin(2πx)') plt.show() ``` 运行这段
recommend-type

JSBSim Reference Manual

JSBSim参考手册,其中包含JSBSim简介,JSBSim配置文件xml的编写语法,编程手册以及一些应用实例等。其中有部分内容还没有写完,估计有生之年很难看到完整版了,但是内容还是很有参考价值的。