La programación orientada a objetos


La programación orientada a objetos o POO es un paradigma de programación que usa objetos y sus interacciones, para diseñar aplicaciones y programas de computadoras. Está basado en varias técnicas, incluyendo herencia, abstracción, polimorfismo y encapsulamiento.

Un paradigma de programación representa un enfoque particular o filosofía para la construcción del software. No es mejor uno que otro sino que cada uno tiene ventajas y desventajas.

En la POO las entidades centrales son los objetos, que son tipos de datos que encapsulan con el mismo nombre estructuras de datos, operaciones o algoritmos que manipulan esos datos.

Objeto: Entidad provista de un conjunto de propiedades o atributos (datos) y de comportamiento o funcionalidad (métodos) los mismos que consecuentemente reaccionan a eventos. Se corresponde con los objetos reales del mundo que nos rodea, o a objetos internos del sistema (del programa). Es una instancia a una clase.

Podemos distinguir varias propiedades:

Propiedades


ABSTRACCIÓN

Es la propiedad que permite representar las características esenciales de un objeto sin preocuparse de las restantes características. Se centra en la vista externa de un objeto de modo que sirve para separar el comportamiento esencial de un objeto, de su implementación.

ENCAPSULAMIENTO

Es la propiedad que permite asegurar que el contenido de la información de un objeto esta oculta al mundo exterior, es decir el objeto A no conoce lo que hace el objeto B y viceversa. La encapsulación permite la división de un programa en módulos, esos módulos se implementan mediante clases, de forma que una clase representa la encapsulación de una abstracción.

MODULARIDAD

Es la propiedad que permite subdividir una aplicación en partes más pequeñas llamadas módulos, cada una de las cuales debe ser tan independiente como sea posible de la aplicación en si y de las partes restantes.

JERARQUIA

Es la propiedad que permite una ordenación de las abstracciones, las dos jerarquías más importantes de un sistema complejo son:
Estructuras de clases (jerarquía Es-Un: Generalización/Especificación)
Estructuras de objetos (jerarquía Parte-De: Agregación)

Origen de Java


Java es un lenguaje de programación de propósito general, concurrente, orientado a objetos y basado en clases que fue diseñado específicamente para tener tan pocas dependencias de implementación como fuera posible. Su intención es permitir que los desarrolladores de aplicaciones escriban el programa una vez y lo ejecuten en cualquier dispositivo lo que quiere decir que el código que es ejecutado en una plataforma no tiene que ser recompilado para correr en otra. Java es, a partir de 2012, uno de los lenguajes de programación más populares en uso.

El lenguaje de programación Java fue originalmente desarrollado por James Gosling de Sun Microsystems (la cual fue adquirida por la compañía Oracle) y publicado en 1995 como un componente fundamental de la plataforma Java de Sun Microsystems. Su sintaxis deriva en gran medida de C y C++, pero tiene menos utilidades de bajo nivel que cualquiera de ellos. Las aplicaciones de Java son generalmente compiladas a bytecode (clase Java) que puede ejecutarse en cualquier máquina virtual Java (JVM) sin importar la arquitectura de la computadora subyacente.