Пишу класс со строго типизированными свойствами, значения которых можно передавать в конструктор:
declare(strict_types=1);
class Position
{
protected $hours;
protected $minutes;
protected $seconds;
protected $frames;
public function __construct(int $hours = 0, int $minutes = 0, int $seconds = 0, int $frames = 0)
{
$this->setHours($hours);
$this->setMinutes($minutes);
$this->setSeconds($seconds);
$this->setFrames($frames);
}
public function getHours(): int
{
return $this->hours;
}
public function setHours(int $hours): void
{
$this->hours = $hours;
}
// and so on...
}
1. Правильно ли я делаю, что устанавливаю значения внутри конструктора через сеттеры?
2. Правильно ли будет внутри методов класса получать значения свойств через геттеры?
3. Где прописывать значения по умолчанию для свойств в данном случае - инициализировать ими свойства, или прописывать в значениях по умолчанию для аргументов конструктора (как сделано сейчас), или и там, и там?