Curso programación desde 0 – Tema 8 – Programación Orientada a Objetos (POO)

Este tema tan solo sera teórico la programación orientada a objetos o sus siglas POO es un concepto el cual es importante de entender para casi cualquier lenguaje moderno. La programación orientada a objetos consiste en que, en nuestro entorno, todo es un objeto y como cual tiene unas propiedades, y unas cualidades, el típico que suele ponerse es el de un coche.

Un coche seria nuestro objeto, el cual tiene algunas propiedades como su numero de ruedas, color, peso, numero de plazas, lo cual puede variar de un coche a otro; pero también puede acelerar, ir hacia delante, hacia atrás, o girar.

A las propiedades de nuestro vehículo vamos a llamarlas precisamente propiedades o atributos, serán definidas en nuestra clase, y podremos ver o editar sus valores, dependiendo del objeto, y de la propiedad, en el ejemplo del coche, siempre va a tener 4 ruedas, con menos seria un triciclo o una moto, y con mas… seria algo extraño, por lo que si tenemos que definir la clase de nuestro coche siempre tendrá 4 ruedas, ese valor no tendría sentido que lo pudiéramos editar, seria solo visible, pero a la hora de declarar un nuevo objeto del tipo coche, si tendríamos que asignar un valor al numero de plazas, y al color, ya que cada modelo es distinto, lo normal seria asignar un valor por defecto, por ejemplo 5 plazas, que es lo más estándar pero podría tener 4, 7, 9 o quizás otro valor, esta propiedad seria fija, ya que nuestro coche no puede tener 4 plazas hoy y 9 mañana, pero se la pasaríamos nosotros al crearla, en cuanto al color, si tendría lógica que fuera editable, ya que podríamos pintarlo y cambiarle el color en cualquier momento.

Nuestro coche también tiene métodos como es el de acelerar, frenar, girar… esto no seria ni mas ni menos que las funciones que declaremos publicas de nuestro coche, es decir al apretar el pedal haz girar mas rápido el motor para ganar velocidad…

Otro concepto importante de la POO es la herencia, nuestro coche es un vehículo por lo que coche heredara todas las propiedades y métodos de la clase padre en este caso vehículo pero teniendo algunos que le caracterizan y son únicos de el, por ejemplo, cualquier vehículo puede acelerar, frenar y girar; pero no todos tienen 4 ruedas, creo que las motos tampoco tienen marcha atrás, por lo que seria un método especial para coches.

Casi todos los lenguajes también tienen otra propiedad, que es el polimorfismo esto quiere decir que la función acelerar, por poner un ejemplo puede ser declarada varias veces, pidiendo distintos parámetros

p.e: nombreFuncion(variable1);

      nombreFuncion(variable1,variable2,variable3);

      nombreFuncion(variable1, variable2);

Esto seria valido y a la hora de programar nos da mucha flexibilidad, ya que con el mismo nombre podemos llamar a varias funciones distintas, ejecutando siempre la que nos interese según el numero de parámetros PHP es el único lenguaje Orientado a Objetos que conozco que no admite polimorfismo.



Resto de temas:
Tema 8 – Programación Orientada a Objetos POO
Tema 7 – Funciones
Tema 6 – Bucles Repetitivos
Tema 5 – Usando condicionales
Tema 4 – Arrays
Tema 3 – Pensando con variables
Tema 2 – Pensando como Programadores
Tema 1 – ¿Que es la programacion?