Java 类对象的综合运用

这篇具有很好参考价值的文章主要介绍了Java 类对象的综合运用。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

Java 类对象的综合运用,java,开发语言

 文章来源地址https://www.toymoban.com/news/detail-756573.html

1.Employee.java
package Message;
import java.util.Date;

class Employee {
    private String name;
    private int birthMonth;

    public Employee(String name, int birthMonth) {
        this.name = name;
        this.birthMonth = birthMonth;
    }

    public double getSalary(int month) {
        double salary = 0.0;  // 假设基本工资为5000元
        salary = 5000.0;
        if (birthMonth == month) {
            salary += 100.0;
        }
        return salary;
    }
}

2.SalariedEmployee.java
package Message;

class SalariedEmployee extends Employee {
    private double monthlySalary;

    public SalariedEmployee(String name, int birthMonth, double monthlySalary) {
        super(name, birthMonth);
        this.monthlySalary = monthlySalary;
    }

    public double getMonthlySalary() {
        return monthlySalary;
    }

    public double getSalary(int month) {
        return super.getSalary(month) + monthlySalary;
    }
}

3.HourlyEmployee.java
package Message;
class HourlyEmployee extends Employee {
    private double hourlyWage;
    private int monthlyHoursWorked;
    public HourlyEmployee(String name, int birthMonth, double hourlyWage, int monthlyHoursWorked) {
        super(name, birthMonth);
        this.hourlyWage = hourlyWage;
        this.monthlyHoursWorked = monthlyHoursWorked;
    }
    public double getHourlyWage() {
        return hourlyWage;
    }
    public int getMonthlyHoursWorked() {
        return monthlyHoursWorked;
    }
    public double getSalary(int month) {
        double baseSalary = super.getSalary(month);
        double overtimePay = (monthlyHoursWorked > 160) ? (monthlyHoursWorked - 160) * hourlyWage * 1.5 : 0;
        return (monthlyHoursWorked * hourlyWage) + overtimePay;
    }
}

4.SalesEmployee.java
package Message;
class SalesEmployee extends Employee {
    private double monthlySales;
    private double commissionRate;
    public SalesEmployee(String name, int birthMonth, double monthlySales, double commissionRate) {
        super(name, birthMonth);
        this.monthlySales = monthlySales;
        this.commissionRate = commissionRate;
    }
    public double getSalary(int month) {
        double baseSalary = super.getSalary(month);
        return monthlySales+(monthlySales * commissionRate);
    }
}

5.BasePlusSalesEmployee.java
package Message;
class BasePlusSalesEmployee extends SalesEmployee {
    private double baseSalary;
    public BasePlusSalesEmployee(String name, int birthMonth, double monthlySales, double commissionRate, double baseSalary) {
        super(name, birthMonth, monthlySales, commissionRate);
        this.baseSalary = baseSalary;
    }
    public double getSalary(int month) {
        return super.getSalary(month) + baseSalary;
    }
}

6.TestEmployee.java
package Message;
public class TestEmployee {
    public static void main(String[] args) {
        // 创建不同类型的雇员对象并打印工资
        Employee employee1 = new SalariedEmployee("李华",
                1, 0.0); //假设拿固定工资5000
        Employee employee2 = new HourlyEmployee("李明",
                2, 15.0, 300);  //假设工作了300小时
        Employee employee3 = new SalesEmployee("李红",
                3, 5000.0, 0.5);  //假设销售额为5000,提成率为0.5
        Employee employee4 = new BasePlusSalesEmployee("李四",
                4, 5000.0, 0.5, 5000.0);  //假设销售额为5000,提成率为0.5,底薪为5000
        int month = 1; // 假设查询月份的工资
        System.out.println("该月份是第1月份");
        System.out.println("雇工李华固定工资: " + employee1.getSalary(month));
        System.out.println("雇工李明工作了300小时工资: " + employee2.getSalary(month));
        System.out.println("雇工李红销售额为5000,提成率为0.5,工资: " + employee3.getSalary(month));
        System.out.println("雇工李四销售额为5000,提成率为0.5,底薪为5000,工资: " + employee4.getSalary(month));
    }
}

