Actividad 2 

Programación Orientada a Objetos POO (bases de datos)

1.-  Fundamentos de la Programación Orientada a Objetos

Existen cuatro conceptos fundamentales dentro de la Programación Orientada a Objetos que se relacionan entre sí y que nos permitirán tener las riendas de nuestro código:

Abstracción: proceso mental de extracción de las características esenciales de algo, ignorando los detalles superfluos.

Encapsulación: proceso por el que se ocultan los detalles del soporte de  las características esenciales de una abstracción.

Modularización: proceso de descomposición de un sistema en un conjunto de módulos o piezas independientes y cohesivos (con significado propio). Lo adecuado es conseguir los mínimos acoplamientos.

Jerarquización: proceso de estructuración por el que se produce una organización (jerarquía) de un conjunto de elementos en grados o niveles de responsabilidad, incumbencia o composición entre otros.

Si entiendes esos cuatro conceptos entenderás el porqué de la programación orientada a objetos y, consecuentemente, serás un mejor programador. Obviamente, en el vídeo Luis los explica mucho mejor, con ejemplos interesantes para ser capaces de entenderlo perfectamente. Además, lo hace de una manera muy divertida, como comprobarás y nos anima a todos a tomarnos en serio nuestra profesión.

Fuente: https://desarrolloweb.com/articulos/poo-fundamentos-luis-fernandez.html

2.- Beneficios de la Programación Orientada a Objetos

Una ventaja de la POO frente al paradigma algorítmico es la facilidad que brinda a través de sus herramientas, de concebir, analizar, modelar, diseñar e implementar el mundo real de manera fiel a como se presenta en la realidad; el paso que hay desde la concepción y asimilación del problema hasta la implementación del mismo es un proceso que se hace de manera casi natural. Esto porque el mundo está lleno de objetos reales, los cuales se pueden representar como tales en una solución computarizada.

Fuente: https://msdn.microsoft.com/es-co/library/bb972232.aspx

3.- Qué es la programación orientada a objetos

La programación orientada a objetos es una forma de organizar el código de un programa agrupándolo en objetos, que son elementos individuales que contienen información (valores de datos) y funcionalidad. La utilización de un enfoque orientado a objetos para organizar un programa permite agrupar partes específicas de la información (por ejemplo, información de una canción como el título de álbum, el título de la pista o el nombre del artista) junto con funcionalidad o acciones comunes asociadas con dicha información (como "añadir pista a la lista de reproducción" o "reproducir todas las canciones de este artista"). Estos elementos se combinan en un solo elemento, denominado objeto (por ejemplo, un objeto "Album" o "MusicTrack"). Poder agrupar estos valores y funciones proporciona varias ventajas, como la capacidad de hacer un seguimiento de una sola variable en lugar de tener que controlar varias variables, agrupar funcionalidad relacionada y poder estructurar programas de maneras que reflejen mejor el mundo real.

Fuente: https://help.adobe.com/es_ES/ActionScript/3.0_ProgrammingAS3/WS5b3ccc516d4fbf351e63e3d118a9b90204-7f35.html

4.- Métodos y atributos static en Programación Orientada a Objetos

Todas las clases se componen de dos elementos esenciales que son los atributos y los métodos los cuales pueden ser estáticos.

Los métodos estáticos no necesitan que se cree un objeto para ser llamado se puede hacer directamente con el nombre de la clase.

Antes de declarar un atributo o un método podemos usar public, private y protected, pero es posible que en algún momento hayas visto la palabra reservada static acompañando a estas en la declaración.

Al igual que las constantes, los* elementos estáticos* no dependen del objeto instanciado, sino que son únicos para todos los objetos de una misma clase.

Fuente: https://www.nazariglez.com/2013/01/27/tutorial-php-como-usar-atributos-y-metodos-estaticos/

5.- Herencia en Programación Orientada a Objetos

La herencia es específica de la programación orientada a objetos, donde una clase nueva se crea a partir de una clase existente. La herencia (a la que habitualmente se denomina subclase) proviene del hecho de que la subclase (la nueva clase creada) contiene las atributos y métodos de la clase primaria. La principal ventaja de la herencia es la capacidad para definir atributos y métodos nuevos para la subclase, que luego se aplican a los atributos y métodos heredados.

Fuente: https://es.ccm.net/contents/411-poo-herencia

6.- Polimorfismo en Programación Orientada a Objetos

En programación orientada a objetos se denomina polimorfismo a la capacidad que tienen los objetos de una clase de responder al mismo mensaje o evento en función de los parámetros utilizados durante su invocación. Un objeto polimórfico es una entidad que puede contener valores de diferentes tipos durante la ejecución del programa.

En algunos lenguajes, el término polimorfismo es también conocido como ‘Sobrecarga de parámetros’ ya que las características de los objetos permiten aceptar distintos parámetros para un mismo método (diferentes implementaciones) generalmente con comportamientos distintos e independientes para cada una de ellas.

Fuente: https://damian02.wordpress.com/polimorfismo-poo/

