| Regresar | Temario | Ing. Angel Castro (UNAM - DGSCA Centro Coapa) |
Programacion Orientada a Objetos
La programacion orientada a objetos no te da poderes magicos, solo ofrece una cierta fuerza clave en la organizacion de tu codigo. El tipo de organizacion puede ser la manera mas clara de organizar tu codigo. Este tipo de organizacion puede ser la forma mas clara de pensar como programar soluciones, porque se apega la una forma muy narual para resolver situaciones del modelo mundo-real.
Un beneficio extra es la gerencia de claes, una vez definida puedes incluir a tu "super-clase" subclases que incluira automaticamente todo los metodos y propiedades que tenga ese objeto.
Notese que los beneficios de usar programacion de este tipo se ve solamente en programas muy grandes, donde ser requieres cierta cantidad de lineas. Para programas donde solo se requieren 2 paginas para hacer todo, no es necesario aplicar esta forma de programacion.
Veamos la terminologia.
Limitaciones de la programacion orientada a objetos.
Veamos un ejemplo:
class Clase
{
var $propiedad = "My propiedad";
function muestra_propiedad () {
echo $this->propiedad;
}
}
entonces para escribir una clase se usa la siguiente forma:
class CLASSNAME [extends PARENT_CLASSNAME]
{
[propiedades]
[metodos]
}
Constructores
Los constructores son metodos (funciones) especiales que se mandan a llamar una sola vez cuando el objeto es creado, para que eso pase el nombre del metodo debe ser el mismo del nombre de la clase
Otros detalles.
Para crear un objeto solo hay que escribir lo siguiente
$objeto = new class;
donde $objeto va ser el nuevo objeto y class debe ser un nombre valido de una clase previamente definida.
Metodos y atributos de un objeto.
En un objeto las funciones se llaman metodos pero estos estan dentro de la clase, para hacer referencia a ellos se escribe el nombre del objeto, el operador flecha y el nombre del metodo (funcion).
nombre_objeto->nombre_metodo (parametros);
lo mismo pasa para poder asignar o hacer algun tipo de referencia a una propiedad (atributo)
Ejemplo.
class Cart
{
var $todays_date;
var $name;
var $owner;
var $items;
function Cart()
{
$this->todays_date = date("Y-m-d");
$this->name = $GLOBALS['firstname'];
/* etc. . . */
}
}
$cart = new Cart;
$cart->add_item("10", 1);
$another_cart = new Cart;
$another_cart->add_item("0815", 3);
a herencia es agregar una clase a otra llamada super-clase, ya sea para agregar funcionalidad o como una forma de jerarquizacion. la sintaxis es la siguiente.
class nombre extends cart
{
var $owner;
function set_owner ($name)
{
$this->owner = $name;
}
}
Si a la hora de extender un objeto existe el mismo nombre de metodo, se sobreescribe.