Acceso a propiedades de Una clase por medio de funciones

ZakDo
11 de Febrero del 2004
he visto en codigo que hace gente y he visto que gran parte de estos acceden a los metodos de una clase por medio de funciones del tipo
function getCodigo()
{
return $this->codigo;
}
o bien setearlos de la misma manera
function setCodigo($cod)
{
$this->codigo=$cod;
}
mi duda es por que se realiza de esta manera podiendo hacerlo directamente inicializando un objeto
$objeto = new objeto();
para setearlo:
$objeto->codigo=$cod;
y para acceder a el:
echo $objeto->codigo;
pienso que son funciones que son funciones de paso que se podrian abreviar de esta manera. o es que estoy apollardao y no me he dao cuen de para que se hace esto. Por que si las variables de la clase fueran privadas lo entiendo pero sin ser privadas para que?¿

Espero una respuesta. Tnks
Un saludo : Zakdo

ganjabug
11 de Febrero del 2004
Ok, esto se hace de esta manera porque la Programación Orientada a Objetos (POO) sigue tres fundamentales conceptos ideológicos que son:
Identidad, clasificación y encapsulamiento, esta última quiere decir que los atributos (datos) se deben proteger, osea no deben estar publicos, el echo que tu digas $objeto->codigo=$cod; estas transgrediendo esta frontera, aunque parezca más trabajo, este paradigma de la programación te oblica a encapsular esta información, asi que si quieres acceder a un dato o asignarle un valor tienes que hacerlo a travez de una función PUBLICA, como es el caso de getCodigo, o setCodigo.
La POO es un paradigma muy bonito, realmente vale la pena entenderlo y trabajarlo, al igual que UML, para mas informacion revisa esto que consegui por alli http://ieee.udistrital.edu.co/concurso/programacion_orientada_objetos/poo/objetos.html