课时67:案例分析二(管理人员与职员)

简介: 今天我分享的是关于 Java 编程中管理人员与职员的案例分析,用于巩固继承概念。主要分为以下三部分。1. 案例需求说明2. 代码实现过程3. 测试纠错与总结

课时67:案例分析二(管理人员与职员)

 

摘要:今天我分享的是关于 Java 编程中管理人员与职员的案例分析,用于巩固继承概念。主要分为以下三部分。

1. 案例需求说明

2. 代码实现过程

3. 测试纠错与总结

 

01. 案例需求说明


本次进行关于管理人员和职员的案例分析。要求定义一个员工类,该员工类应包含姓名、年龄、性别等属性,同时具备构造方法和显示数据的方法。


此外,需定义管理层类和职员类,管理层类要继承员工类,并拥有自身特有的职务和年薪属性;职员类同样继承员工类,其特有的属性为所属部门和月薪。

 

02. 代码实现过程

 

在编写代码时,遵循先专注于父类,暂不考虑子类的原则。对于员工类,确定其包含姓名(name)、年龄(age)和性别属性。在一般开发中,若未对性别类型作特殊要求,使用 Sex 表示性别且采用字符串类型更为实用。


接着编写员工类的构造方法,至少应包含一个无参构造方法,以及一个参数为 Name 、 Age 和 Sex 的有参构造方法,在有参构造方法中,将传入的参数赋值给对应的属性。此外,还需编写一个获取信息的方法GetInfo,在该方法中,将姓名、年龄、性别等信息拼接后返回。员工类的代码如下:

class Employee {
    private String name;
    private int age;
    private String sex;
 
    // 无参构造方法
    public Employee() {
    }
 
    // 有参构造方法
    public Employee(String name, int age, String sex) {
        this.name = name;
        this.age = age;
        this.sex = sex;
    }
 
    // 获取信息方法
    public String getInfo() {
        return "姓名:" + name + ",年龄:" + age + ",性别:" + sex;
    }
}

完成员工类的编写后,开始编写管理层类Manager,该类继承自员工类Employee。管理层类除继承员工类的属性外,还拥有职务(job)和年薪(income)属性。其构造方法的参数包含员工类的参数,以及职务和年薪参数。在构造方法中,先调用父类的构造方法为员工类的属性赋值,再为职务和年薪这两个新属性赋值。


同时,重写获取信息的方法GetInfo,先调用父类的GetInfo方法获取员工类的信息,再拼接职务和年薪的信息后返回。管理层类的代码如下:

class Manager extends Employee {
    private String job;
    private double income;
 
    // 构造方法
    public Manager(String name, int age, String sex, String job, double income) {
        super(name, age, sex);
        this.job = job;
        this.income = income;
    }
 
    // 重写获取信息方法
    @Override
    public String getInfo() {
        return super.getInfo() + ",职务:" + job + ",年薪:" + income;
    }
}

最后编写职员类 Clerk  ,该类同样继承自员工类Employee。职员类拥有所属部门(department)  月薪(salary) 属性。其构造方法和获取信息方法的编写逻辑与管理层类相似,先调用父类构造方法为员工类属性赋值,再为所属部门和月薪这两个新属性赋值;重写获取信息方法,将员工类信息与所属部门、月薪信息拼接后返回。职员类的代码如下:

class Clerk extends Employee {
    private String department;
    private double salary;
 
    // 构造方法
    public Clerk(String name, int age, String sex, String department, double salary) {
        super(name, age, sex);
        this.department = department;
        this.salary = salary;
    }
 
    // 重写获取信息方法
    @Override
    public String getInfo() {
        return super.getInfo() + ",所属部门:" + department + ",月薪:" + salary;
    }
}

 代码编写完成后进行测试。创建一个管理层对象和一个职员对象,并为其赋予相应的值。例如,管理层对象为“张三”, 38 岁,职务为“主管”,年薪 150000 ;职员对象为“李四”, 18 岁,性别为“男”,所属部门为“出纳”,月薪 3000 。然后分别调用它们的GetInfo方法,将信息打印出来。测试代码如下: 

public class Main {
    public static void main(String[] args) {
        Manager manager = new Manager("张三", 38, "", "主管", 150000);
        Clerk clerk = new Clerk("李四", 18, "男", "出纳", 3000);
 
        System.out.println(manager.getInfo());
        System.out.println(clerk.getInfo());
    }
}

  image.png

 

03.测试纠错与总结

 

在编译运行代码时,发现程序出错。经检查,第 32 、 35 行存在问题,原因是缺少Class 关键字。添加该关键字后,又发现创建了两个管理层对象,不符合要求,应一个为管理层对象,一个为职员对象。


修正这些问题后,程序能够正常运行。该案例旨在帮助巩固继承的概念,整体逻辑较为简单。感谢大家的观看!

 

相关文章
|
10月前
|
存储 人工智能 自然语言处理
数势科技指标平台, 让数据产生最大价值
数势科技指标平台, 让数据产生最大价值
|
9月前
|
Java
课时18:Java运算符(逻辑运算符)
课时18介绍了Java中的逻辑运算符(与、或、非)。通过范例详细讲解了非操作的使用,展示了如何正确应用逻辑非(!)。接着分别探讨了与操作(& 和 &&)及或操作(| 和 ||),强调了短路运算符(&& 和 ||)在性能和安全性上的优势。课程通过具体代码示例演示了不同逻辑运算符的效果及其应用场景。
244 5
|
9月前
|
Java
课时10:Java数据类型划分(整型类型)
本文主要围绕Java中整型数据展开,详细讲解整型变量、常量的概念,整型数据运算规则,包括数据溢出问题及解决方法,数据类型转换(自动转换与强制转换)的原理和注意事项,同时介绍了整型数据默认值的相关知识,以及byte数据类型与int数据类型的关系和使用场景,帮助读者全面掌握Java整型数据的相关内容。
235 4
|
10月前
|
机器学习/深度学习 自然语言处理 算法
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
生成式 AI 大语言模型(LLMs)核心算法及源码解析:预训练篇
2645 1
|
Cloud Native Apache 流计算
资料合集|Flink Forward Asia 2024 上海站
Apache Flink 年度技术盛会聚焦“回顾过去,展望未来”,涵盖流式湖仓、流批一体、Data+AI 等八大核心议题,近百家厂商参与,深入探讨前沿技术发展。小松鼠为大家整理了 FFA 2024 演讲 PPT ,可在线阅读和下载。
9074 18
资料合集|Flink Forward Asia 2024 上海站
|
9月前
|
Java
课时50:字符串与字节
今天我分享的是字符串与字节的相关的知识,主要分为以下三部分。 1. 转换目的阐述 2. 相关方法介绍 3. 简单程序示例
170 17
课时50:字符串与字节
|
运维 监控 负载均衡
深入理解无服务器架构:优势与挑战
【10月更文挑战第6天】深入理解无服务器架构:优势与挑战
|
9月前
|
Java
课时65:final关键字
我今天分享的是 Java 中 Final 关键字的相关知识。主要分为以下三个部分。 1. Final锁死继承路 2. Final封印复写门 3. Final打造常量库
101 1
|
9月前
|
Java
课时58:继承问题引出
今天我将围绕 Java 中继承问题展开,主要分为以下三部分。 1. 继承概念简述 2. 传统编程的弊端 3. 继承的必要性
|
9月前
|
Java
课时56:字符串格式化
今天我分享的是 Java 中字符串格式化的相关知识,主要分为以下三个部分。 1. Java 1.5的新特性 2. format方法详解 3. 功能价值剖析
138 4

热门文章

最新文章