1
resposta

Métodos get e set em Telefone (resposta anteriores do fórum não me ajudaram)

Boa tarde

Fizemos os seguintes métodos dentro da classe Telefone. Até entendo o get pois posso buscar um Aluno a partir de um telefone. Porém o set fiquei confusa. Eu entendi que você criou o set para que na entidade Aluno eu pudesse definir o relacionamento no método addTelefones

public function addTelefone(Telefone $telefone): self
    {
        $this->telefones->add($telefone);

        //definindo o relacionamento do telefone com esse aluno atual
        $telefone->setAluno($this);

        return $this;
    }

Porém isso não pode gerar algum problema na minha aplicação? Imagine que em Aluno além de nome eu tivesse idade e ambos os atributos são obrigatórios. Se eu criar um aluno a partir da minha classe telefone $telefone->setAluno('12354646', 22) posso "burlar" e criar um Aluno sem idade por exemplo?

Insira aqui a descrição dessa imagem para ajudar na acessibilidade

Fiquei confusa sobre esses métodos get e set

1 resposta

Olá Karolina! Tudo bem?

O método get é utilizado para obter o valor de um atributo da classe. No caso do método getNumero, por exemplo, ele retorna o valor do número de telefone.

Já o método set é utilizado para definir o valor de um atributo da classe. No método addTelefone, além de adicionar o telefone na coleção de telefones do aluno, ele também define o relacionamento do telefone com o aluno atual através do método setAluno.

Quanto à criação de um aluno sem idade, o método setAluno não permite que você defina apenas o nome e a idade do aluno. Ele espera receber um objeto do tipo Aluno como parâmetro, garantindo que todas as informações necessárias sejam fornecidas.

Portanto, ao utilizar o método addTelefone, você não conseguirá "burlar" a criação de um aluno sem idade. Você precisará fornecer todas as informações necessárias para criar um objeto Aluno e, em seguida, adicionar o telefone a esse aluno.

Espero ter ajudado!

Caso tenha dúvidas, fico à disposição

Abraços e bons estudos!

Quer mergulhar em tecnologia e aprendizagem?

Receba a newsletter que o nosso CEO escreve pessoalmente, com insights do mercado de trabalho, ciência e desenvolvimento de software