Aprenda abstracción de datos en Java

Publicado: 2021-11-11

El concepto de abstracción de datos se puede explicar a través de un ejemplo de la vida real. Consideremos un ejemplo en el que un conductor que conduce un vehículo sabe que aplicar los frenos impedirá que el vehículo se mueva más. Entonces, la única información que el conductor sabe es que tiene que detener el movimiento de su vehículo, por lo que aplica los frenos. Pero no conoce el mecanismo subyacente de cómo se detiene el vehículo cuando se aplica un freno. Entonces, este concepto se puede comparar con el concepto de abstracción de datos, donde solo se muestra la información que el usuario debe conocer. La información subyacente se mantiene oculta. Entonces, este es el concepto de abstracción, y cuando se aplica en los datos, se conoce como abstracción de datos.

La programación orientada a objetos proporciona formas de utilizar el concepto de abstracción de datos. Java es uno de Programación Orientada a Objetos, sigue la función de abstracción de datos. En estos lenguajes de programación, las clases e interfaces abstractas se utilizan para lograr la abstracción de datos.

El proceso de abstracción de datos en Java se logra a través de las clases abstractas de la clase. Las interfaces también se utilizan para la abstracción de datos además de las clases abstractas. La palabra clave "resumen" se utiliza como modificador de no acceso para los métodos y clases. Cuando se define con la palabra clave acceso, una clase es una clase abstracta en la que no se permite la creación de objetos. El acceso a la clase abstracta solo es posible si se hereda de otra clase. Los métodos abstractos son aquellos métodos que solo se pueden usar en clases abstractas. Estos métodos no tienen un cuerpo de método.

La subclase generalmente proporciona el cuerpo. Las clases abstractas pueden contener métodos tanto regulares como abstractos.

Tabla de contenido

Diferencias entre una clase abstracta y un método abstracto

Las diferencias entre una clase abstracta y un método abstracto son:

1. Las clases abstractas son aquellas clases que se declaran con la palabra clave abstract.

2. Un método abstracto es un tipo de método que se declara sin su implementación.

3. Una clase abstracta no necesita tener todos los métodos de métodos abstractos dentro de sí misma. También puede contener métodos que no son abstractos.

4. Cada vez que un método se define como un método abstracto, también debe definirse nuevamente en la subclase. Esto hará que la anulación sea obligatoria y también hará que la subclase sea abstracta.

5. Si alguna clase contiene métodos abstractos, ya sea un método abstracto o más, debe declararse abstracto utilizando la palabra clave resumen.

6. Una clase abstracta no puede contener ningún objeto. No se puede usar un nuevo operador para instanciar la clase abstracta.

7. Siempre existe la presencia de constructores predeterminados en una clase abstracta. Además, los constructores parametrizados pueden estar presentes en una clase abstracta.

Clase abstracta de Java

El lenguaje de programación Java implementa la abstracción a través de clases abstractas. Una clase abstracta se puede definir como aquella clase que se declara con la palabra clave "abstracto" con una instrucción especial de que estas clases no se pueden instanciar. Estas clases pueden contener o no métodos abstractos.

La sintaxis de una clase abstracta en Java se muestra a continuación.

El código anterior está tomado de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

En la sintaxis anterior, se puede observar que tanto el método abstracto como el no abstracto pueden estar contenidos dentro de una clase abstracta. Además, la palabra clave "resumen" se coloca antes de la declaración de la clase.

Lea más sobre la clase abstracta de java aquí

Método abstracto de Java

Los métodos abstractos de Java son aquellos métodos que están precedidos por la palabra clave "resumen", pero no hay implementación de los métodos. Los métodos abstractos de Java se declaran dentro de la clase abstracta de Java.

Debido a los métodos abstractos, la clase abstracta de Java se vuelve incompleta porque los métodos no se pueden implementar. Por lo tanto, la inclusión de una forma abstracta en la clase abstracta naturalmente hace que la clase abstracta sea incompleta.

Su implementación en la subclase puede utilizar el método abstracto. Esta subclase heredará la clase abstracta y llevará a cabo la implementación de los métodos abstractos. La sintaxis general del método abstracto es

abstract void methodName (parameter_list);

Se deben tener en cuenta algunas reglas al escribir el método de resumen.

  • Si una clase contiene más de un método abstracto, la clase se convertirá en una clase abstracta.
  • No debe haber ninguna palabra clave que no sea "resumen" al definir la clase y los métodos abstractos.

Teniendo en cuenta los puntos anteriores, las siguientes posibilidades no están permitidas en Java.

  • final
  • nativo abstracto
  • estática abstracta
  • abstracto privado
  • abstracto sincronizado
  • Resumen estricto

