Plantilla:PHP/ConceptosBasicos 1

Programación orientada a objetos

 * En programación el paradigma imperativo está basado en funciones y datos.


 * 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.


 * 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:
 * 1) public
 * 2) private
 * 3) protected


 * 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 ->


 * 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.


 * 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

Elementos en la programación orientada a objetos

 * De lo dicho anteriormente deducimos que tenemos dos elementos:
 * 1) Los atributos o características de la clase.
 * 2) 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