Usamos cookies para medir audiência e melhorar sua experiência. Você pode aceitar ou recusar a qualquer momento. Veja sobre o iMasters.
Fala pessoal, beleza?
Seguinte... Comecei a estudar mais a parte de Orientação a Objetos no PHP, por se tratar de um paradigma mais interessante e organizado. Mais precisamente, estou estudando no momento a questão de Construtores e Encapsulamento, e hey que me surgiu uma dúvida.
Até onde estudei, os exemplos que eu criava, o método construtor era utilizada para inicializar as propriedades públicas. Com o Encapsulamento, além de declarar as propriedades do objeto e sua visibilidade, é necessário também criar os métodos Get e Set (caso estas propriedades sejam private ou protected).
A questão é: se eu declaro todas as propriedades com private ou protected, é necessário criar o método __construct, ou bastam esses Get e Set? Se for necessário, como ficaria esse construtor (podem utilizar qualquer exemplo, só para ter uma idéia mesmo)?
Espero que tenha ficado clara a dúvida e que possam me ajudar ^^
Abraços
Hmmmm... Compreendi
Quanto a ser obrigatório, já tinha visto que não é... É algo mais para instanciar a classe inicialmente.
Mas ajudou sim Denis_Uyeda, vlw ^^
Só me expliquem alguma coisa. Qual o real motivo de definir as propriedades de uma classe como private sendo que vocês criam getters/setters que acessam/modificam essas propriedades? Se for assim, deixa tudo como public logo uai, dá na mesma rs.
Os métodos getters/setters TEM que ter um real motivo para existirem. Seja para filtrar o conteúdo que está entrando na variável, para executar determinada ação, sei lá.
;)
Olá!
Eu acho que o construtor da classe só seria necessário se você quisesse fazer alguma coisa ao instanciar (inicar) uma classe, mas o método construtor não é obrigatório.
Nesse caso, o método construtor não é necessário. Você pode ter apenas os métodos Get e Set e usar as técnicas de encapsulamento.
Exemplo:
Pessoa.class.php
<?php
class Pessoa{
index.php
Como $nome e $sobrenome estão como private, você não consegue acessar desse modo:
$Pessoa->nome = "Fulano";
pois o PHP retorna um Fatal Error
Espero ter ajudado!
Bons estudos!