Ver Mensaje Individual
  #3 (permalink)  
Antiguo 12/06/2006, 19:23
Avatar de enriqueplace
enriqueplace
 
Fecha de Ingreso: mayo-2005
Ubicación: Uruguay / Argentina
Mensajes: 1.102
Antigüedad: 13 años, 1 mes
Puntos: 32
Lo de "getter/setter" es un tema de conceptos.

Si tu colocas atributos privados, estos serán solo "vistos/accedidos/usados" dentro de la propia clase. Si tu quieres que puedan ser modificados desde fuera de la clase, debes crear métodos públicos que internamente "accedan" a los atributos, quedando estos "escondidos".

Por un tema de "principios OO", los atributos deben ser siempre privados (encapsulación) y solo crear métodos que sustituyan las operaciones que eran posibles cuando eran "atributos públicos": un método "setter" para "setear un valor" y/o un método "getter" para "retornar un valor".

Generalmente se usa la nomenclatura (si tu atributo es "nombre"):

Código PHP:
public function setNombre($nuevoValor);

public function 
getNombre(); 
Donde la primera es una función "setter" que necesita un parámetro con el "nuevo valor" que cargará en el atributo (lo que harías más fácil si fuera público) y la segunda, lo obvio (devuelve el valor).

Pero atención, solo deberán existir los "get y set" necesarios, no siempre por cada atributo que disponga tu clase (para eso, deja todos los atributos públicos que es lo mismo ).

Recalco, digo "nomenclatura", puesto que los nombres de los métodos pueden llamarse como quieras, pero si cumplen con ambas definiciones, todo funcionará. El tema es, por convención, se tiende a reconocer así a los métodos que solo sirven para "hacer operaciones básicas como si trabajáramos con atributos públicos", y que además, no deben tener más complejidad que esa (de lo contrario, ya serían métodos comunes y corrientes).

Nota:
sobre este tema, busca cualquier libro sobre Orientación a Objetos (o Java, Python, etc).
__________________
Blog phpsenior.com Cursos a Distancia surforce.com

Última edición por enriqueplace; 16/08/2006 a las 21:13