Cursos‎ > ‎miercoles-Objetos‎ > ‎

Clase 8 - Colecciones 2 y otras cosas

SuperResumen

  • Se resolvió el ejercicio de las radios
  • Se vieron distintos tipos de colecciones (Bag, Set, OrderedCollection, SortedCollection, Array)
  • Se vieron sus características más importantes
  • Si tienen o no tamaño variable
    • Tamaño variable - Bag/Set/OrderedCollection/SortedCollection (se les puede mandar el mensaje add: y remove:)
    • Tamaño fijo - Array/String (no se les puede mandar add: y remove:)
  • Si admiten repetidos (casi todas)
  • Si no admiten repetidos (Set)
  • Si tienen algún tipo de orden entre sus elementos
    • NO TIENEN ORDEN: Bag y Set (no se les puede mandar el mensaje first, last, at:)
    • Orden de llegada - OrderedCollection
    • Dada por su posición en la colección - Array/String
    • Definida por el programador - SortedCollection
  • Mensajes asColeccion que retornan una nueva colección del tipo indicado en el mensaje en donde se agregan todos los elementos de la colección receptora del mensaje
  • Para obtener una nueva colección que tiene los elementos de col pero sin repetidos
    col asSet
  • Para obtener una nueva colección que tiene los elementos de col pero ordenados segun un criterio (de mayor a menor altura)
    col asSortedCollection: [:elementoAntes :elementoDespues | elementoAntes altura > elementoDespues altura ]
  • Inmutabilidad: decimos que un objeto es inmutable si no puede cambiar su estado interno (su conjunto de variables) después de su creación
  • Igualdad = e Identidad ==
    • Igualdad: se debe especificar cuando 2 objetos son iguales - si no se especifica, cuando estemos preguntando por la igualdad de dos objetos internamente se va a estar preguntando por la identidad
    • Ejemplos que ya vienen con Smalltalk (es un poco mucho más complicada la definición de estos métodos pero son ejemplos)
      • String: un string es igual a otro objeto si ese otro objeto es un string y tiene el mismo caracter en la misma posición
      • Número: un número es igual a otro objeto si el valor númerico de ese otro objeto es el mismo que el del receptor
      • Colección: una colección es igual a otra si son de la misma especie y si sus elementos son iguales
  • Identidad: dos objetos son identicos si representan la misma bolita en el ambiente. Este método es igual para todos los objetos y está implementado a nivel Virtual Machine.

Tarea (Opcional)

Comments