Criterios ESG: fundamentos, aplicaciones y beneficios
Abstracción de datos en java
1.
2. En este tema nos ocupamos del concepto de abstracción, dedicando la mayor
atención a la abstracción de datos, además de presentar un practico ejemplo para
la comprensión de este tema.
5. La abstracción consiste en aislar un elemento de su contexto o del resto de los
elementos que lo acompañan. En programación, el término se refiere al énfasis en
el "¿qué hace?" más que en el "¿cómo lo hace?" (Característica de caja negra). El
común denominador en la evolución de los lenguajes de programación, desde los
clásicos o imperativos hasta los orientados a objetos, ha sido el nivel de
abstracción del que cada uno de ellos hace uso.
6. La abstracción de datos es una técnica de diseño de programas, su utilización es
independiente del lenguaje de programación.
Los lenguajes de programación son las herramientas mediante las cuales los
diseñadores de lenguajes pueden implementar los modelos abstractos. La
abstracción ofrecida por los lenguajes de programación se puede dividir en dos
categorías: abstracción de datos (pertenecientes a los datos) y abstracción de
control (perteneciente a las estructuras de control).
7. Los diferentes paradigmas de programación han aumentado su nivel de
abstracción, comenzando desde los lenguajes de máquina, lo más próximo al
computador y más lejano a la comprensión humana; pasando por los lenguajes de
comandos, los imperativos, la orientación a objetos (POO), la Programación
Orientada a Aspectos (POA); u otros paradigmas como la programación
declarativa, etc.
8. La abstracción encarada desde el punto de vista de la programación orientada a
objetos expresa las características esenciales de un objeto, las cuales distinguen al
objeto de los demás. Además de distinguir entre los objetos provee límites
conceptuales. Entonces se puede decir que la encapsulación separa las
características esenciales de las no esenciales dentro de un objeto. Si un objeto
tiene más características de las necesarias los mismos resultarán difíciles de usar,
modificar, construir y comprender.
La misma genera una ilusión de simplicidad dado a que minimiza la cantidad de
características que definen a un objeto.
9. Durante años, los programadores se han dedicado a construir aplicaciones muy
parecidas que resolvían una y otra vez los mismos problemas. Para conseguir que
sus esfuerzos pudiesen ser utilizados por otras personas se creó la POO que
consiste en una serie de normas para garantizar la interoperabilidad entre
usuarios de manera que el código se pueda reutilizar.
10. A grandes rasgos, la abstracción, permite que dispongamos de las características
de un objeto que necesitemos. Si necesitamos el objeto Persona, podríamos poner
nombre, edad, dirección, estado civil, etc. Si lo necesitamos en un sistema
administrativo, pero, si lo requerimos para el área de biología, dentro de sus
atributos quizá tengamos, ADN, RND, Gen x1, Gen x2, etc., y los atributos antes
mencionados no sean requeridos. En general, podemos decir que Persona cuenta
con todos los atributos mencionados aquí, pero por el proceso de abstracción
excluimos todos aquellos que no tienen cabida en nuestro sistema. Se define como
un método por el cual se rescatan los datos relevantes y se ignoran los
irrelevantes.
11. Consiste en visualizar tu objetivo en tu mente, y descomponerlo en varias partes,
y a su vez, descomponer estas partes en otras subpartes, y así sucesivamente,
hasta tener partes elementales y atómicos que no se pueden descomponer (o que
no convienen).
12. Supongamos que queremos programar una silla.
Bueno, pero que es una silla? Como esta compuesta?
La silla tiene un respaldo, y patas
Bueno, entonces ya tenemos ahora dos objetos separados, Respaldo y Patas, que
juntos forman una silla.
Bueno, ¿pero que tienen las patas?
Bueno, tienen madera.
Entonces tenemos un nuevo objeto, Madera, que forma una Pata, que junto a
Respaldo, forman una silla.
Pero ¿que tiene el Respaldo? bueno, tiene un Almohadón. Y el Almohadón? Bueno,
tiene algodón.
13. Entonces, hemos descompuesto una silla, en varias partes atómicas, obteniendo el
siguiente gráfico:
> Madera > Pata >>>>>>>>>>>>>>>>>>>> SILLA
> Algodón > Almohada > Respaldo >>>>>>^
14. A la hora de programar, lo ideal es empezar desde lo mas abstracto (partes mas
pequeñas) y luego seguir por las partes menos abstractas (mas grandes).
Ya que, sin Madera, no se puede obtener una Pata, y sin una Pata, no se puede
obtener una Silla.
Se comenzarías programando la Madera y el Algodón, luego la Pata y la
Almohada, luego el Respaldo y finalmente, la Silla.
Por esto es muy importante la abstracción de datos, ya que tener este tipo de
mecánica para programar te permite tener un programa mas estable.
Si quieres que la silla sea de oro, simplemente, modificas el elemento Madera para
que sea Oro, y eso afectaría la pata y a la silla. No modificarías el código de TODA
la silla entera (que seria tu único elemento si no utilizas la abstracción).
15. public class Conjunto {
private char recipiente[ ];
private int tam;
public Conjunto(){
recipiente = new char[256];
tam = 0;
}
public Conjunto(Conjunto S){
recipiente = new char[256];
for (int i = 0; i < S.length; i++)
recipiente[i] = S. recipiente[i];
tam = S.tam;
}
16. La programación orientada a objetos es la agregación de varias técnicas de
programación que se han desarrollado con el correr del tiempo. Su uso se está
difundiendo mucho por la importancia que tiene el desarrollo de interfaces para
programas, las que de una manera muy natural pueden implementarse usando
técnicas de abstracción y programación por objetos. Aunque usar la abstracción de
datos podría resultar difícil, es más difícil no hacerlo, pues en algunos casos se
dura el doble de tiempo programando, vale la pena el esfuerzo, pues la mejora en
la modularidad de los programas que produce aumenta mucho su calidad.