Está en la página 1de 8

PHP y MySQL

Indice:
- POO
- Conceptos bsicos
- Creacin y uso

Programacin orientada a objeto


La programacin orientada a objetos (POO) es la tendencia actual de todos los lenguajes de alto
nivel, dadas las posibilidades que abre.
Caractersticas de la POO
La POO basa las ventajas que nos ofrece en tres caractersticas principales:
Abstraccin.
Reutilizacin.
Actualizacin.
CONCEPTOS BASICOS
La POO se basa en los siguientes conceptos fundamentales:
Clases: Representacin de un molde que est compuesto por atributos(propiedades) y
mtodos(comportamientos). La instancia es el objeto creado a partir de este molde.
Herencia: La manera de pasar los atributos y mtodos de una clase padre a una clase hija,
de manera fcil.
Objeto: Entidad creada a partir de una clase. O tambin la instancia de una clase.
Propiedades: Distinguen un objeto determinado de los restante. La diferencia con las
variables son que las propiedades pueden ser heredadas.
Mtodos: Son operaciones que se efectan sobre el objeto. Tambin son heredables.
Existen otro tipos de caractersticas que se deben tocar a la hora de hablar de programacin
orientada a objeto como Abstraccin, Encapsulamiento, polimorfismo, entre otros. Pero ests
son cosas que iremos viendo en el transcurso del curso con distintos ejemplos.

CREACION Y USO
Antes de crear un objeto necesitamos disponer de una clase a partir de la que se
implementara dicho objeto.
Con la sentencia class seguida del nombre de la clase que vamos a crear:
class nombreDeLaClase {
$propiedad;
function metodo(){
echo hola gente;
}
}
Tenemos la variable $propiedad que es un atributo de la clase. Y metodo() que es el mtodo
de dicha clase.
Ahora podemos crear todos los objetos que queramos ya una vez creada la clase.
$objeto = new nombreDeLaClase();
Con la palabra new especificamos que se tiene que crear una instancia de la clase que
sigue a continuacin.
Donde $objeto es ahora la instancia de nuestra clase.
Para utilizar los elementos de nuestro objeto se utiliza el operador () de indireccin.
Echo $objeto->propiedad;
Echo $objeto->metodo();

Ejemplo:
1<?php
2 class sumador{
3
function sumador(){
4
}
5
function sumar($sum_1, $sum_2){
6
$total=$sum_1+$sum_2;
7
return $total;
8
}
9 }
10 //termina la definicin de clase.
11 $hacerSumas= new sumador();
12 $resultado = $hacerSumas->sumar(2,3);
13 echo(La suma de 2 + 3 da $resultado.);
14?>
En la linea 3 y 4 hay una funcin, que sera el mtodo de la clase. Si miran tiene el mismo
nombre que la clase. Esto es lo que se llama un constructor. Sirve para poder crear objetos de
dicha clase y que estos hereden sus propiedades. Solo esta para que ustedes vean pero en este
caso no sirve. En PHP5 se llama __construct() la funcin constructor.
De la linea 5 a la 8 se encuentra la funcin sumar(). Eso es una definicin de mtodo.
Cuando se crea una clase, las funciones son mtodos. Y las variables propias de la clase se
llaman propiedades. En este caso no definimos ninguna.
En la linea 11 creamos un objeto.
En la linea 12 hacemos una llamada al mtodo sumar del objeto que hemos creado.
El smbolo () se usa para referirnos a una propiedad o un mtodo.

Sintaxis:
$objeto->propiedad
$objeto->metodo(argumento, si proceden);
Siendo la variable una propiedad del objeto, observen que la propiedad no lleva el smbolo
($) que llevan todas las variables cuando se la usan.
Esto es as porque este signo ya precede al nombre del objeto. Cuando se usa esta
notacin, el nombre de la propiedad se escribe sin $. De lo contrario no se podr usar, ni leer la
propiedad. Si quiere declarar o inicializar la propiedad fuera del cuerpo de un mtodo, para lo
cual no usar la referencia $this, si debe anteponerle el signo $.
En POO existe la referencia $this, que se usa como comodn para referirse al objeto que
estamos manejando sin especificar su nombre.
Ejemplo:
<?php
class coche{
function coche($marca, $modelo, $color){
$this->marca=$marca;
$this->modelo=$modelo;
$this->color=$color;
}
function mostrar(){
echo(<table width='200' border='2' cellpadding='2' cellspacing='0'>);
echo(<tr><td width='50%'>MARCA</td><td width='50%'>.$this->marca.</td></tr>);
echo(<tr><td>MODELO</td><td>.$this->modelo.</td></tr>);
echo(<tr><td>COLOR</td><td>.$this->color.</td></tr>);
echo(</table);

}
}
$coche1 = new coche("Renault","laguna","silver");
$coche1->mostrar();
$coche2 = new coche("Fiat","uno","rojo");
$coche2->mostrar();
?>
Las propiedades se deben definir su encapsulamiento si o si, por otro lado las funciones son
normalmente publicas. Pero de todas maneras, no esta dems que se especifique para evitar
inconvenientes. Ejemplo:
<?php
class Persona{
private $nombre;
public function inicializar($nom){
$this->nombre=$nom;
}
public function imprimir(){
echo $this->nombre;
}
}
$per1 = new Persona();
$per1->inicializar('Juan');
$per1->imprimir();
?>

<html>
<head><title>Pruebas</title></head>
<body>
<?php
class Menu {
private $enlaces=array();
private $titulos=array();
public function cargarOpcion($en,$tit)
{
$this->enlaces[]=$en;
$this->titulos[]=$tit;
}
public function mostrar()
{
for($f=0;$f<count($this->enlaces);$f++)
{
echo '<a href="'.$this->enlaces[$f].'">'.$this->titulos[$f].'</a>';
echo "-";
}
}
}
$menu1=new Menu();
$menu1->cargarOpcion('http://www.google.com','Google');
$menu1->cargarOpcion('http://www.yahoo.com','Yhahoo');
$menu1->cargarOpcion('http://www.msn.com','MSN');
$menu1->mostrar();
?>
</body>
</html>

<?php
/* Problema 1:
* Confeccionar una clase Empleado, definir como atributos su nombre y sueldo.
* Definir un mtodo inicializar que lleguen como dato el nombre y sueldo.
* Plantear un segundo mtodo que imprima el nombre y un mensaje si debe o
* no pagar impuestos (si el sueldo supera a 3000 paga impuestos)
*/
?>
<?php
/*
*Problema 2:
* Confeccionar una clase Menu. Permitir aadir la cantidad de opciones
* que necesitemos. Mostrar el men en forma horizontal o vertical (segn
* que mtodo llamemos.
*/
?>

También podría gustarte