php——16-面向对象实例(根据工龄发工资)

本文介绍了一个使用PHP编写的工龄工资计算器实例。通过创建Person类和Payoff类,实现了根据不同的工龄自动计算并返回相应的工资。此实例展示了面向对象编程中封装和继承的概念。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

<?php

//根据不同工龄发不同工资的实例。把处理工龄和工资的业务分别写成一个独立的类
class Person
{
    private $work_year = 0;//工龄
    private $salary;//工资属性
    private $payoff;//发工资类

    public function __construct()
    {
        //通过工资和工龄对应关系来计算工资
        $this->payoff = new Payoff();
    }

    /**
     * @return int
     * 工龄
     */
    public function getWorkYear()
    {
        return $this->work_year;
    }

    public function setWorkYear($year = 0)
    {
        $this->work_year = $year;
    }

    /**
     * @return int
     * 获取工资
     */
    public function getSalary()
    {
        //通过发工资类的一个方法来计算工资
        $this->salary = $this->payoff->pay($this);//谁调用获取工资的方法,$this就指向谁

        return $this->salary;
    }
}

//工资和工龄对应关系的类
class Payoff
{
	//将上面的 Person 类定义为 $person
    public function pay(Person $person)
    {
        $salary = 0;
        $year = $person->getWorkYear();

        if ($year <= 1) {
            $salary = 1000;
        } elseif ($year > 1 && $year <= 3) {
            $salary = 2000;
        } elseif ($year > 3) {
            $salary = 5000;
        }

        return $salary;
    }
}

$bob = new Person();
echo '工龄是:' . $bob->getWorkYear(), '年; 工资是:' . $bob->getSalary() . '元<br>';
$bob->setWorkYear(2);
echo '工龄是:' . $bob->getWorkYear(), '年; 工资是:' . $bob->getSalary() . '元<br>';
$bob->setWorkYear(3);
echo '工龄是:' . $bob->getWorkYear(), '年; 工资是:' . $bob->getSalary() . '元<br>';

$tom = new Person();
echo '工龄是:' . $tom->getWorkYear(), '年; 工资是:' . $tom->getSalary() . '元<br>';
$tom->setWorkYear(1);
echo '工龄是:' . $tom->getWorkYear(), '年; 工资是:' . $tom->getSalary() . '元<br>';
$tom->setWorkYear(6);
echo '工龄是:' . $tom->getWorkYear(), '年; 工资是:' . $tom->getSalary() . '元<br>';

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值