Si estas iniciando en la programación tu visión debe ser aprender a programar como todo un profesional y es probable que el término POO sea desconocido para ti, o quizás eres alguien avanzado en el área y también lo desconoce, de igual manera es importante que los conozcas pues de ello depende el que hagas buenas bases, pilares firmes en tu formación como programador.

 
Si solo sabes programación estructurada, estas obligado a migrar todo ese conocimiento y actualizarte  a la POO

 

Por lo general, los programadores que no han aprendido con un enfoque orientado a objetos, se les dificulta este aprendizaje en comparación a alguien que esta en su pleno inicio en el mundo de desarrollo de software.
 
Es como tratar de enseñarle a un futbolista que patee con la pierna izquierda, cuando toda su vida lo ha hecho con la derecha, es dificil mas no imposible.

 

Quiero resaltar que el objetivo de este articulo es que aprendas los conceptos básicos de la programación orientada a objetos para aprender a programar, aclarar tus posibles dudas en este enfoque y mejorar tus prácticas como programador, con el unico fin de que puedas empezar aprender a programar conociendo puntos de suma importancia en esta área.

El Software y su Relacion con la POO

En una oportunidad escuché un experto definir el software como “la información que le das a un ordenador para que manipule información del usuario“. ¿Por qué información? porque le estas informando al ordenador mediante lineas de codigo, instrucciones que debe hacer al ejecutar la aplicación, manipule adecuadamente la información del usuario.

 

Si la información esta desorganizada, esto nos traerá problemas, mas a nosotros que al ordenador. Es igual que mantengas un desorden en tu cocina con los cubiertos sucios, los limpios y los que estas por lavar en un mismo lugar.

 

Hay que ser eficientes programando, para que estee escrito lo mejor posible porque si vienen cambios al proyecto, puedas abordarlos con facilidad.

 

Cuando haces una “tesis universitaria” o “proyecto de grado”,  y requieres escribirlo entre…digamos 7 personas, y lo que escriban en el depende de lo que el cliente quiera, y el te dice que quería que la pagina tuviera un fondo azul claro porque el dijo antes azul cualquiera, y que los elementos se vieran mas separados de los bordes de la pagina.

 

Pues ahora te toca buscar por todo el código desordenado la parte donde le decías al ordenador que el fondo de esa pagina/pantalla era azul,  y cambiar eso. Y esto no dista mucho de la realidad en cuanto a cambios se refiere.

 

Así es como nos damos cuenta que el software es cosa muy compleja, y eso exige que estee muy bien escrito.

 

La evidencia de su complejidad está en que existen datos estadísticos, que arrojan que el fracaso de la mayoría de los proyectos se debe al incumplimiento en las pautas iniciales por no abordar con eficiencia la escritura del codigo fuente.

 

Otro caso que lo evidencia, es que si trabajas solo escribiendo lineas de codigo una tras otra, solo funciones y variables, unas dentro y otras fuera. Cuando tengas que verte en la necesidad de cambiar un valor de las primeras variables que declaraste, tendras que revisar las cientas o miles de linea de codigo siguientes para comprobar cuales guardan relación con ese valor que cambiaste.

 

¿Qué es la Programación Orientada a Objetos (POO)?

Se le considera un paradigma de programación, y una metodología para programar pero yo lo definiria de la siguiente manera:

 

Es manera profesional de programar porque permite mantener un orden de todo el código, aplicando un enfoque orientado a objetos y los conceptos básicos de éste, lo vuelve también una manera práctica de codificar.

 

Es el tipo de sintaxis que se maneja en la mayoria de los lenguajes de alto nivel como PHP, Java, C#, C++, etc, porque ofrecen funcionalidades propias de la orientación a objetos.Resalto la cualida de Profesional porque es aquella persona que realiza su trabajo de la manera mas eficiente, efectiva y correcta posible, por supuesto incluyendo el orden correspondiente y que amerita su labor.

 

Su Importancia

En un software de pocas lineas de codigo la Programación Estructurada no nos da problema alguno, pero cuando nos encontramos en un proyecto de mayor magnitud, como un Sistema Integral Universitario, necesitaras mantener un orden en el codigo que desarrollas porque de otro modo, ante cualquier error o cambio, vas a pasarte mas horas buscando y corrigiendo errores que programando.
 
En este sentido, en la programación existen malas y buenas practicas, una mala es la Programación Estructurada o también conocida por Procedimientos, la buena, sin lugar a dudas, es la Programación Orientada a Objetos (POO).

 

¿Cómo pensar en objetos?

