Вы находитесь на странице: 1из 12

PROGRAMACIN ORIENTADA A

OBJETOS
Mediador: Breyson Meza

15/01/2012

sistemasuni

Introduccin
A partir de PHP 5, el modelo de objetos ha sido reescrito para
permitir un mejor rendimiento y con ms caractersticas. Este
fue un cambio importante sobre PHP 4.
Entre las caractersticas de PHP 5 estn la inclusin de la
visibilidad, las clases abstractas y clases y mtodos finales,
mtodos mgicos adicionales, interfaces, clonacin y tipos
sugeridos.

15/01/2012

sistemasuni

Lo bsico
La definicin bsica de clases comienza con la palabra clave
class, seguido por un nombre de clase, continuado por un par de
llaves que encierran las definiciones de las propiedades y
mtodos pertenecientes a la clase.
El nombre de clase puede ser cualquier etiqueta vlida que no
sea una palabra reservada de PHP. Un nombre vlido de clase
comienza con una letra o un guin bajo, seguido de la cantidad
de letras, nmeros o guiones bajos que sea. Como una expresin
regular, se expresara de la siguiente forma: [a-zA-Z_\x7f-\xff][azA-Z0-9_\x7f-\xff]*.
Una clase puede tener sus propias constantes, variables
(llamadas "propiedades"), y funciones (llamadas "mtodos").
15/01/2012

sistemasuni

Lo bsico
Ejemplo_01.php (Definicin simple de una clase)
<?php
class SimpleClass {
// Declaracin de la propiedad
public $var = 'a default value';
// Declaracin del mtodo
public function displayVar() {
echo $this->var;
}

}
?>

15/01/2012

sistemasuni

Lo bsico
Para crear una instancia de una clase, se usa la palabra clave
new. Un objeto siempre se crear a menos que se gestione una
excepcin en caso de error.
Las clases deberan ser definidas antes de la instanciacin.
Si un string que contiene el nombre de una clase se usa con new,
una nueva instancia de esa clase ser creada.

15/01/2012

sistemasuni

Lo bsico
Ejemplo_03.php (Creacin de una instancia)
<?php
class SimpleClass {
// Declaracin de la propiedad
public $var = 'a default value';
// Declaracin del mtodo
public function displayVar() {
echo $this->var;
}

}
$instanceA = new SimpleClass();
// Esto tambin se puede hacer con variables:
$className = 'SimpleClass';
$instanceB = new $className();
var_dump($instanceA );
var_dump($instanceB );
?>
15/01/2012

sistemasuni

Lo bsico
Cuando se asigna una instancia de una clase ya creada a una
nueva variable, sta ltima acceder a la misma instancia como
al objeto que le fue asignado. Esta conducta es la misma cuando
se pasan instancias a una funcin. Una copia de un objeto ya
creado se puede lograr a travs de la clonacin de la misma.

15/01/2012

sistemasuni

Lo bsico
Ejemplo_03.php (Asignacin de objetos)
<?php
$instance = new SimpleClass();
$assigned = $instance;
$reference =& $instance;
$instance->var = '$assigned tendr este valor';
$instance = null; // $instance y $assigned se transforman en null
var_dump($instance);
var_dump($reference);
var_dump($assigned);
?>

15/01/2012

sistemasuni

10

Lo bsico
Una clase puede heredar los mtodos y propiedades de otra
clase al utilizar la palabra clave extends en la declaracin de la
clase. No es posible extender mltiples clases; una clase slo
puede heredar de una clase base.
Los mtodos y propiedades heredados pueden ser sobrescritos
con la redeclaracin de stos, utilizando el mismo nombre que
en la clase base. Sin embargo, si la clase base defini un mtodo
como final, ste no podr ser sobrescrito. Es posible acceder a
los
mtodos
sobrescritos
o
propiedades
estticas
referencindolos con parent::.
Cuando se sobrescriben mtodos, la cantidad y disposicin de
los parmetros debera ser la misma o PHP generar un error a
nivel de E_STRICT. Esto no se aplica a los constructores, que
permiten la sobrescritura con diferentes parmetros.
15/01/2012

sistemasuni

11

Lo bsico
Ejemplo_04.php (Herencia simple de clases)
<?php
class SimpleClass {
// Declaracin de la propiedad
public $var = 'a default value';
// Declaracin del mtodo
public function displayVar() {
echo $this->var;
}
}
class ExtendClass extends SimpleClass{
// Redefinicin del mtodo parent
function displayVar()
{
echo "Clase extendida\n";
parent::displayVar();
}
}
$extended = new ExtendClass();
$extended->displayVar();
?>
15/01/2012

sistemasuni

12

Propiedades
Las variables pertenecientes a clases son llamadas
"propiedades". Tambin se les puede referir usando otros
trminos como "atributos" o "campos. stas se definen usando
una de las palabras claves public, protected, o private*, seguido
por una declaracin normal de variable. Esta declaracin puede
incluir una inicializacin, pero debe ser un valor constante, es
decir, debe tener la capacidad de ser evaluada en la
interpretacin y no debe depender de informacin en tiempo de
ejecucin para ser evaluada.
Dentro de los mtodos de clase, las propiedades, constantes y
mtodos pueden ser accedidos a travs de $this->property
(donde property es el nombre de la propiedad)

15/01/2012

sistemasuni

14

Propiedades
Declaracin de propiedades
<?php
class SimpleClass{
// Declaraciones invlida de propiedades:
public $var1 = 'hola ' . 'mundo';
public $var2 = <<<EOD
hola mundo
EOD;
public $var3 = 1+2;
public $var4 = self::myStaticMethod();
public $var5 = $myVar;
// Declaraciones vlida de propiedades:
public $var6 = myConstant;
public $var7 = array(true, false);
// Esto se permite slo en PHP 5.3.0 y superiores.
public $var8 = <<<'EOD'
hola mundo
EOD;
}
?>
15/01/2012

sistemasuni

15

Вам также может понравиться