Está en la página 1de 16

Abstracción de Datos

y
Encapsulamiento
OBJETIVOS ESPECÍFICOS:
1. Definir el concepto de abstracción de datos y encapsulamiento con sus
propias palabras, según lo estudiado en clase.
2. Discutir la abstracción de datos y encapsulamiento y tipos de abstracción,
usando ejemplos de la vida cotidiana, basado en lo estudiado en clase.
CONTENIDO:
3. Definición
1. Resolver un deproblema propuesto
abstracción por el docente, usando la abstracción de
de datos.
datos
2. y encapsulamiento
Definición en la programación orientada a objetos, con un buen
de encapsulamiento.
margen
3. Tipos de
de precisión.
abstracción existentes.
4. Ejemplos de programas resueltos donde se aprecia la abstracción de datos
y encapsulamiento de la programación orientada a objetos.
5. Resolución de problema usando programación orientad a objetos, haciendo
énfasis en la abstracción de datos y encapsulamiento.1.
Abstracción

JEAN PIAGET:
“ La abstracción es el proceso mediante el cual el niño se separa de
sus primitivos conceptos, inconscientes e individuales, y llega a los
conceptos generales. Sitúa dicho proceso al término de la infancia,
coincidiendo con el comienzo de la adolescencia”

La abstracción puede ser definida como la operación intelectual que


separa las cualidades de un objeto para considerarlas aisladamente o
para analizar al objeto en su pura esencia o noción.
Abstracción
Métodos de Abstracción

Procedimiento sin parámetros y con parámetros


Métodos de Abstracción
Especificación de un Procedimiento

Cláusulas de la especificación cuasi-formal

Indica cómo deben ser los argumentos en la invocación de la


función
Necesita

Indica qué es lo que retorna una función al invocarla


Produce

Indica que en la invocación de la función alguna de las


entradas (argumentos) se modifica y cómo es dicha
modificación
Modifica
Especificación de un Procedimiento

Indica un efecto lateral en la invocación a una función


Efecto

Indica que al invocar a la función con unos valores


concretos de las entradas se produce una modificación,
un resultado, o un efecto lateral excepcional
Excepción

Indica que al invocar a la función con unos valores


concretos de las entradas se produce un error
Error
Clases de Abstracciones

Abstracci Abstracci Abstracci


ón ón ón de
Funcional Iterativa Datos
Clases de Abstracciones

•Abstracción Funcional
• La abstracción funcional nos permite extender la máquina virtual
definida por el lenguaje de programación añadiendo nuevas
operaciones, por ejemplo, la operación intercambia del apartado.
Debe observarse, que una abstracción funcional puede ser una
función o un procedimiento.

•Abstracción Iterativa
• La abstracción iterativa es una generalización de la iteración de la
máquina virtual definida por el lenguaje de programación
permitiéndonos iterar (sin orden) sobre los objetos de los tipos de
datos. Así, por ejemplo, una abstracción iterativa permite acceder a
cada uno de los elementos de un conjunto A y realizar con éstos
alguna operación concreta.

•Abstracción de Datos
• La abstracción de datos nos permite añadir nuevos tipos de datos a la
máquina virtual definida por el lenguaje de programación y un
conjunto de operaciones para manipular los objetos de los nuevos
tipos. Por ejemplo, en C el tipo de dato Racional no está predefinido
pero podría incorporarse fácilmente definiendo dicho tipo junto con un
conjunto de funciones para, al menos, poder crearlos y poder acceder
a sus campos característicos (el numerador y el denominador).
Ejemplo de Abstracción

El Objeto Coche

•Abstracción de datos •Abstracción Funcional


• De forma semejante a la anterior, • Funcionalmente, un coche
un coche tiene las siguientes puede realizar las siguientes
características o atributos: acciones:
• Color • Ir
• Velocidad • Parar
• Tamaño • Girar a la derecha
• Carburante • Girar a la izquierda
Encapsulamiento

Esta característica puede ser definida como el agrupamiento


de atributos (variables o constantes) y métodos en una clase

Se logra el encapsulamiento al ocultamiento del estado, es decir,


de los datos miembro, de un objeto de manera que sólo se puede
cambiar mediante las operaciones definidas para ese objeto

Cada objeto está aislado del exterior, es un módulo natural, y la


aplicación entera se reduce a un agregado o rompecabezas de
objetos. El aislamiento protege a los datos asociados a un objeto
contra su modificación por quien no tenga derecho a acceder a
ellos, eliminando efectos secundarios e interacciones
Ilustrando el Encapsulamiento

Atributos Métodos Clase


Ejemplo de Encapsulamiento

El Objeto Coche

Operaciones del Coche Estado del Coche


Ir , Girar a la derecha , Moviéndose ,Parado,
girar a la izquierda Girando
Las Operaciones y estado de un objeto son
sus miembros o partes izquierda

El volante representa un interfaz público hacia el


mecanismo de giro de un coche
La implementación del volante es privada y sobre
ella sólo puede actuar el propio volante
Ejemplo de Encapsulamiento
El siguiente programa permite Calcular el Área de Un Circulo

Public class Circulo { Declaración de clase circulo


Private float radio0; //atributos privados (entidad)
Private final float pi=3.14

Public void setRadio (float rad) { Método que recibe para


If rad (rad >0.0) // Radio debe ser mayor que cero modificar el radio
Radio= rad; //establece el valor de radio
Else return;
}

Método que sirve


Public float area (){ //No recibe parametros de Interfaz Para
Return (pi*radio*radio);// Retorna el area Calcular el area
}
//Funcion main Clase Principal
Public static void main(string argd{}){
Instanciando la clase
Circulo para Crear el objeto
Circulo objCirc_1= newCirculo();
objcirc_1
Ejemplo de Encapsulamiento

Entrada de
Datos
InputStreamReader isr= new InputStreamReader(System.in); almacenando
BufferedReader fd= new BufferedReader(isr); en los
atributos
System.out.println("Ingrese la hora de entrada del vehiculo:"); Objeto V
Radio_e=dbl.parsedbl.fd.readLine());

Objcirc_1.radioset(radio_e); Almacenando en el atributos Radio por


pase de parámetros al método setradio

Llama al método
area calculandolo
System.out.println(“El area del circulo es “+area());
directamente con el
}
atributo radio
}
}
Ejemplo de Encapsulamiento

public class Rectangulo {


public int ancho;
public int alto;
public Punto origen;
Rectangulo (int w, int h, Punto x)
{
ancho = w;
If ancho >0 then
alto = h;
Else
Alto =2;
origen = x;
}
public int area ()
{
return alto * ancho;
}
}

También podría gustarte