Plantilla:PHP/ConceptosBasicos 1
De WikiEducator
Saltar a: navegación, buscar
Contenido
Programación orientada a objetos
- En programación el paradigma imperativo está basado en funciones y datos.
#Instrucciones en estructruas secuencias (asignar, invocar, declarar) #Estructras selectivas (si (condicione) ....) #Estructuras repetitivas (mientras (condicion) ....
|
- El paradigma orientado a objetos está basado en Objetos.
- Ahora plantearemos los programas desde dos aspectos.
- Los objetos son el elemento básico y central de la programación orientada a objetos (OOP) o (POO).
- Podemos hablar de universo de discurso como el sistema que queremos automatizar por software
- Un Objeto es una entidad (concreta o abstracta) que presenta una actividad en un entorno concreto, en un determinado universo de discurso.
Objeto Cada elemento activo que identificamos dentro de un determinado universo de discurso.
|
Ejemplo
| |
|
Ejemplo
| |
|
- Puede parecer una forma más complicada de programar, pero es una manera de dividir la naturaleza del problema que estamos estudiando en unidades independientes que pueden interactúar entre ellas.
- Cada una de ellas va a tener una identidad propia asignando valores a sus atributos
- Cada una de ellas va a tener un comportamiento concreto que va a ser lo que sabe hacer para que los demás o el programa principal lo utilice
Pilares básicos de la POO
- Son 4 las características o principios de la programación orientada a objetos
Encapsulación: Acceso a los componentes
- A la hora de definir tanto las propiedades como los métodos, especificaremos el nivel de acceso que se tiene a ese elemento
- Es una buena práctica de programación no dejar acceso directo a los atributos de una clase, sino acceder a ellos a través de los métodos
Visibilidad
- Visibilidad o alcance de las propiedades no constantes y los métodos de las clases
- Implementa el principio de encapsulación.
- Permite especificar el nivel de acceso que se tienen sobre los elementos
- Visibilidad
- Son tres los tipos de visibilidad que podemos especificar:
- public
- private
- protected
Tip: public tipo de visibilidad asignada por defecto en caso de no especificar.
- En el caso de los atributos hay que declararlo de forma explícita.
- Las funciones podemos no declararlo tomando el valor por defecto public
- Por herencia podemos usar la palabra reservada var para declarar los atributos en cuyo caso son pùblic
- public
- Este tipo de visibilidad es asignada por defecto
- Los elementos públicos pueden ser accesibles en cualquier momento del programa.
- Recordemos que para acceder a un elemento debemos especificar el objeto o clase del que queremos el elemento
- Si el elemento es estático o constante usaremos el operador :: llamado operador de especificación ámbito #::
- Si el elemento es no estático accedemos a través del operador ->
Ejemplo
| |
.... $f = new Fecha(5,10,2017) ... $f->verFecha(); ...
.... $f = new Fecha(5,10,2017) ... $f->dia= 5; ... Tip: En el caso de que las propiedades fueran public, sí podría hacerlo
|
- private
- Los elementos especificado con este modificador de acceso hace que su visibilidad se reduzca al interior de la clase, no pudiendo acceder a ellos desde fuera
- En OOP es una tendencia hacer todos los atributos privados y acceder a ellos por los métodos setter and getter.
<?php class Usuario { private $usuario; private $password; public function __construct($usuario) { $this->password = 'passDefecto'; $this->usuario = $usuario; } public function __destruct() { echo 'Me voy......'; } public function getUsuario(){ return $this->usuario; } public function getPass(){ return $this->password; } public function setUsuario($user){ this->usuario =$user; } public function setPass($pass){ this->password =$pass; } } $usuario = new Usuario('manolo'); //.... $pass = $_POST['pass']; //.... $usuario->setPass($pass); //... unset $usuario; //Ejecutaría el método mágico destroy ?>
Tip: A un elemento private de una clase, tampoco podrá acceder desde clases que deriven de ésta
- protected
- Este tipo de visibilidad implica que los elementos así especificados solo son accesible por la propia clase y por las clases derivadas
- Para ello hay que ver la herencia que veremos más adelante dónde propondremos un ejemplo
<?php class persona{ protected $nombre; protected $fNac; //.... } //..... class medico extends persona{ private $numColegiado; public function __construct($nombre, $fechaNacimiento, $colegiado) { $this->nombre=$nombre; $this->fNac=$fechaNacimiento; $this->numColegiado=$colegiado; } public function visualiza(){ echo "Medico $this->nombre"; } } $medicoPueblo1= new medico("pedro", "1/1/1969","123456"); $medicoPueblo1->visualiza(); ?>
Un ejemplo concreto
Elementos en la programación orientada a objetos
- De lo dicho anteriormente deducimos que tenemos dos elementos:
- Los atributos o características de la clase.
- Los métodos o comportamiento de la clase .
- Para crear objetos, previamente hay que definir su estructura.
- La definición de la estructura (atributos y métodos ) de componentes software se llama clase
|
- Elementos de la POO
|
- Elementos de la POO
|