到了这里,关于Java 类对象的综合运用的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Educoder/头歌JAVA——JAVA面向对象:封装、继承和多态的综合练习

    目录 第1关:封装、继承和多态进阶(一) 相关知识 面向对象思想 封装 继承 组合和继承 构造函数 super()和this() 编程要求 第2关:封装、继承和多态进阶(二) 相关知识 重写和重载 abstract(抽象类)和interface(接口) final static static的作用 多态 编程要求 第

    2024年02月04日
    浏览(53)
  • javaweb实验:Java Web综合应用开发__基于MVC模式

    本实验的目的是让学生掌握Java Web开发的基本原理和方法,以及MVC设计模式的应用。MVC是一种将程序分为三个部分的设计模式,即模型(Model)、视图(View)和控制器(Controller)。模型负责封装数据和业务逻辑,视图负责展示用户界面,控制器负责接收用户请求并调用模型和

    2024年02月06日
    浏览(49)
  • 【Java语言面向对象】(1)面向过程编程

    人机猜拳的第一版(下方是程序源码) 人机猜拳(面向过程版本) 三部分组成 初始化 游戏开始 游戏数据统计 逐步完成,并阶段测试。 面向过程整体的思路:做一件事,分为多个步骤,每个步骤之间是有序的,最后按序完成。 面向过程的优缺点: 优点:符合人类思维,简

    2023年04月09日
    浏览(50)
  • 【JAVA】面向对象的编程语言(继承篇)

    个人主页:【😊个人主页】 系列专栏:【❤️初识JAVA】 在之前的文章中,我们介绍过面向对象的编程语言,今天我们就来就进入到JAVA面对对象的编程世界,今天我们主要来介绍面向对象的编程范式中一个重要的概念——继承。 继承是java面向对象编程技术的一块基石,因为

    2024年02月09日
    浏览(42)
  • java开发中常见的String对象

    String对象加载场内存方式有两种,一种是直接使用“”号创建的加载内存时会会把该字符串直接加载到字符常量中去,并且后文中出现相同使用“”号定义的常量时不会再在内存中创建直接使用第一次创建的字符串,另一种直接使用构造器创建的会创建出一个新的字符串,

    2024年02月11日
    浏览(39)
  • [开发|java] java 比较两个对象的指定属性的值是否相等

    Java中比较两个对象的指定属性的值是否相等,可以使用Apache Commons Lang库中的EqualsBuilder类。EqualsBuilder提供了一种便捷的方法来比较两个对象的属性值是否相等,具体步骤如下: 通过构造器创建一个EqualsBuilder对象。 调用EqualsBuilder对象的append方法,传入需要比较的两个对象以

    2024年02月16日
    浏览(52)
  • Java开发基础系列(十三):集合对象(Set接口)

    😊 @ 作者: 一恍过去 💖 @ 主页: https://blog.csdn.net/zhuocailing3390 🎊 @ 社区: Java技术栈交流 🎉 @ 主题: Java开发基础系列(十三):集合对象(Set接口) ⏱️ @ 创作时间: 2023年07月27日 HashSet: 基于哈希表实现的集合,不保证元素的顺序。 LinkedHashSet: 基于哈希表和双向链表实现的

    2024年02月15日
    浏览(36)
  • [ XJTUSE ]JAVA语言基础知识——第一章 面向对象程序设计思想

    类描述了一组有相同 特性 (属性)和相同 行为 (方法)的对象,类和对象是面向对象思想的两个核心概念 · 人类是一种类,每一个具体的人则是这个类的对象 用面向对象程序来模拟真实世界 发现并创建类 发现类的特征 发现类的行为 在面向对象程序中,对象的特征由各种

    2023年04月13日
    浏览(82)
  • Java面向对象程序开发——网络编程入门知识

    ​ C/S结构 :client/sever是指客户端和服务器结构。常见程序有QQ、迅雷等软件。 B/S结构 :browser/sever是指浏览器和服务器结构。常见浏览器有谷歌、火狐等。 Web应用系统开发的两种流行架构 两种架构各有优势,但是无论哪种架构,都离不开网络的支持。网络编程,就是在一

    2024年02月12日
    浏览(49)
  • BCSP-玄子Java开发之Java Web编程CH02_JSP核心内置对象

    JSP内置对象是 Web 容器创建的一组对象 out对象 request对象 response对象 session对象 application对象 …… 无需实例化,可以直接使用 为什么JSP的内置对象不需要实例化? JSP内置对象是由Web容器初始化并加载的 这些实例按照JSP规范进行了默认的初始化操作,可以直接在JSP中使用 服务

    2024年02月11日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包