Скачать книгу

el resto de objetos), y se crearán los métodos públicos “leer_nota” (que devuelve la nota media de un alumno) y “grabar_nota” (que registra la nota media de un alumno).

      Aplicando la ocultación, se consigue que la aplicación sea más robusta, ya que cualquier información que se quiera leer o escribir debe utilizar alguno de los métodos definidos, que contendrán las validaciones necesarias para evitar que se introduzcan valores erróneos (negativos o demasiado grandes) o que se muestren valores que aún no han sido informados (no inicializados o nulos).

      La ocultación da lugar a que en las clases puedan identificarse dos partes bien diferenciadas:

      ilst1Interfaz: se corresponde con la visión externa de una clase. Es el conjunto de miembros que son accesibles por los demás elementos del sistema.

      ilst1Implementación: se refiere a la parte oculta, que incluye los mecanismos que conducen al comportamiento deseado.

      Existen distintos niveles de ocultación, que definen el tipo de acceso que se permite a atributos y métodos:

      ilst1Público: permite que sea accesible desde cualquier clase y desde cualquier parte del programa.

      ilst1Privado: se permite acceder desde operaciones de la propia clase.

      ilst1Protegido: permite el acceso desde operaciones de la propia clase o de clases derivadas.

iDef

      Definición

      Clase derivada

      Concepto que está relacionado con el de herencia, donde parte de la funcionalidad ha sido definida en otra clase (clase base) y es reutilizada en la clase derivada (clase hija).

      Al definir la visibilidad de una clase, habrá que tener en cuenta:

      ilst1Los atributos de una clase deberían ser privados, para que solo sean modificados mediante métodos de la propia clase.

      ilst1Los métodos de la clase deberían ser públicos.

      ilst1Los métodos que definen las operaciones que ayudan a implementar parte de la funcionalidad deberían ser privados (si no se utilizan desde clases derivadas) o protegidos (si se utilizan desde clases derivadas).

iRec

      Recuerde

      Los objetos de una clase son cajas negras, ya que no es posible saber cómo llevan a cabo internamente las operaciones, basta con saber cómo utilizarlos.

      Al crear objetos de una clase, solo se conoce su interfaz, pero no su implementación; por tanto, un cambio en la implementación de una clase (si no se modifica su interfaz) es transparente para los programas que la utilizan.

iEje

      Ejemplo

      La clase “curso” utilizada en el ejemplo anterior podría tener el método “listar” para mostrar todas las notas ordenadas de mayor a menor.

      Este método funciona correctamente, pero se ha detectado que su ejecución es un poco lenta.

      Sería posible modificar la implementación de este método para aplicar algún otro algoritmo de ordenación más eficiente y, como no es necesario modificar su interfaz (nombre del método, parámetros y valor de retorno), este cambio no afectará a los objetos de la aplicación que lo utilicen.

iAct

      Actividades

      3.Amplíe información sobre los distintos niveles de ocultación, identificando si existe algún otro tipo menos utilizado.

      Con los lenguajes de programación estructurados surgió el concepto de tipos de datos (también llamados tipos de datos primitivos), que definen el conjunto de valores que pueden ser almacenados. Los más comunes son: enteros, decimales, cadenas alfanuméricas, fechas, etc. Pero estos tipos de datos primitivos empezaron a ser insuficientes, ya que los desarrolladores tenían la necesidad de definir los suyos propios.

      Los Tipos Abstractos de Datos, cuyo acrónimo es TAD (o ADT si se utiliza la nomenclatura inglesa), son tipos de datos que pueden ser definidos por el programador para agrupar características y comportamientos similares, por lo que aplican el principio de abstracción.

iDef

      Definición

      Abstracción

      En informática, la abstracción consiste en aislar un elemento de su contexto o del resto de los elementos que lo acompañan.

      De la misma forma que se crean variables a partir de los tipos de datos primitivos, también pueden crearse variables a partir de los TAD definidos en el propio programa. Un TAD no define solo el conjunto de valores que puede almacenar, sino también las operaciones que pueden realizarse sobre ellos.

iImp

      Importante

      La abstracción es la base de la orientación a objetos, ya que permite la creación de un conjunto de clases para modelar el problema que se desea solventar.

      El encapsulado de datos permite agrupar a un mismo nivel de abstracción todos los elementos que están relacionados con una misma entidad. De esta forma, se consigue aumentar la cohesión y robustez de los elementos que forman el sistema.

iEje

      Ejemplo

      La aplicación que se ha utilizado anteriormente como ejemplo para el registro de la nota media del alumnado podría haberse desarrollado siguiendo una estructura tradicional:

      ilst2destDefiniendo un array para almacenar cada nota y variables independientes para registrar la máxima y la mínima.

      ilst2destCreando funciones para realizar operaciones con el array, ordenación, cálculo de la nota máxima, mínima, etc.

      Pero con un enfoque orientado a objetos se realizaría un encapsulado de todos los elementos que estén relacionados, definiendo la clase “curso”, que agrupa tanto los datos como las operaciones que se realizan sobre esos datos.

      El encapsulado de datos y la ocultación de información permiten reducir el número de errores que pueden producirse en una aplicación, ya que en un sistema orientado a objetos estos dependen unos de otros y, si uno de ellos falla, bastará con modificar su implementación y no será necesario modificar los demás objetos.

Скачать книгу