SlideShare una empresa de Scribd logo
Abstracción de datos en java
 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.
 Abstracción
 Aislar
 Datos
 Características esenciales
 Objeto
 Código
 Reutilizar
 Datos relevantes
 Objetivo
 Descomponer
 Partes
 Subpartes
 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.
 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).
 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.
 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.
 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.
 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.
 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).
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.
 Entonces, hemos descompuesto una silla, en varias partes atómicas, obteniendo el
siguiente gráfico:
> Madera > Pata >>>>>>>>>>>>>>>>>>>> SILLA
> Algodón > Almohada > Respaldo >>>>>>^
 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).
 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;
 }
 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.
 https://mx.answers.yahoo.com/question/index?qid=20120218143642AAdjplm

Más contenido relacionado

PPSX
Abstracción de datos
PPTX
PPTX
Unidad 1 introducción a las estructuras de datos
PPTX
1.3 uso de tipos de datos abstractos
PPT
Datos abstractos
PPTX
Fundamentos del análisis orientado a objetos
PPTX
Diapositiva estructura de datos unidad 1
PPT
Diseño Orientado a Objetos
Abstracción de datos
Unidad 1 introducción a las estructuras de datos
1.3 uso de tipos de datos abstractos
Datos abstractos
Fundamentos del análisis orientado a objetos
Diapositiva estructura de datos unidad 1
Diseño Orientado a Objetos

La actualidad más candente (19)

PPTX
Presentación poo
ODP
1.1 elementos en el paradigma orientado a objetos
PPT
Modelo Dinamico
PPTX
Paradigma Orientado a Objetos
PPTX
Analisis y diseño de sistemas
PPT
Analisis y diseño orientado a objetos exposicion
PPTX
Diapositivas de la poo
PPT
12 Clase Analisis Orientado A Objetos
PPT
Abstraccion ppt
PPT
ProgramacióN Orientada A Objetos
PPT
e.si.m.l.p
PPT
Programacion Orientada A Objetos
PDF
Elementos básicos de la programación orientada a objetos.
PPT
Copia de e.si.m.l.p
PPT
Copia de e.si.m.l.p
PPT
Realizarmanipulacion
PPT
Realizarmanipulacion
Presentación poo
1.1 elementos en el paradigma orientado a objetos
Modelo Dinamico
Paradigma Orientado a Objetos
Analisis y diseño de sistemas
Analisis y diseño orientado a objetos exposicion
Diapositivas de la poo
12 Clase Analisis Orientado A Objetos
Abstraccion ppt
ProgramacióN Orientada A Objetos
e.si.m.l.p
Programacion Orientada A Objetos
Elementos básicos de la programación orientada a objetos.
Copia de e.si.m.l.p
Copia de e.si.m.l.p
Realizarmanipulacion
Realizarmanipulacion
Publicidad

Similar a Abstracción de datos en java (20)

DOCX
Abstraccion
DOCX
Abstraccion
PDF
Abstracción y clasificación
PPTX
Programación orientada-a-objetos
PPTX
Abstraccion
PPTX
Abstraccion
PPTX
Programacion Orientada a Objetos
PDF
Orientacion a objetos cristina cachero
PPTX
Programación orientada a objetos
PPTX
Presentación1
DOCX
Abstracción en poo
DOCX
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
PPTX
Leydi jovana
PDF
Introducción a la P.O.O en Introducción a la Programación
PPTX
2-Unidad 1. Paradigma de la Programación-Orientación a Objetos
DOCX
Abstraccion
PPTX
Programación orientada a objetos
Abstraccion
Abstraccion
Abstracción y clasificación
Programación orientada-a-objetos
Abstraccion
Abstraccion
Programacion Orientada a Objetos
Orientacion a objetos cristina cachero
Programación orientada a objetos
Presentación1
Abstracción en poo
CUESTIONARIO SOBRE PROGRAMACIÓN RELACIONADA A OBJETOS
Leydi jovana
Introducción a la P.O.O en Introducción a la Programación
2-Unidad 1. Paradigma de la Programación-Orientación a Objetos
Abstraccion
Programación orientada a objetos
Publicidad

Último (20)

PDF
Híper Mega Repaso Histológico Bloque 3.pdf
DOCX
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
DOCX
V UNIDAD - PRIMER GRADO. del mes de agosto
PDF
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
PDF
TOMO II - LITERATURA.pd plusenmas ultras
PDF
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
PDF
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
PPTX
caso clínico iam clinica y semiología l3.pptx
PDF
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
PDF
Metodologías Activas con herramientas IAG
PDF
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
PDF
Punto Critico - Brian Tracy Ccesa007.pdf
DOCX
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
PDF
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
PDF
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
PDF
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
PDF
Fundamentos_Educacion_a_Distancia_ABC.pdf
PDF
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
DOCX
PLAN DE CASTELLANO 2021 actualizado a la normativa
PDF
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf
Híper Mega Repaso Histológico Bloque 3.pdf
PROYECTO DE APRENDIZAJE para la semana de fiestas patrias
V UNIDAD - PRIMER GRADO. del mes de agosto
Crear o Morir - Andres Oppenheimer Ccesa007.pdf
TOMO II - LITERATURA.pd plusenmas ultras
IDH_Guatemala_2.pdfnjjjkeioooe ,l dkdldp ekooe
el - LIBRO-PACTO-EDUCATIVO-GLOBAL-OIEC.pdf
caso clínico iam clinica y semiología l3.pptx
Unidad de Aprendizaje 5 de Matematica 1ro Secundaria Ccesa007.pdf
Metodologías Activas con herramientas IAG
PFB-MANUAL-PRUEBA-FUNCIONES-BASICAS-pdf.pdf
Punto Critico - Brian Tracy Ccesa007.pdf
UNIDAD DE APRENDIZAJE 5 AGOSTO tradiciones
Habitos de Ricos - Juan Diego Gomez Ccesa007.pdf
La Evaluacion Formativa en Nuevos Escenarios de Aprendizaje UGEL03 Ccesa007.pdf
Guia de Tesis y Proyectos de Investigacion FS4 Ccesa007.pdf
Fundamentos_Educacion_a_Distancia_ABC.pdf
Escuela de Negocios - Robert kiyosaki Ccesa007.pdf
PLAN DE CASTELLANO 2021 actualizado a la normativa
MATERIAL DIDÁCTICO 2023 SELECCIÓN 1_REFORZAMIENTO 1° BIMESTRE.pdf

Abstracción de datos en java

  • 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.
  • 3.  Abstracción  Aislar  Datos  Características esenciales  Objeto  Código  Reutilizar  Datos relevantes  Objetivo
  • 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.