Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Capítulo 1. Tipos de Datos Abstractos y
Capítulo 1. Tipos de Datos Abstractos y
❷ Especificaciones informales:
❷ Predomina el lenguaje natural
❷ Poco precisas y breves → ambigüedad
❷ Sencillas de escribir, leer y entender
❷ Especificaciones formales:
❷ Lenguaje algebraico → verificación formal de programas
❷ Precisas y breves
❷ Pueden resultar más complejas de escribir, leer y entender
1.3.1 Especificaciones informales
Características de la OO:
• Herencia
• Polimorfismo
Objetivos conseguidos:
• Estructuración
• Encapsulación
1.4 Programación Orientada a
Objetos
Conceptos de la OO:
• Clase
• Objeto
• Propiedad
• Método
• Herencia
• Polimorfismo
1.4 Programación Orientada a
Objetos
Estudiaremos:
• Principales técnicas de implementación
de TDA’s
• Realización de dichas técnicas
mediante un lenguaje orientado a
objetos, en concreto Java.
1.4 Programación Orientada a
Objetos
Java:
• Diseñado desde el principio como un
lenguaje orientado a objetos.
• Integración en el ámbito de las
telecomunicaciones, en concreto,
internet.
• Lenguaje de gran actualidad e interés.
1.4.1 Clases y Objetos
Declaración de un Objeto:
<nombre_de_la_clase> <nombre_del_objeto>
Ejemplo:
Class Vehiculo{ }
Vehiculo miVehiculo;
miVechiculo = new Vehiculo();
Vehiculo
Motocicleta Coche
1.4.3 Herencia y Polimorfismo
Herencia multinivel
Vehiculo
Motocicleta Coche
Compacto Monovolumen
1.4.3 Herencia y Polimorfismo
Conceptos de Polimorfismo:
❷ Variables dinámicas:
❷ Variables cuyo espacio de almacenamiento requerido se
asigna en tiempo de ejecución
❷ Se accede a ellas por medio de apuntadores
❷ Podemos crear variables dinámicas asignándoles
memoria
❷ Podemos destruir variables dinámicas liberando memoria
❷ Se alojan en el segmento montón (heap)
1.4.5.1 Implementaciones éstáticas y
dinámicas
Estructura estructura;
estructura = new Estructura();
estructura.dato[i]=x;
y=estructura.dato[i];
1.4.5.2 Representaciones contiguas y
enlazadas
Para la situación (2), Java permite la siguiente forma de
representación contigua:
Estructura estructura;
estructura = new Estructura(10);
1.4.5.2 Representaciones contiguas y
enlazadas
Para la situación (3) disponemos de varias alternativas. Si sabemos en tiempo
de compilación el número aproximado de elementos, se puede establecer
una cantidad máxima maxLongitud de elementos que podrán contener los
casos del TDA
elemento1 = (Elemento)elemento2.clone();
1.4.6.3 Comparación de objetos
import java.io.*;
public class Util {
static public int leeEntero() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int i = Integer.valueOf(br.readLine().trim()).intValue();
return i;
}
static public double leeDoble() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
double d = Double.valueOf(br.readLine().trim()).doubleValue();
return d;
}
static public String leeString() throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
return s;
}
}
1.4.6.3 Comparación de objetos
Interface Comparable
public interface Comparable {
public boolean mayorQue(Object elemento);
public boolean mayorIgualQue(Object elemento);
public boolean menorQue(Object elemento);
public boolean menorIgualQue(Object elemento);
} // fin interface Comparable
Interface Valuable
public interface Valuable {
public int valor();
} // fin interface Valuable
1.4.6.3 Comparación de objetos