La POO nos ofrece un método de programar asociando de manera cercana las cosas a la vida real.

 

Con este tipo de programación tenemos que aprender a pensar para escribir los programas en términos de objetos, propiedades o atributos, métodos o comportamiento, etc.

 

Debemos seguir una serie de pasos para pensar en objetos:

 

Crear el objeto

Un objeto es la instancia de una clase.

 

La clase representa el modelo sobre el cual se construirá el objeto, es decir, si vas a una fabrica de AUTOS, tomas el modelo AUTO, para construir sobre él lo objeto AUTO.

 

Es como el molde básico o ejemplar a seguir, así sucedería también en el caso de las personas, los telefonos, las computadoras.

 

Describir el objeto

Los sustantivos son descritos por sus adjetivos.
Entonces puede decirse que un objeto es un sustantivo, descrito por adjetivos.
Y los adjetivos, serian sus propiedades

 

Para describirlo entonces deben mencionarse sus propiedades, es decir, sus caracteristicas.

 

Un objeto tiene dos tipos de Propiedades

 

    1.- Las que responden a la pregunta ¿Cómo es el Objeto? 
         El Objeto es: Sustantivo + Adjetivo
    2,- Las que responden a la pregunta ¿Que tiene el Objeto? o ¿Como se compone el objeto? 
         El objeto tiene: Adjetivo Cuantitativo (cantidad) + Sustantivo ()
 
Tomaremos el ejemplo de un AUTO.
Para describir sus primeras propiedades, debemos preguntarnos ¿Cómo es el AUTO?

 

El AUTOes de colorROJO
El AUTOes un modelo350z
El AUTOes de marcaNISSAN

 

Para describir sus segundas propiedades debemos preguntarnos ¿Que tiene el AUTO?
 
El AUTOtiene dos luces delanteras
El AUTOtiene cuatro cauchos.
El AUTOtiene un volante.
 
Pero ahora sucede que estos atributos cuantitativos, tienen sus características propias que deben ser descritas:

 

El AUTOtiene dos luces delanteras ¿Como son esas luces?
      – Las luces son de tamaño PEQUEÑO
      – Las luces son de color ROJO
      – Las luces son de forma OVALADA
 
El AUTOtiene cuatro cauchos. ¿Como son esos cauchos?
      – Los cauchos son de tamaño PEQUEÑO.
      – Los cauchos son de marca FIRESTONE.
      – Los cauchos son de color NEGRO.
 
El AUTOtiene un volante. ¿Como es ese volante?
      – El volante es de tamaño PEQUEÑO
      – El volante es de color ROJO
      – El volante es de forma CIRCULAR
 
Siempre que se realiza la descripción de los objetos principales, se procede a la identificación de los objetos que la componen y sus propiedades

 

Los objetos pueden hacer cosas.

Ahora nos toca hablar de lo que “pueden hacer” los objetos, es decir, “¿Cuáles son sus capacidades?”Los objetos son capaces de ejecutar acciones, éstas son verbos, lo que significa que debes preguntarte “¿Qué acciones puede hacer este objeto?” y respondiendo a esa interrogante podras conocer sus capacidades. La respuesta seria:

El objeto puede + verbo infinitivo.

 

Ejemplos:
         – El objeto puede acelerar
         – El objeto puede frenar
 

Los objetos comparten características

Cuando vamos a una agencia de AUTOS, los encontramos de distintas marcas, colores, tamaños, formas, es decir, de diversascaracterísticas además de las que comparten mutuamente, y si profundizamos mas, con otras características incluidas como que uno tenga Spoiler  y Techo Plegable.

 

Y eso podemos lograrlo en la programación orientada a objetos, y es lo que se conoce como Herencia.

Repaso

Si has entendido todo lo anterior, has aprendido a pensar en objetos, pero ahora debemos pasar a la práctica y verlo en la programación, pues toca distinguir las cosas por su nombre:

 

En POO

  • Objeto: También se denomina objeto
  • Propiedades: también se denomina propiedades
  • Acciones que puede realizar un objeto: se denominan Métodos.
  • Objetos que tienen los mismos nombres de atributos (por ejemplo: color, forma, etc.): se conoce como polimorfismo, y es la capacidad de un objeto de tener los mismos nombres de métodos y propiedades. El polimorfismo es una característica primordial de la POO
  • Objetos que comparten características: se denomina Herencia y es otra característica primordial de la POO

 

Elementos de la POO

Para diseñar y codificar un sistema se tienen los elementos, y para construirlo se requieren herramientas, y este papel lo cumplen las características.
Los principales elementos son:

 

