Entry N°1: Programación orientada a objetos.
La primera impresión que tenemos, la primera característica de Java que nos dicen es que está "orientada a objetos", pero ¿qué significa realmente ésto?
Con ésto entonces, podemos hacernos una buena idea sobre lo que es un lenguaje orientado a objetos: si un lenguaje estructurado se enfoca en la transformación de datos, uno orientado a objetos haría énfasis en la abstracción de datos; en un lenguaje estructurado se separan los datos y las funciones en entidades distintas, mientras que en uno orientado a objetos las funciones y los datos se encapsulan dentro de una misma entidad. Y como un bonus, el entendimiento del lenguaje se facilita más puesto que su modo de organización es como en el mundo real. Y nuevamente, la Santa Wikipedia lo define así: "...es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial."
C, el lenguaje de programación al cual estamos acostumbrados es un lenguaje estructurado, es decir: tiene más énfasis en la transformación de datos; y las funciones y los datos se trabajan como entidades separadas. Con las palabras de la Santa Wikipedia se define así: "...es un paradigma de programación orientado a mejorar la claridad, calidad y tiempo de desarrollo de un programa de computadora recurriendo únicamente a subrutinas y tres estructuras básicas: secuencia, selección e iteración."
![Resultado de imagen para programacion](https://i.blogs.es/389033/programming/450_1000.jpg)
Con ésto entonces, podemos hacernos una buena idea sobre lo que es un lenguaje orientado a objetos: si un lenguaje estructurado se enfoca en la transformación de datos, uno orientado a objetos haría énfasis en la abstracción de datos; en un lenguaje estructurado se separan los datos y las funciones en entidades distintas, mientras que en uno orientado a objetos las funciones y los datos se encapsulan dentro de una misma entidad. Y como un bonus, el entendimiento del lenguaje se facilita más puesto que su modo de organización es como en el mundo real. Y nuevamente, la Santa Wikipedia lo define así: "...es un paradigma de programación que viene a innovar la forma de obtener resultados. Los objetos manipulan los datos de entrada para la obtención de datos de salida específicos, donde cada objeto ofrece una funcionalidad especial."
Ahora bien, suficiente palabrería. Con las definiciones mencionadas anteriormente podemos extraer las Características de la Programación Orientada a Objetos.
- Hace énfasis en la abstracción de datos, es decir, se centra más en aplicar la metodología para diseñar las estructuras de datos.
- Las funciones y los datos se encuentran dentro de una misma entidad, se aplica el ocultamiento del estado, es decir, los datos de un objeto solamente se pueden modificar con las operaciones definidas de ese mismo objeto.
- Se enfoca principalmente en datos y objetos, a diferencia de la estructurada que se enfoca principalmente en algoritmos.
- Modela la información parecida al mundo real, ya que nuestro mundo también está estructurado en objetos.
¿Qué son los objetos y las clases?
Si eres un lector atento,te darás cuenta que ya he mencionado anteriormente la palabra objeto varias veces, por Dios; todo el fragmento anterior lo utilizé para explicar las características de la programación orientada a Objetos. Pero, ¿a que nos referimos cuando hablamos de un objeto?
Un Objeto es una entidad tangible, una entidad que existe realmente que posee características y acciones que realiza por sí solo o interactuando con otros objetos. Santa Wiki define a un objeto como "...entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento (métodos, los mismos que consecuentemente reaccionan a eventos."
Con éstas definiciones en mano, podemos fácilmente establecer las Características básicas de un objeto:
- Posee atributos, mencionados anteriormente, se definen como los valores que determinan el estado de un objeto durante su tiempo de vida.
- Posee estados, los cuales están determinados por los valores de los atributos en un momento determinado.
- Soporta encapsulamiento, que es básicamente colocar dentro de un objeto todas sus características y funcionalidades correspondientes.
Ahora bien, una definición de objeto que no mencioné fue la siguiente: "es la instancia de una clase". Ésta es la definición que vamos a conseguir en todos lados por internet; sin embargo, para que ésta definición pueda tener sentido primero tendríamos que definir que es una clase.
Una Clase es la agrupación de objetos que comparten una estructura común y un comportamiento común. Es la plantilla que contiene la descripción general de los objetos dentro de ella.Mientras un objeto es una entidad concreta que existe realmente, una clase es solamente una entidad abstracta. Llamando de nuevo a Santa Wiki, ésta define a una clase como: "...es una plantilla para la creación de objetos de datos según un modelo predefinido. Las clases se utilizan para representar entidades o conceptos, como los sustantivos en el lenguaje."
Nuevamente con las definiciones al alcance, podemos establecer las Características básicas de una Clase:
- Nivel de abstracción alto, permite describir un grupo de características comunes para los objetos que representa.
- Relación a través de Jerarquía, aquí es donde entran en juego la Herencia y las subclases. Las subclases siempre heredan las características de la Superclase o clase mayor y además incorporan unas nuevas características propias de sí misma.
- Es una entidad estática, rara vez varía.
Ejemplo de la organización de clases y objetos
Comentarios
Publicar un comentario