apo1 - presentacion nivel 3
DESCRIPTION
Esta es la presentación del Nivel 3 del curso "ISIS-1204 Algorítmia y Programación por Objetos 1" (APO1) de la Universidad de los Andes, Bogotá, Colombia.TRANSCRIPT
![Page 1: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/1.jpg)
ALGORÍTMICA Y PROGRAMACIÓN 1 (APO 1)
NIVEL 3
Mario José Villamizar Cano
Oficina ML-637
http://sistemas.uniandes.edu.co/~mj.villamizar24/dokuwiki/doku.php
Grupo de Tecnologías de Información y Comunicación (COMIT)
Departamento de Ingeniería de Sistemas y Computación
Universidad de los Andes, Bogotá D.C., Colombia
![Page 2: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/2.jpg)
http://twitter.com/mariocloud
http://linkedin.com/in/mariojosevillamizarcano
REDES SOCIALES
NIVEL 3
![Page 3: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/3.jpg)
NIVEL
Temas principales
Contenedoras de tamaño fijo
Declaración de un arreglo
Inicialización de un arreglo
Acceso a los elementos de un arreglo
Componentes de una instrucción repetitiva
Patrones de algoritmos para instrucciones repetitivas
NIVEL 3
![Page 4: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/4.jpg)
TEMAS PRINCIPALES
Contenedoras de tamaño fijo (simples y objetos)
Contenedoras de tamaño variable (objetos)
Instrucciones repetitivas
Creación de una clase completa en Java
Entender la documentación de Java (Javadoc)
NIVEL 3
![Page 5: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/5.jpg)
CASOS DE ESTUDIO
NIVEL 3
1 Caso de estudio: Las Notas de un Curso
Contenedoras de tamaño fijo con tipos de datos simples
![Page 6: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/6.jpg)
CASOS DE ESTUDIO
NIVEL 3
2 Caso de estudio: Reservas de un vuelo
Contenedoras de tamaño fijo con objetos
![Page 7: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/7.jpg)
CASOS DE ESTUDIO
NIVEL 3
3 Caso de estudio: Tienda de Libros
Contenedoras de tamaño variable
![Page 8: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/8.jpg)
HOJAS DE TRABAJO
2 Hojas de trabajo: Parqueadero y Lista de Contactos
NIVEL 3
![Page 9: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/9.jpg)
CASO DE ESTUDIO – LAS NOTAS DE UN CURSO
NIVEL 3
![Page 10: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/10.jpg)
CONTENEDORAS DE TAMAÑO FIJO - ARREGLOS
Utilizadas cuando se tienen un número fijo de elementos
Todos los elementos se almacenan bajo una misma variable o atributo
Numeración desde cero hasta el tamaño del arreglo menos uno
Ejemplo:
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
Valores (datos simples
u objetos)
Posiciones:
Tamaño del arreglo: 12
notas
NIVEL 3
![Page 11: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/11.jpg)
DECLARACIÓN DE UN ARREGLO
La definición de un arreglo
public class Curso
{
//----------------------------------------------------------------
// Constantes
//----------------------------------------------------------------
private final static int TOTAL_EST = 12;
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private double [ ] notas;
}
notas
NIVEL 3
![Page 12: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/12.jpg)
INICIALIZACIÓN DE UN ARREGLO
Utilizada para definir el número de elementos que va a tener el arreglo y
reservar el espacio en memoria. En este momento el valor de cada elemento es
indefinido
public class Curso
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public Curso( )
{
notas = new double [TOTAL_EST];
}
}
d d d d d d d d d d d d
notas
d = double
NIVEL 3
![Page 13: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/13.jpg)
ACCESO A LOS ELEMENTOS DE UN ARREGLO
Un índice permite acceder y modificar un elemento de un arreglo
public class Curso
{
public void modificarValores( )
{
notas[0] = 2.0;
notas[1] = 3.0;
notas[2] = 4.0;
notas[3] = 5.0;
}
}
2.0 3.0 4.0 5.0 d d d d d d d d
notas
d = double
NIVEL 3
![Page 14: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/14.jpg)
ACCESO A LOS ELEMENTOS DE UN ARREGLO
Un índice permite acceder y modificar un elemento de un arreglo
public class Curso
{
public void consultarValores( )
{
double nota0 = notas[0] ;
double nota1 = notas[1] ;
double nota2 = notas[2] ;
notas[3] = 4.5;
double nota3 = notas[3] ;
tamanio = notas.length;
}
}
2.0 3.0 4.0 4.5 d d d d d d d d
notas
d = double
Operador especial de Java que
permite consultar el tamaño de
un arreglo.
NIVEL 3
![Page 15: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/15.jpg)
INTRUCCIONES REPETITIVAS
Elementos del while
<inicio>
while( <condición> )
{
<cuerpo>
<avance>
}
Ejemplo con while (Clase Curso)
public double darPromedio( )
{
double suma = 0.0;
int indice = 0;
while( indice < TOTAL_EST )
{
suma += notas[indice];
indice++;
}
return suma/TOTAL_EST;
}
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
![Page 16: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/16.jpg)
INTRUCCIONES REPETITIVAS
Elementos del for
<inicio1>
for (<inicio2>; <condición>; <avance> )
{
<cuerpo>
}
NIVEL 3
![Page 17: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/17.jpg)
INTRUCCIONES REPETITIVAS
Elementos del for
public double darPromedio( )
{
double suma = 0.0;
for( int indice = 0; indice < TOTAL_EST; indice++)
{
suma += notas[indice];
}
return suma/TOTAL_EST;
}
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
![Page 18: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/18.jpg)
PATRONES DE ALGORITMOS
Patrón de recorrido total
Para modificar algunos elementos del arreglo
Ejemplo: Definir un método en la clase Curso que adiciona 0.2 a los
estudiantes con nota inferior a 3.0
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne el número de
estudiantes que aprobaron el curso (nota mayor o igual a 3).
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
![Page 19: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/19.jpg)
PATRONES DE ALGORITMOS
Patrón de recorrido parcial
Para modificar algunos elementos del arreglo
Ejemplo: Definir un método en la clase Curso que incremente la nota de los
estudiantes en 0.5 hasta que algún estudiante obtenga una nota superior o
igual a 4.5.
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne si algún
estudiantes sacó 5.0 en el curso.
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
![Page 20: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/20.jpg)
PATRONES DE ALGORITMOS
Patrón de doble recorrido
Para calcular alguna propiedad sobre los elementos del arreglo
Ejemplo: Definir un método en la clase Curso que retorne la nota que
aparece el mayor número de veces.
3.5 2.8 5.0 3.2 2.1 4.5 3.6 5.0 4.9 2.7 4.7 3.4
0 1 2 3 4 5 6 7 8 9 10 11
notas
NIVEL 3
![Page 21: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/21.jpg)
PRÓXIMA CLASE - LABORATORIO
DESARROLLO DE LAS TAREA 2, 3, 4 Y 5
NIVEL 3
![Page 22: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/22.jpg)
PREGUNTAS
NIVEL 3
![Page 23: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/23.jpg)
CONTENEDORAS DE TAMAÑO FIJO – ARREGLOS
MANEJO DE OBJETOS
NIVEL 3
![Page 24: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/24.jpg)
CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
NIVEL 3
![Page 25: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/25.jpg)
CASO DE ESTUDIO DEL AVIÓN – ARREGLOS DE OBJETOS
NIVEL 3
![Page 26: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/26.jpg)
CONTENEDORAS DE TAMAÑO FIJO ALMACENANDO OBJETOS
NIVEL 3
![Page 27: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/27.jpg)
DECLARACIÓN DE UN ARREGLO DE OBJETOS
La definición de un arreglo de objetos
public class Avion
{
//----------------------------------------------------------------
// Constantes
//----------------------------------------------------------------
public final static int SILLAS_EJECUTIVAS = 8;
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private Silla[ ] sillasEjecutivas;
}
NIVEL 3
![Page 28: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/28.jpg)
INICIALIZACIÓN DE UN ARREGLO DE OBJETOS
La inicialización de un arreglo de objetos
public class Avion
{
public final static int SILLAS_EJECUTIVAS = 8;
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public Avion()
{
sillasEjecutivas = new Silla[SILLAS_EJECUTIVAS];
}
}
NIVEL 3
![Page 29: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/29.jpg)
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado
contarSillasEjecutivasDesocupadas, el cual retorna el número de sillas
ejecutivas que están desocupadas.
En la clase Avion declarar un método denominado buscarPasajeroEjecutivo el
cual retorna la Silla en la que se encuentra el pasajero identificado con la cédula
que se pasa como parámetro. Si no hay ningún pasajero con la cédula el método
debe retornar null.
En la clase Avion declarar un método denominado buscarSillaEconomicaLibre
el cual retorna una silla económica disponible en la localización recibida como
parámetro (ventana, centro o pasillo). Si no existe ninguna el método deberá
retornar null.
NIVEL 3
![Page 30: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/30.jpg)
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado asignarSillaEconomica, el
cual asigna al pasajero que recibe como parámetro una silla en clase económica
que esté libre (en la ubicación recibida como parámetro). Si el proceso tiene
éxito retorna verdadero, en caso contrario, retorna falso.
En la clase Avion declarar un método denominado anularReservaEjecutivo el
cual anula la reserva en clase ejecutiva que tenía el pasajero con la cédula
recibida como parámetro. Retorna verdadero si el proceso tiene éxito.
En la clase Avion declarar un método denominado
contarVentanasEconomicas el cual retorna el número de puestos disponibles
en una ventana, en la zona económica del avión.
NIVEL 3
![Page 31: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/31.jpg)
EJERCICIOS CON ARREGLOS DE OBJETOS
Ejercicios con arreglos de objetos
En la clase Avion declarar un método denominado
hayDosHomonimosEconomica, el cual informa si en la zona económica del
avión hay dos personas que se llaman igual. Patrón de doble recorrido.
NIVEL 3
![Page 32: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/32.jpg)
PRÓXIMA CLASE
ANALIZAR EL CASO DE ESTUDIO 3 – TIENDA DE LIBROS
CONTENEDORAS DE TAMAÑO VARIABLE
TODAS LAS TAREAS DEL LIBRO
NIVEL 3
![Page 33: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/33.jpg)
PREGUNTAS
NIVEL 3
![Page 34: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/34.jpg)
CONTENEDORAS DE TAMAÑO VARIABLE
MANEJO DE OBJETOS
NIVEL 3
![Page 35: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/35.jpg)
NIVEL 3
Contenedoras de tamaño variable
Caso de estudio de la tienda de libros
Declaración de un vector de objetos
Inicialización y tamaño de un vector de objetos
Acceso a los elementos de un vector de objetos
Agregar elementos a un vector de objetos
Reemplazar un elemento de un vector de objetos
Eliminar un elemento de un vector de objetos
Ejercicios del caso de estudio de la tienda de libros
Uso de ciclos en otros contextos
Creación de una clase en Java
NIVEL 3
![Page 36: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/36.jpg)
CASO DE ESTUDIO DE LA TIENDA DE LIBROS
NIVEL 3
![Page 37: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/37.jpg)
CASO DE ESTUDIO DE LA TIENDA DE LIBEROS
CONTENEDORAS DE TAMAÑO VARIABLE (VECTOR)
NIVEL 3
![Page 38: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/38.jpg)
CONTENEDORA DE TAMAÑO VARIABLE (VECTORES)
En Java existen varias clases para manejar contenedoras de tamaño variable,
en este nivel se va a utilizar la clase ArrayList.
En un ArrayList no se pueden almacenar grupos de atributos de tipo simple,
sino únicamente grupos de objetos.
En este nivel se va a llamar Vector a cualquier implementación de una
contenedora de tamaño variable.
NIVEL 3
![Page 39: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/39.jpg)
DECLARACIÓN DE UN VECTOR
La definición de un vector de objetos
public class TiendaLibros
{
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private ArrayList catalogo;
private CarroCompras carrito;
}
NIVEL 3
![Page 40: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/40.jpg)
DECLARACIÓN DE UN VECTOR
La definición de un vector de objetos
public class CarroCompras
{
//----------------------------------------------------------------
// Atributos
//----------------------------------------------------------------
private ArrayList itemsCompra;
}
NIVEL 3
![Page 41: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/41.jpg)
INICIALIZACIÓN DE UN VECTOR DE OBJETOS
La inicialización de un vector de objetos se realiza en el constructor de la
clase que lo contiene.
public class TiendaLibros
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public TiendaLibros()
{
catalogo = new ArrayList( );
carrito = new CarroCompras( );
}
}
NIVEL 3
![Page 42: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/42.jpg)
INICIALIZACIÓN DE UN VECTOR DE OBJETOS
En los vectores no es necesario definir el tamaño, en los arreglos es
indispensable hacerlo.
public class CarroCompras
{
//----------------------------------------------------------------
// Constructores
//----------------------------------------------------------------
public CarroCompras()
{
itemsCompra = new ArrayList( );
}
}
NIVEL 3
![Page 43: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/43.jpg)
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
}
}
NIVEL 3
![Page 44: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/44.jpg)
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
catalogo.add(lb2);
}
}
NIVEL 3
![Page 45: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/45.jpg)
AGREGAR ELEMENTOS A UN VECTOR DE OBJETOS
Adición de elementos a u vector de objetos
public class TiendaLibros
{
public void agregarTresLibros( )
{
Libro lb1 = new Libro(“Mi libro 1”, “0011”, 100000);
Libro lb2 = new Libro(“Mi libro 2”, “0012”, 200000);
Libro lb3 = new Libro(“Mi libro 3”, “0013”, 300000);
catalogo.add(lb1);
catalogo.add(lb2);
catalogo.add(0, lb3);
}
}
NIVEL 3
![Page 46: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/46.jpg)
ACCESO A LOS ELEMENTOS EN UN VECTOR DE OBJETOS
Acceso a los elementos de un vector de objetos
public class TiendaLibros
{
public void accederLibros()
{
Libro lb1 = (Libro) catalogo.get(0);
Libro lb2 = (Libro) catalogo.get(1);
}
}
NIVEL 3
![Page 47: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/47.jpg)
REEMPLAZAR UN ELEMENTO EN UN VECTOR DE OBJETOS
Reemplazar un elemento de un vector de objetos
public class TiendaLibros
{
public void reemplazarLibros()
{
Libro lb1 = (Libro) catalogo.get(0);
Libro lb2 = (Libro) catalogo.get(1);
catalogo.set(0, lb2);
catalogo.set(1, lb1);
}
}
NIVEL 3
![Page 48: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/48.jpg)
ELIMINAR UN ELEMENTO EN UN VECTOR DE OBJETOS
Eliminar un elemento de un vector de objetos
public class TiendaLibros
{
public void eliminarLibro()
{
Libro lb = (Libro)catalogo.get(0);
catalogo.remove(lb);
}
}
NIVEL 3
![Page 49: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/49.jpg)
TAMAÑO DE UN VECTOR DE OBJETOS
En los vectores el tamaño se conoce mediante el método size(), en lugar de
utilizar el operador length empleado en los arreglos.
public class TiendaLibros
{
public int darTamanoCatalogo( )
{
return catalogo.size( );
}
}
NIVEL 3
![Page 50: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/50.jpg)
TAMAÑO DE UN VECTOR DE OBJETOS
Determinar si un vector de objetos está vacío.
public class TiendaLibros
{
public boolean estaVacioElCatalogo ( )
{
return catalogo.isEmpty( );
}
}
NIVEL 3
![Page 51: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/51.jpg)
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio - Recorrido Total
En la clase TiendaLibros adicionar un nuevo método denominado
darPrecioUnitarioPromedioLibro, este método deberá retornar el precio
unitario promedio de los libros que hay en el catalogo de la tienda. En caso de
que en el catálogo no hayan libros el método deberá retornar -1.
Modificar el método metodo1 de la clase TiendaLibros para que retorne uno de
los siguientes mensajes:
El precio unitario promedio de los libros que hay en el catálogo es: X
No hay libros en el catálogo
NIVEL 3
![Page 52: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/52.jpg)
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio - Recorrido Parcial
En la clase TiendaLibros agregar un método denominado
buscarLibroPorISBN, este método recibe como parámetro el ISBN del libro que
se está buscando. El método debe retornar el objeto del libro que tiene dicho
ISBN, en caso que no haya un libro con el ISBN recibido como parámetro el
método deberá retornar null.
NIVEL 3
![Page 53: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/53.jpg)
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio – Doble Recorrido
En la clase TiendaLibros adicionar un nuevo método denominado
hayDosLibrosConElMismoTitulo, este método deberá retornar un valor
indicando si en el catálogo de libros que hay en la tienda existen dos libros con el
mismo título.
Modificar el método metodo1 de la clase TiendaLibros para que retorne uno de
los siguientes mensajes:
Si hay dos libros con el mismo título en el catalogo
No hay dos libros con el mismo título en el catalogo
NIVEL 3
![Page 54: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/54.jpg)
EJERCICIOS CON VECTORES DE OBJETOS
Ejercicio – Recorrido parcial
En la clase TiendaLibros adicionar un método denominado eliminarLibro este
método recibe como parámetro el ISBN del libro que se desea eliminar del
catálogo, en caso de que en el catálogo haya un libro con ese ISBN, el libro debe
ser eliminado. El método debe retornar un valor indicando si el libro pudo ser
eliminado o no.
Modificar el método metodo1 de la clase TiendaLibros para que retorne uno de
los siguientes mensajes:
El libro fue eliminado del catálogo
El libro no fue eliminado del catálogo
NIVEL 3
![Page 55: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/55.jpg)
EJERCICIOS CON VECTORES
Tarea 10 de libro
Tarea 11 del libro
NIVEL 3
![Page 56: APO1 - Presentacion nivel 3](https://reader038.vdocuments.mx/reader038/viewer/2022102815/557b390fd8b42ae54f8b4dc5/html5/thumbnails/56.jpg)
PREGUNTAS
NIVEL 3