Clases

Es de donde procederan, y se instanciaran los objetos.

 

Propiedades

Son las características principales de un objeto.

 

Métodos

Son las acciones que es capaz de ejecutar un objeto, y sí, son las mismas funciones que usamos en la programación estructurada

 

Objeto

Cuando se crea un objeto, éste proviene de una clase, y a esto se le conoce como instanciar una clase, la cual tendrá todos los métodos y propiedades que tiene la clase.

 

Herencia

Cuando el objeto adopta todos los metodos y propiedades de la clase, a esto se lo denomina herencia: un objeto hereda lo que tiene la clase.

 

Polimorfismo

Este guarda una estrecha relacion con la herencia porque solo funciona con ella asi que su significado es: que puede adoptar “múltiples formas”.
 
Cuando un método como Transportar puede aplicarse a varios objetos como: auto, moto, avion, bicicleta, pues ahi se esta hablando de polimorfismo, es decir, se refiere a la capacidad del objeto de un método de ser aplicado a distintos objetos, permitiendo a su vez el cambio de parámetros de éste.

 

Yo lo definiría como la capacidad de un método de ser integral, resultando un método integral puedo aplicarlo para diversos objetos.

 

Debo enfatizar que la utilidad del polimorfismo y sus posibilidades para la reusabilidad del codigo de los programas es lo que debe comprenderse de él. porque nos permite ahorrarnos lineas innecesarias de código, y no tener que repetirlas sin necesidad como por ejemplo:

 

Nos evita tener que hacer varios métodos innecesarios como:
SumarCadenadeCaracteres()
SumarNúmerosEnteros()
SumarNumerosDecimales()

 

Aplicando el polimorfismo, hariamos un único método como:
Sumar()

 

No es lo mismo programar orientado a objetos que programar utilizando los elementos de la POO

Si escribes un codigo por procedimientos como si estuviera orientado a objetos, pudieras caer en este error, procura evitarlo. (Me paso a mi, cuando no lo comprendia e daba mis primeros pasos programando)

 

¿Que Lenguajes de Programación son Orientado a Objetos?

Entre los lenguajes de programación, hay unos que son orientados a objetos, como es el caso de Java, C#, C++, etc,  sin embargo PHP también nos ofrece funcionalidades propias de la orientación a objetos.

 

Ventajas de la POO

Desde mi punto de vista y experiencia, en la POO puedes obtener código reusable, manejable, leible, y a medida de que trabajes de esa manera, iras construyendo tu propia “libreria de codigos”, que puedes usarlos en próximos programas cambiando pequeños detalles, es decir, que mientras estas prácticando con este enfoque vas creando tu propios códigos que al momento de querer hacer un sistema o una aplicación funcional, serán usables y solo tendras que tomar tus códigos creados anteriormente

 

Te doy un ejemplo, en PHP, una vez que has creado una Clase para la conexión a la base de datos a MySQL en una sola aplicación, para las próximas sólo vuelves a utilizar ese fragmento de código cambiando los parámetros necesarios, y listo con eso te ahorrarás los dolores de cabeza en un futuro para programar

 

Algo interesante

 

De hecho, este principio se aplica también en el diseño web con HTML y CSS, a medida en que aprendes y practicas, y se te presenta en un proyecto la necesidad de agregar un slider, de los que practicaste tomas el que necesitas lo copias lo pegas, cambias los valores necesarios para su diseño,  y listo! Podrás terminar tu proyecto en menor tiempo.

 

Desde mi experiencia programando puedo decirte que la POO es la manera que hace mas facil y entendible a un programa en cuanto a su codificación, porque permite asignarle  y separarle por clases,
objetos,métodos y propiedades.

 

Espero que hayas sido de enorme ayuda a tus conocimientos y hayas aprendido a “pensar las cosas como objeto”.

 

PD: este articulo de verdad me tomo como dos dias redactarlo para explicarlo minuciosamente, de la manera mas básica y entendible posible, con mucho cuidado, e investigando en otros sitios, digerirlos y transformarlos en ejemplos sencillos.

 

Descubre cuales son las mejores fuentes de enseñanza en Tutoriales de Programación justo :
aqui ¿Donde encontrar tutoriales de programacion y diseño web?
Si te gusto, aprendiste, y te ha servido! te invito a compartirlo comentar y compartirlo en las redes sociales!

 

¡Haz Tu Comentario Ahora!

Loading Disqus Comments ...
Loading Facebook Comments ...

No hay comentarios

Dejar respuesta