Estructuras de Datos y
Algoritmos
Primeros
ejemplos de
TDA
Repaso POO
Programacin Orientada a
Objetos
Principios
encapsulamiento
abstraccin
herencia
polimorfismo
POO y Java:
encapsulamiento
Todo est dentro de clases
variables, mtodos y constructores
dentro de una clase deben ir solo cosas
relacionadas
variables y los mtodos que utilizan esas
variables
ejemplo
POO y Java: abstraccin
Private: permite restringir el acceso a los
campos de la clase para que se deban usar
los mtodos que realmente definen lo que es
el TDA que se est implantando
Las variables y clases estticas permiten
cambiar el estado de todos los objetos en la
clase
ejemplo
POO y Java:
Polimorfismo
Un mtodo puede decidir dinmicamente (al
momento de la ejecucun) qu va a hacer.
ejemplo
POO y Java: herencia
Hay clases y hay subclases (extensiones de
clase)
lo que est en la clase tambin est en la
subclase
la subclase puede redefinir mtodos y
variables
ejemplo
TDA
Un tipo de dato abstracto es una coleccin de
datos sobre los cuales se define un conjunto de
operaciones
Una clase de Java es ideal para implantar TDAs:
clase encapsula datos y operaciones
variables definen la estructura de datos
mtodos pblicos son las operaciones que definen el
TDA
Metfora del TDA
Conjunto de operaciones forman una pared
forman una interfase entre los programas y
la estructura de datos
Diseo de una Clase
Ilustracin Creacin Clase
Abstraccin: Qu es una esfera?
Una esfera est completamente determinada
por su radio
todo lo dems es irrelevante o se puede
calcular a base del radio
operaciones: radio, circunferencia,
volumen, area, dimetro.
Ilustracin Creacin Clase
TDA Esfera:
Una esfera es un nmero real positivo llamado
radio con las siguientes operaciones:
construir(r): construye una esfera de radio r
radio(): devuelve el radio
diametro(): devuelve el dimetro
volumen(): devuelve el volumen
area(): devuelve el rea de la superficie
circunferencia(): devuelve la circunferencia
Ilustracin Creacin Clase
Diseo de Estructura de Datos:
basta con una variable double para
almacenar el radio
Ilustracin Creacin Clase
Diseo de Algoritmos:
construir(r): si (r>=0) radio = r; si no radio=0.0;
radio(): devuelve radio
diametro(): devuelve 2.0 * radio
volumen(): devuelve 4.0 * * radio2
area(): devuelve (4.0 * * radio3) / 3.0
circunferencia(): devuelve 2.0 * radio *
Ilustracin Creacin Clase
(modificado del texto)
public class Sphere { public double circumference() {
private double theRadius; return [Link] * diameter();
} // end circumference
public Sphere(double initialRadius) {
if (initialRadius >= 0) theRadius = initialRadius; public double area() {
else theRadius = 0.0; return 4.0 * [Link] * theRadius *
} // end constructor theRadius;
} // end area
public double radius() {
return theRadius; public double volume() {
} // end radius return (4.0*[Link] * [Link](theRadius,
3.0)) / 3.0;
public double diameter() { } // end volume
return 2.0 * theRadius; } // end Sphere
} // end diameter
Otra Clase
Clase esfera con
color
No reinvente la
rueda!
Creacin Otra Clase
Abstraccin: Qu es una esfera con color?
Ya creamos una esfera
Es una esfera con un atributo de color
operaciones: crear, color y todas las
operaciones de la esfera.
Creacin Otra Clase
TDA Esfera con color:
Una esfera con color aade a la esfera un
atributo color y las siguientes operaciones:
construir(c,r): construye una esfera de radio r y
color c
color(): devuelve el color
Creacin Otra Clase
Diseo de Estructura de Datos:
basta con una variable Color llamada color
para almacenar el color
Creacin Otra Clase
Diseo de Algoritmos:
construir(c,r): construir(r); color = c;
color(): devuelve color
(note que construir(r) se refiere a la operacin construir del
TDA esfera)
Creacin Otra Clase
(modificado del texto)
import [Link];
public class ColoredSphere extends Sphere {
private Color color;
public Color getColor() {
public ColoredSphere(Color c, double
initialRadius) { // Returns the color of the sphere.
super(initialRadius); // Precondition: c is the desired color.
color = c; // Postcondition: None.
} // end constructor return color;
} // end getColor
} // end ColoredSphere