Académique Documents
Professionnel Documents
Culture Documents
...
}
1
Herencia
En una universidad tenemos distintos tipos de
personas. Hay estudiantes, profesores,
secretarias etc.
Persona
Estudiante Secretaria
Profesor
2
Herencia
Estudiante
3
Herencia
En este caso decimos que Persona es una
superclase de Estudiante.
4
Herencia
Master
5
Herencia
Para indicar que una clase hereda o extiende a otra
clase escribimos:
class <nombre de la clase> extends <nombre de la superclase>
6
Herencia
La clase Object es la única clase que no
tiene superclases.
7
Herencia
¿Qué significa que una clase herede de otra?
Significa que hereda sus métodos y sus atributos. Pero
además puede tener otros atributos y métodos propios
de la clase.
9
Herencia
10
Herencia
11
Herencia
Si una subclase tiene un método con el
mismo encabezado que un método de su
superclase, entonces cuando un objeto de
esta subclase llame al método, Java se va a
dirigir al método de la subclase, no al de la
superclase.
Otras subclases
Estudiante
Profesor Secretaria
15
Polimorfismo
etc...(Otras subclases)
19
Super
Dentro una subclase podemos referirnos a su
superclase usando la palabra super. Con esto
podemos tener acceso a sus métodos y atributos (si
no son privados)
20
Super
No necesitarán entender los puntos 2 y 3, pero sí el
primero:
3. Para usar el constructor de la superclase
22
Super
class Estudiante extends Persona
{
private int ingreso;
private double prom;
private int creditos;
23
Super
24
Super
class Persona
{
...//atributos
public Persona(String n, String d, int f)
{
nombre= n;
direccion= d;
¿Cúal es el error?
fono= f;
}
}
class Estudiante extends Persona
{
...//atributos
public Estudiante(String n, String d, int f, int i)
{
ingreso= i;
prom= 0.0;
creditos=0;
}
)
25
Super
27
Concepto de Algoritmo
28
Concepto de Algoritmo
He aquí la definición:
29
Concepto de Algoritmo
32
Búsqueda y ordenamiento
En todos nuestros ejemplos, se supondrá que
existe un arreglo que contiene datos.
34
Búsqueda y ordenamiento
Veremos un 4to algoritmo de ordenación, más
eficiente que los anteriores: Quicksort.
Implementación:
• El método retornará la posición en que se encontró
el dato, o bien -1 para indicar que el elemento no se
encontró (subíndice inválido).
36
Implementación
37
Búsqueda binaria
Puede aplicarse únicamente a un conjunto ordenado
de datos.
Algoritmo:
4. Se analiza la posición del medio. Si el largo de la lista
es impar, se considera a la posición del medio a
largo/2 -1. Si ahí se encuentra el dato buscado,
terminamos.
5. Si el dato buscado no se encuentra al medio y la lista
es de largo 1, terminar.
6. Si el dato buscado es menor, se busca en el subvector
menor (sin incluir la posición del medio). Se vuelve al
paso 1.
7. Si es mayor, se busca en el subvector mayor (sin
incluir la posición del medio). Se vuelve al paso 1.
Implementación:
• Método que ordena recibe un arreglo como parámetro.
• En el método se modifica el orden de los datos dentro del
arreglo.
• ¡Al terminar la ejecución del método, el arreglo pasado 40
como parámetro queda modificado!
Implementación
public static void ordenarPorSeleccion(int[] arreglo)
{
int ultimo = arreglo.length;
int posMayor, temp;
42
Implementación
public static void ordenarPorInsercion(int[] arreglo)
{
int i, k, aux;
43
Ordenación: Método burbuja
Recorre el arreglo comparando elementos de dos en
dos ( el primero con el segundo, el segundo con el
tercero etc), si uno de estos pares no está en orden, los
intercambia.
44
Ordenación: Método burbuja
45
Implementación
public static void ordenarPorBurbuja(int[] arreglo)
{
int ultimo,i,temp;
for(ultimo= arreglo.length-1; ultimo>0 ; ultimo--)
{
for(i=1; i<= ultimo; i++)
{
if(arreglo[i]< arreglo[i-1])
{
temp= arreglo[i];
arreglo[i]= arreglo[i-1];
arreglo[i-1]= temp;
}
}
}
}
46
Ordenación: Método burbuja
47
¿Qué es recursividad?
Caso Recursivo
48
¿Qué es recursividad?
49
Ejemplo de recursividad en
Java
50
Recursividad puede eliminarse
51
Ordenación: Quicksort
52
Ordenación: Quicksort
14 16 1 17 8 2 15
izquierda derecha
54
Ordenación: Quicksort
Empezamos a mover derecha hacia el centro hasta
que encuentre un elemento menor que el pivote. Si lo
encuentra copia su valor en el elemento al que apunta
izquierda.
pivote=14 2 16 1 17 8 2
izquierda derecha
15
pivote=14 2 16 1 17 8 16
15
izquierda derecha
56
Ordenación: Quicksort
Movemos derecha hacia el centro hasta que encuentre
un elemento menor que el pivote. Si lo encuentra,
copia su valor en el elemento al que apunta
izquierda.
pivote=14 2 8 1 17 8 16
15 izquierda derecha
57
Ordenación: Quicksort
Movemos izquierda hacia el centro hasta que
encuentre un elemento mayor que el pivote. Si lo
encuentra, copia su valor en el elemento al que apunta
derecha.
pivote=14 2 8 1 17 17 16
15 izquierda derecha
2 8 1 14 17 16 15
izquierda derecha
Fin
59
Ordenación: Quicksort
pivote= 2 1 8 1
pivote= 2 1 2 8
izquierda derecha
61
Ordenación: Quicksort
62
Quicksort: Implementación
public static void quicksort(int[] a, int inicio, int fin)
{
//condicion de termino: una lista de tamagno 1
//Podriamos haber dicho if(inicio >= fin)
if(inicio == fin)
return;
//Con este return se termina la ejecucion del metodo
63
Quicksort: Implementación
while(izquierda < derecha)
{
if(mover.equals("ahora_derecha"))
{
while(a[derecha] >= pivote && derecha > izquierda)
derecha--;
a[izquierda]= a[derecha];
mover= "ahora_izquierda";
}
if(mover.equals("ahora_izquierda"))
{
while(a[izquierda] <= pivote && izquierda < derecha)
izquierda++;
a[derecha]= a[izquierda];
mover= "ahora_derecha";
}
}
64
Quicksort: Implementación
//Cuando se termina el while derecha=izquierda
a[derecha]= pivote;
quicksort(a, inicio, derecha-1);
quicksort(a, derecha+1, fin);
}
65
Simulación en Ingeniería
Existen sistemas complejos en diferentes dominios de
problemas que necesitamos entender: Economía,
nueva tecnologías, clima, …
66
Simulación
El modelo del problema abstrae sus propiedades
relevantes.
• La cajera, los clientes que llegan a la caja, el cliente
actualmente atendido.
Ocurrencia de Eventos.
69
Atención de cajas en un
supermercado
70
Atención de cajas en un
supermercado
71