Orientação a Objetos - Perguntas e Respostas
1 - Porque que quando eu não declaro uma propriedade, mas dentro de um método eu faço isso e funciona:
<?php
class WithoutProperty
{
public function setProperty($property)
{
$this->property = $property;
}
public function getProperty()
{
return $this->property;
}
}
2 - Qual a “função” de um método set e um get?
A pergunta deve ser meia sem nexo, mas vamos aos fatos.
Vamos supor que eu tenho um carro, mas existem vários modelos correto? Então (Exemplo simples apenas explicando onde eu quero chegar):
<?php
interface Carro
{
public function setCarModel($model);
public function getCarModel();
}
class Corsa implements Carro
{
private $model;
public function setCarModel($model)
{
$this->model = $model;
}
public function getCarModel()
{
return $this->model;
}
}
$Corsa = new Corsa();
$Corsa->setCarModel("G1");
Por mais que tenha sentido a classe Corsa implementar a interface Carro, qual a lógica dos métodos get e set sendo que eles só fazem uma função simples? – Por mais que a propriedade seja private, o que impede de mudar para public e fazer assim, sendo que o set faz praticamente a mesma coisa?
class Corsa implements Carro
{
public $model;
[...]
}
$Corsa = new Corsa();
$Corsa->model = "G1";
O mesmo se aplica com o get. Qual a finalidade dele em um método apenas com return sendo que eu posso acessar ele diretamente? – Caso ele seja public, é claro.
3 - Continuando no questão de get e set: Entrando um pouco em visibilidade também. Um método privado está falando que ele não pode ser acessado externamente e nem por classes que herdam ela correto? Então, qual a lógica de ter um método (set) para alterar essa variável sendo que se eu quero que ela seja privada, não é apenas para eu alterar ou acessar ela dentro do meu escopo e não de fora(set)?
Por enquanto são essas perguntas, mas de acordo com que eu vou praticando e surgindo dúvidas eu vou perguntando.
Discussão (38)
Carregando comentários...