java封装项目作业

题目要求:
某公司要开发内部的 “办公信息化管理系统”,请使用面向对象的思想描述以下员工信息。


程序整体要求

划分功能模块,根据题目要求设置不同的类,在类中实现相应功能的管理。
类的标识要清楚易懂,代码结构要层次分明,代码编辑思路要清晰、整洁。
要求Java代码书写、命名符合规范,属性所属数据类型要准确合理,在代码中添加必要的注释
程序运行效果与提供的页面效果图、结构保持一致,信息间分隔符“=”号数量不做统一要求,文字大小、颜色也不做统一要求
思路分析:

由场景和运行效果,可以分析出项目中可以抽取如下类(要求编码时注意面向对象思想及封装特性的应用)∶

部门类:

类型描述:能够描述部门编号、部门名称、员工数组、统计部门中的员工个数

要求:设定方法统计该部门员工个数

提示:部门类的属性有四个,分别是部门编号,部门名称,员工数组和统计变量,具体是市场部还是人事部,是通过部门类的对象来表示的,如果是市场部的对象,那么添加并统计的就是市场部的人数,同样如果是人事部的对象,添加并统计的就是人事部的人数

职务类:
类型描述:能够描述职务编号、职务名称

员工类:
类型描述:能够描述员工姓名、工号、年龄、性别、所属部门、职务信息要求:

1、设定方法限定年龄只能是18–65之间,反之则设置默认为18岁
2、设定方法限定性别只能是“男”或者“女”,反之则设置默认为"男"
3、设定方法,实现员工自我介绍信息,将员工信息作为字符串返回

测试类:

类型描述:测试程序,并参照效果图输出结果
注意:可以在属性上添加适当的信息验证,提高信息的安全

department类(部门类):
package CompanyDemo;

public class department {
    private String departmentNo;
    private String departmentName;
    private  employee[] arrEmployee;
    private int EmployeeNum;

    /**
     * 无参构造方法
     */
    public department() {

    }

    /**
     * 带参构造方法
     * @param departmentNo
     * @param departmentName
     */
    public department(String departmentNo, String departmentName) {
        this.setDepartmentNo(departmentNo);
        this.setDepartmentName(departmentName);

    }


    public String getDepartmentNo() {
        return departmentNo;
    }

    public void setDepartmentNo(String departmentNo) {
        this.departmentNo = departmentNo;
    }

    public String getDepartmentName() {
        return departmentName;
    }

    public void setDepartmentName(String departmentName) {
        this.departmentName = departmentName;
    }

    /**
     * 获取部门中员工的人数,如果保存在数组中的未被初始化,就初始化空间为100的数组
     * @return 数组内容
     */
    public employee[] getArrEmployee() {
        if(this.arrEmployee==null){
            this.arrEmployee = new employee[100];
        }
        return arrEmployee;
    }

    public void setArrEmployee(employee[] arrEmployee) {
        this.arrEmployee = arrEmployee;
    }

    public int getEmployeeNum() {
        return EmployeeNum;
    }

    public void setEmployeeNum(int employeeNum) {
        this.EmployeeNum = employeeNum;
    }
    public void addEmployee(employee e){
        /**
         * 1.将员工保存到数组中
         * 2.将员工个数保存到EmployeeNum中
         */
        int i =0;
        for (i=0;i<this.getArrEmployee().length;i++){
            if(this.getArrEmployee()[i]==null){
                this.getArrEmployee()[i]=e;
                break;
            }
        }
        this.EmployeeNum = i+1;
    }

}
post 类(职务类)
package CompanyDemo;

public class post {
    private String postNo;
    private String postName;

    /**
     * 无参构造方法
     */
    public post() {

    }

    /**
     * 带参构造方法
     * @param postNo
     * @param postName
     */
    public post(String postNo, String postName) {
        this.setPostNo(postNo);
        this.setPostName(postName);
    }

    public String getPostNo() {
        return postNo;
    }

    public void setPostNo(String postNo) {
        this.postNo = postNo;
    }

    public String getPostName() {
        return postName;
    }

    public void setPostName(String postName) {
        this.postName = postName;
    }
}
employee类(员工类):
package CompanyDemo;

public class employee {
    private String employeeName;
    private String employeeNo;
    private String employeeSex;
    private int employeeAge;
    private department partEmployee;
    private post employeePost;

    /**
     * 无参构造方法
     *
     */
    public employee(){

    }

    /**
     * 带参构造方法
     *
     */

