Programación Orientada a Objetos con Java (Parte 1 de 2)

Tipos de Datos de Definidos por el Usuario

Java, al igual que otros lenguajes de programación, permiten al desarrollador de software definir nuevos tipos de datos conocidos también como registros, structs o estructuras de datos.

En el siguiente vídeo se muestra el proceso de creación y manipulación de estructuras de datos en Java:

Encapsulamiento

En los lenguajes que no soportan la Programación Orientada a Objetos, usualmente las estructuras de datos y las funciones que manipulan su estado [1]están definidas por separado; esta forma de organización del código abre la posibilidad de que, de manera inadvertida, se realicen modificaciones que dejen a las estructuras en un estado inconsistente. Para evitar estos problemas, la Programación Orientada a Objetos propone una nueva forma de organización del código: la clase, estructura que combina datos con funciones de manera tal que el acceso a los datos se realiza sólo a través de funciones que modifican su estado asegurando la preservación de su consistencia. En el siguiente vídeo se presentan este concepto:

El encapsulamiento consiste en evitar la modificación directa del estado (valores de las variables miembro); cualquier modificación debe realizarse empleando funciones que manipulen el estado de manera tal que se asegura su consistencia. El encapsulamiento el un rasgo distintivo que separa a las estructuras de datos de las clases:

Estructura de Datos Clase
Permite el acceso y modificación de su estado El estado es invisible/inaccesible desde fuera de la clase
El código que usa la estructuras puede examinar y modificar si estado El código que usa la clases solo puede solicitar a la clase realizar alguna operación
Desde el exterior es una entidad con estado observable y poca o ninguna funcionalidad Desde el exterior es una entidad con funcionalidad y poco o ningún estado observable

Al desarrollar software es importante identificar tanto las estructuras de datos como las clases; usualmente, las clases contienen la funcionalidad relacionada con los cálculos y proceso de negocio y las estructuras se emplean en el intercambio de datos  con sistemas externos (bases de datos, servicios web, la interfaz de usuario, etc.).

Clases e Instancias

En Java, una clase define un tipo de dato[2] que agrupa tanto variables (atributos) y métodos compartidos por todos los objetos de esa clase. Una vez definida una clase, es posible crear objetos de dicha clase y todos los objetos de la misma clase tendrían las mismas variables y los mismos métodos (los objetos son los valores del tipo de dato). Lo que diferencia a un objeto de otro son justamente los valores asignados a las variables; por ejemplo, todos los objetos de la clase Estudiante tienen un nombre pero podemos distinguir un estudiante de otro porque tiene nombres diferentes.  De cierta manera una clase actúa como una  plantilla que define la estructura de los objetos o instancias creadas. El siguiente vídeo explora estos conceptos:

El modificador static

El modificador static se aplica a una variable o  método para indicar que dicho miembro no requiere de la existencia de una instancia para asumir un valor o ejecutar su funcionalidad. El siguiente vídeo explora este modificador con más detalle:

[1]Formado por todas la variables y sus valores

[2] Es decir, podemos usar la clase como el tipo en la declaración de una variable.

Deja una respuesta