Что ж, здесь есть кое-что, но вы знаете, что вам нужны свойства $age
и $color
и способы чтения этих свойств. Скорее всего, вы не хотите быть в состоянии написать их, хотя.
Итак, я бы, наверное, имел:
getAge(){ return $this->age; }
getColor(){ return $this->color; }
Теперь вы хотите назначить цвет и возраст случайным образом, что означает, что вам нужна функция rand
(есть и другие варианты, но rand поможет вам) Теперь, если бы я сделал это, я бы поместил что-то вроде этого в конструктор:
// assuming we're testing for male or female
// you really should look into why this works.
$this->gender = ( rand( 0, 1 ) )? self::MALE: self::FEMALE;
// notice the self::MALE and self::FEMALE? Those are class constants.
// http://php.net/manual/en/language.oop5.constants.php
// if you want to get this question *right* you'll need to look at those
Ваши машины на самом деле довольно простые. Они только проверяют, является ли каждая овца достаточно взрослой для того, чтобы ее обрезать, и затем увеличивают счетчик, основываясь на этом.
// assuming they are looking for a count of female sheep
// and state variables 'male' and 'female' which are initialized at 0
function processSheep( $sheep )
{
foreach( $sheep as $test )// stupid self-pluralizing nouns.
{
if( $sheep->getGender() == Sheep::MALE ) $this->males++;
else $this->females++; // obviously, you're going to need to swap
// out one of these increments for an echo.
}
}
function getNumberOfMales(){ return $this->males; }
С двумя машинами, чтобы рассчитать количество мужчин:
$mach1->getNumberOfMales() + $mach2->getNumberOfMales();
С массивом из n машин число мужчин:
$males = 0;
foreach( $machs as $mach ){ $males += $mach->getNumberOfMales(); }