    public employee(String employeeName, String employeeNo, String employeeSex, int employeeAge, department partEmployee, post employeePost) {
        this.setEmployeeName(employeeName);
        this.setEmployeeNo(employeeNo);
        this.setEmployeeSex(employeeSex);
        this.setEmployeeAge(employeeAge);
        this.setPartEmployee(partEmployee);
        this.setEmployeePost(employeePost);
    }


    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getEmployeeSex() {
        return employeeSex;
    }

    public void setEmployeeSex(String employeeSex) {
        if((employeeSex!="男")&&(employeeSex!="女"))
            this.employeeSex = "男";
        else
            this.employeeSex = employeeSex;
    }

    public int getEmployeeAge() {

        return employeeAge;
    }

    public void setEmployeeAge(int employeeAge) {
        if(employeeAge<18||employeeAge>60)
            this.employeeAge =18;
        this.employeeAge = employeeAge;
    }
    /**
     * 获取专业化对象,如果没有实例化,先实例化再返回
     * @return 员工的部门
     */
    public department getPartEmployee() {
        if(this.partEmployee==null){
            this.partEmployee = new department();
        }
        return partEmployee;
    }

    public void setPartEmployee(department partEmployee) {
        this.partEmployee = partEmployee;
    }

    /**
     * 获取专业化对象,如果没有实例化,先实例化再返回
     * @return  员工的职务
     */
    public post getEmployeePost() {
        if(this.employeePost==null){
            this.employeePost = new post();
        }
        return employeePost;
    }

    public void setEmployeePost(post employeePost) {
        this.employeePost = employeePost;
    }


    public String intro(post p,department dpt){
        String str = "员工信息如下:" +
                "\n姓名:" + this.getEmployeeName()+
                "\n工号:" + this.getEmployeeNo()+
                "\n性别:" + this.getEmployeeSex()+
                "\n年龄:" + this.getEmployeeAge()+
                "\n职务:" + partEmployee.getDepartmentName()+
                employeePost.getPostName();


        return str;
    }
}

CompanyTest类(测试类):

package CompanyDemo;

public class employee {
    private String employeeName;
    private String employeeNo;
    private String employeeSex;
    private int employeeAge;
    private department partEmployee;
    private post employeePost;

    /**
     * 无参构造方法
     *
     */
    public employee(){

    }

    /**
     * 带参构造方法
     *
     */

    public employee(String employeeName, String employeeNo, String employeeSex, int employeeAge, department partEmployee, post employeePost) {
        this.setEmployeeName(employeeName);
        this.setEmployeeNo(employeeNo);
        this.setEmployeeSex(employeeSex);
        this.setEmployeeAge(employeeAge);
        this.setPartEmployee(partEmployee);
        this.setEmployeePost(employeePost);
    }


    public String getEmployeeName() {
        return employeeName;
    }

    public void setEmployeeName(String employeeName) {
        this.employeeName = employeeName;
    }

    public String getEmployeeNo() {
        return employeeNo;
    }

    public void setEmployeeNo(String employeeNo) {
        this.employeeNo = employeeNo;
    }

    public String getEmployeeSex() {
        return employeeSex;
    }

    public void setEmployeeSex(String employeeSex) {
        if((employeeSex!="男")&&(employeeSex!="女"))
            this.employeeSex = "男";
        else
            this.employeeSex = employeeSex;
    }

    public int getEmployeeAge() {

        return employeeAge;
    }

    public void setEmployeeAge(int employeeAge) {
        if(employeeAge<18||employeeAge>60)
            this.employeeAge =18;
        this.employeeAge = employeeAge;
    }
    /**
     * 获取专业化对象,如果没有实例化,先实例化再返回
     * @return 员工的部门
     */
    public department getPartEmployee() {
        if(this.partEmployee==null){
            this.partEmployee = new department();
        }
        return partEmployee;
    }

    public void setPartEmployee(department partEmployee) {
        this.partEmployee = partEmployee;
    }

    /**
     * 获取专业化对象,如果没有实例化,先实例化再返回
     * @return  员工的职务
     */
    public post getEmployeePost() {
        if(this.employeePost==null){
            this.employeePost = new post();
        }
        return employeePost;
    }

    public void setEmployeePost(post employeePost) {
        this.employeePost = employeePost;
    }


    public String intro(post p,department dpt){
        String str = "员工信息如下:" +
                "\n姓名:" + this.getEmployeeName()+
                "\n工号:" + this.getEmployeeNo()+
                "\n性别:" + this.getEmployeeSex()+
                "\n年龄:" + this.getEmployeeAge()+
                "\n职务:" + partEmployee.getDepartmentName()+
                employeePost.getPostName();


        return str;
    }
}

运行截图:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值