A continuación se muestra un ejemplo de abstracción de datos en Java.

https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

El código anterior está tomado de https://www.softwaretestinghelp.com/what-is-abstraction-in-java/ .

En el código que se muestra arriba, hay una clase Bank. Hay un método abstracto dentro de la clase Bank que es getInterestRate(). Se declaran otras dos clases BOI e ICICI, que heredan la clase Bank. Estas clases declaradas heredan la clase Bank y, por lo tanto, implementan el método getInterestRate() que devuelve las tasas de interés.

Se crea un objeto del Banco en el método principal. El objeto del Banco consiste en un objeto de clase ICICI que muestra la tasa de interés. En el siguiente paso, también se crea el objeto de la clase BOI, que muestra la tasa de interés.

Abstracción de datos a través de la interfaz.

Las interfaces son similares a las clases de Java, con la única diferencia de que hay métodos vacíos en una interfaz. También se puede definir como clases que consisten en métodos abstractos y constantes estáticas. Todos los métodos presentes en la interfaz son públicos y no contienen ningún constructor. La interfaz se usa para lograr la abstracción de datos y también se usa para realizar herencias múltiples en Java.

Algunas características de las interfaces en Java son:

  • Las interfaces se pueden utilizar para lograr una abstracción total.
  • Una sola clase puede usar múltiples interfaces que conducen al logro de múltiples interfaces.
  • Las interfaces permiten lograr un acoplamiento débil.

La sintaxis de la interfaz se muestra a continuación:

La sintaxis anterior se usa desde https://www.javatpoint.com/how-to-achieve-abstraction-in-java .

Se puede utilizar una interfaz a través de la palabra clave “implementos”.

Algunas diferencias entre las clases abstractas y la interfaz son:

  • Tanto los métodos abstractos como los no abstractos pueden estar contenidos dentro de las clases abstractas. Mientras que, en una interfaz, solo pueden estar presentes los métodos abstractos.
  • Las variables finales pueden o no estar presentes en las clases abstractas. En las interfaces, las variables pueden ser finales como variables predeterminadas.
  • El resumen de clase puede tener variables no finales, finales, no estáticas o estáticas. Mientras que, en una interfaz, solo pueden estar presentes variables estáticas y finales.
  • La clase abstracta permite la implementación de interfaces. Una clase abstracta no se puede implementar en una interfaz.
  • La herencia de una clase abstracta se realiza a través de la palabra clave “extiende”. La implementación de la interfaz se realiza a través de la palabra clave “implementos”.
  • La clase abstracta puede implementar múltiples interfaces, o la clase abstracta puede extender otras clases. Mientras que una interfaz puede permitir la implementación de solo otra interfaz.
  • Aparte de los miembros públicos, tanto los miembros de datos que están protegidos como los privados están contenidos en una clase abstracta. Mientras que los miembros de una interfaz son públicos por defecto.

Aprenda cursos de software en línea de las mejores universidades del mundo. Obtenga programas Executive PG, programas de certificados avanzados o programas de maestría para acelerar su carrera.

Conclusión

El artículo ha descrito los conceptos de abstracción de datos y ha enumerado cómo se puede lograr la abstracción de datos en Java. Para obtener más experiencia en el lenguaje de programación Java, puede consultar el Curso de desarrollo de software que ofrece upGrad. El curso está diseñado para profesionales que trabajan y lo capacitará con proyectos orientados a la industria que desarrollarán las habilidades de programación requeridas. Se puede obtener más información a través de nuestro sitio web. Para cualquier información y ayuda, nuestro equipo de asistencia puede ser contactado.

¿Qué es la abstracción de datos?

La abstracción de datos es un concepto de diseño de software. El problema que resuelve es crear estructuras de datos y funciones que son independientes de los tipos de datos en los que operan. Aísla el código de los tipos de datos y permite usar el mismo código en múltiples situaciones. La abstracción de datos se logra cuando los datos representados por la estructura de datos y las operaciones que se les pueden aplicar están claramente definidos. La abstracción es vital en el desarrollo de software. Es una de las fuerzas fundamentales que conducen a un software más simple, más pequeño y más confiable. La abstracción de datos es un componente vital de los lenguajes de alto nivel.

¿Cuáles son las ventajas de la abstracción en Java?

¿Cómo lograr la abstracción en Java?

Las abstracciones en Java se realizan mediante interfaces. Para implementar la interfaz, también se debe proporcionar la implementación. En realidad, no hay necesidad de heredar clases para implementar la interfaz. Las interfaces son como cualquier otra clase en Java. Lo que los hace diferentes es el hecho de que solo tienen un método.