Sunteți pe pagina 1din 11

Programación II

Un ejemplo sobre Colecciones

MSc. José Ben-Hur Saravia M.


Problema
● Crear una aplicación para almacenar los
diferentes contactos que tiene una persona.
● Los datos que se deben almacenar son:
nombres, apellidos, dirección, teléfono,
telefonoMobil y natalicio.
Analisis
● Se debe crear una clase para crear los objetos
contacto y una clase para almacenar cada
contacto
● Se deben crear los métodos correpondientes a
la entrada de valores para los respectivos
atributos.
● Se deben realizar búsquedas de algún contacto
en particular, utilizando alguno de los atributos
como parámetro
Desarrollo
● Crear la clase
Object subclass: #Contactos
instanceVariableNames: 'nombs apes tel1 cel1
dir nata'
classVariableNames: ''
poolDictionaries: ''
category: 'ClasesProgra2'
Desarrollo
● Crear métodos accessors
● Crear método para capturar datos básicos.
nombs: nombres apes: apellidos tel1: telefono
nombs := nombres.
apes := apellidos.
tel1 := telefono
Desarrollo
● Crear la clase que manejará la lista de
contactos. Escogemos una OrderedCollection
● La clase debera ser una subclase de la clase
OrderedCollection
OrderedCollection subclass: #LContactos
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: 'ClasesProgra2'
Desarrollo
● Crear los métodos de búsqueda y reporte para la lista de
contactos.
● Método para visualizar lista de contactos
verLContactos
Transcript clear.
self do: [:ele | Transcript show: ele nombs;
tab;
show: ele apes;
tab;
show: ele tel1;
tab;
cr]
Desarrollo
● Método para buscar contacto según el nombre
buscaNomb: unNombre
| coleSele nombre |
nombre := unNombre.
coleSele := self select: [:ele | ele nombs = nombre].
coleSele do: [:ele2 | Transcript show: ele2 nombs;
tab;
tab;
show: ele2 apes;
tab;
tab;
show: ele2 tel1;
cr]
Prueba
● Abrir un Workspace
● Crear una instancia de la clase Contactos
a:=Contactos new.
● Dar valores a los atributos
a nombs:'Jose' apes:'Salinas' tel1:'2222-1111'
● Crear otros objeto de tipo Contactos.
b:=Contactos new.
b nombs:'Lola' apes:'Flores' tel1:'2323-2323'.
c:=Contactos new.
c nombs:'Jose' apes:'Flores' tel1:'2223-2223'.
Prueba
● Crear una instancia de la clase LContactos
x:=LContactos new.
● Agregar objetos a esta colección (objetos de tipo contacto)
x add:a
x add:b.
x add:c
● Ver lista de contactos.
x verLContactos.
● Buscar un contacto por nombre.
x buscaNomb.
Tarea
● Escribir un método en la clase Lcontactos que
realice la búsqueda por nombre y apellido a la
vez.

S-ar putea să vă placă și