7.- Abstracción en Programación Orientada a Objetos

las características específicas de un objeto, aquellas que lo distinguen de los demás tipos de objetos y que logran definir límites conceptuales respecto a quien está haciendo dicha abstracción del objeto.

Fuente: https://styde.net/abstraccion-programacion-orientada-a-objetos/

 8. Definir que es:

•       CLASE: Son la plantilla a partir de la cual se crean los objetos Formadas por:

Nombre, atributos, métodos

•       METODO: conjunto de instrucciones a las que se les asocia un nombre de modo que, si se desea ejecutarlas, sólo basta con referenciarlas a través de dicho nombre en vez de tener que escribirlas.

Dentro de estas instrucciones es posible acceder con total libertad a la información almacenada en los campos, pertenecientes a la clase dentro de la que el método se ha definido. Por lo que los métodos permiten manipular los datos almacenados en los objetos.

Sintaxis:

()

{

instrucciones;

}

•       ATRIBUTO: Los atributos son las características individuales que diferencian un objeto de otro y determinan su apariencia, estado u otras cualidades. Los atributos se guardan en variables denominadas de instancia, y cada objeto particular puede tener valores distintos para estas variables. Las variables de instancia también denominados miembros dato, son declaradas en la clase, pero sus valores son fijados y cambiados en el objeto. Además de las variables de instancia hay variables de clase, las cuales se aplican a la clase y a todas sus instancias.

Fuente: https://www.ecured.cu/Atributo_(inform%C3%A1tica)

•       OBJETO: Son la parte ejecutable de la programación orientada a objetos Se manejan a través de variables, pertenecen a una clase.

9.  Como se define en PHP:

·         Una clase (Sintaxis y ejemplo)

La definición básica de una clase comienza con la palabra reservada class, seguida de un nombre de clase, y continuando con un par de llaves que encierran las definiciones de las propiedades y métodos pertenecientes a dicha clase.

El nombre de clase puede ser cualquier etiqueta válida, siempre que no sea una palabra reservada de PHP. Un nombre válido de clase comienza con una letra o un guión bajo, seguido de una cantidad arbitraria de letras, números o guiones bajos. Como expresión regular, se expresaría de la siguiente forma: ^[a-zA-Z_\x7f-\xff][a-zA-Z0-9_\x7f-\xff]*$.

Una clase puede tener sus propias constantes, variables (llamadas "propiedades"), y funciones (llamados "métodos").

Fuente: https://php.net/manual/es/language.oop5.basic.php

·         El Metodo constructor (sintaxis y ejemplo)

•             El constructor es un método especial dentro de una clase, se suele utilizar para darle un valor a los atributos del objeto al crearlo.

•             Es el primer método que se ejecuta al crear el objeto y se llama automáticamente al crearlo. Este método puede recibir parámetros como cualquier otro método y para pasárselos tenemos que pasarle los parámetros al objeto. El constructor NO DEVUELVE ningún dato.

•             Podemos definir un constructor en una clase de la siguiente forma:

Debemos definir un método llamado __construct (es decir utilizamos dos caracteres de subrayado y la palabra construct). El constructor debe ser un método público (public function).

Veamos cómo podemos implementar el constructor en una clase llamada Coche:

Fuente: https://php.net/manual/es/language.oop5.decon.php

Video de programación POO en php

 

 https://youtu. be/sb_kooS8Pqw 

·         Otros métodos (sintaxis y ejemplo)

 Los métodos mágicos permiten reaccionar a eventos que le puedan ocurrir a un objeto instanciado. Se inician con una doble barra baja, y son: __construct(), __destruct(), call(), callStatic(), __get(), __set(), __isset(), __unset(), sleep(), wakeup(), __toString(), invoke(), set_state(), clone() y debugInfo(). Tan se introducen algunos de ellos:

El más utilizado es el constructor __construct(), que se ejecuta cuando el objeto se crea, pudiendo inyectar parámetros y dependecias requeridos para crear el objeto.

Los constructores también se heredan. Si una clase hija define un constructor propio, para heredar el de la madre es necesario indicarlo con _parent::__construct()_:

El método __destruct() hace lo contrario, se ejecuta cuando un objeto se destruye, aunque apenas se utiliza.

Los métodos mágicos __get() y __set() actúan como getters y setters para propiedades que no tienen visibilidad public.

El método __isset() actúa como la función isset() normal, como cuando se trabaja con arrays o variables. Este método mágico permite comprobar la existencia de una propiedad no pública. El método __unset() también actúa como la función unset()** normal pero para propiedades no públicas.

El método mágico __toString() permite devolver el objeto en forma de string:

Fuente: https://diego.com.es/programacion-orientada-a-objetos-en-php

Base de datos autos POO

www.dropbox.com/s/051klj8pe828ve5/ProyectoRelacional.zip?dl=0 

 

 

 

 Leer más: https://sistemasremington.webnode.com/informatica2/progrmacion-web-ii/actividades/actividad-2/

programacion orientada a objectos conceptos bàsicos