Olá, Leonardo. Tudo bem?
Boa observação.
No seu código, os métodos nome() e genero() estão definidos para retornar um int, mas os atributos correspondentes são do tipo string. Isso pode causar problemas, pois o tipo de retorno dos métodos não coincide com o tipo dos atributos.
Aqui está uma sugestão de como você pode ajustar o código para que ele funcione corretamente:
class Filme {
private string $nome = 'Nome padrão';
private int $anoLancamento = 2024;
private string $genero = 'ação';
public function nome(): string
{
return $this->nome;
}
public function defineNome(string $nome): void
{
$this->nome = $nome;
}
public function genero(): string
{
return $this->genero;
}
public function defineGenero(string $genero): void
{
$this->genero = $genero;
}
}
Com essas alterações, os métodos nome() e genero() agora retornam string, que é o tipo correto para os atributos nome e genero. Além disso, os métodos defineNome() e defineGenero() agora aceitam parâmetros do tipo string, o que faz mais sentido para esses atributos.
Espero ter ajudado.
Caso este post tenha lhe ajudado, por favor, marcar como solucionado ✓.Bons Estudos!