Задача по ООП (метод)

370
20 июля 2021, 10:00

Задача вся вот: Создать класс Worker, в котором будут следующие private поля - name (имя), age (возраст), salary (зарплата) и public методы setName, getName, setAge, getAge, setSalary, getSalary.

Дополните класс private методом checkAge, который будет проверять возраст на корректность (от 1 до 100 лет). Этот метод должен использовать метод setAge перед установкой нового возраста (если возраст не корректный - он не должен меняться) и возвращать false, при успешном изминении возвращать true.

Создайте 2 объекта этого класса: 'Иван', возраст 25, зарплата 1000 и 'Вася', возраст 26, зарплата 2000.

Выведите на экран сумму зарплат Ивана и Васи. Выведите на экран сумму возрастов Ивана и Васи.

Напишите функцию которая быдет выводить Имя и возраст. Вызовите ее для этих обьектов.

Решал задачу, все решил, кроме последнего

Дополните класс private методом checkAge, который будет проверять возраст на корректность (от 1 до 100 лет). Этот метод должен использовать метод setAge перед установкой нового возраста (если возраст не корректный - он не должен меняться) и возвращать false, при успешном изминении возвращать true.

Есть такой код

<?php
class Worker 
{
    private $name;
    private $age;
    private $salary;
    public function setName($name) {
        $this->name = $name;
    }
    public function getName() {
        return $this->name;
    }
    public function setAge($age) {
        $this->age = $age;
    }
    public function getAge() {
        return $this->age;
    }
    public function setSalary($salary) {
        $this->salary = $salary;
    }
    public function getSalary() {
        return $this->salary;
    }

    public function NameSalary() {  
         printf(
            'Имя: %s, возраст: %s<br>',
            $this->getName(),
            $this->getAge()
        );
    }
}
$ivan = new Worker;
    $ivan->setName('Иван');
    $ivan->setAge(25);
    $ivan->setSalary(1000);
$vasa = new Worker;
    $vasa->setName('Вася');
    $vasa->setAge(26);
    $vasa->setSalary(2000); 
$sumAge = $vasa->getAge() + $ivan->getAge();
$sumSalary = $vasa->getSalary() + $ivan->getSalary();
echo 'Сумма зарплат ' . $sumSalary . '<br>';
echo 'Сумма возрастов ' . $sumAge . '<br>';
$ivan->NameSalary();
$vasa->NameSalary();

подскажите, как реализовать.

За ранее спасибо!

Answer 1

перевод с русского на пхп

//Дополните класс
private 
//методом 
function checkAge
  //, который будет проверять возраст
  ($age){
     //на корректность (от 1 до 100 лет)
     return $age >= 1 && $age <= 100;
}
//Этот метод должен использовать 
//метод
public function setAge($age){
    //перед установкой нового возраста 
    $isValid = $this->checkAge($age);
    //(если возраст не корректный 
    if(!$isValid)
        //- он не должен меняться) и 
        //возвращать
        return false;
    //, при успешном изминении
    $this->age = $age;
    //возвращать true.
    return true;
}

или без комментариев

private function checkAge($age){
    return $age >= 1 && $age <= 100;
}  
public function setAge($age){
    if(!$this->checkAge($age)) return false;
    $this->age = $age;
    return true;
}
READ ALSO
Laravel — как типизировать Illuminate\Support\Collection?

Laravel — как типизировать Illuminate\Support\Collection?

Мне нужно, чтобы мой метод возвращал коллекцию, но коллекция должна иметь только бъекты заданного типа, например, ProductItem

159
Как работают групповые роуты в Laravel?

Как работают групповые роуты в Laravel?

Интересует методика обработки групповых роутов в Laravel:

278
Как обернуть все значки ActionColumn в обертку?

Как обернуть все значки ActionColumn в обертку?

У GridView есть ActionColumn в котором рисуются значки и ссылкиМне нужно, чтобы все ссылки были обёрнуты в div с каким нибудь классом

204
Как отсортировать такой массив?

Как отсортировать такой массив?

Привет есть массив данных, который содержит объектыМассив категории

186