Sunteți pe pagina 1din 22

ESTARA BUENO

USAR SMALLTALK

Hablando la gente
se entiende
(y las cosas tambin)
o una breve introduccin a Smalltalk
Plato del da

El maravilloso mundo de los objetos

Smalltalk

Demo
Un martillo nuevo

Antes (funcional)
funciones
tipos de datos
Ahora
objetos
(slo eso)
Objetos

Colaboracin
basada en
Privacidad
(ocultacin de informacin)
Mensajes
Objetos, nada ms
En Smalltalk todo es un
objeto
S, todo 4
Posta, todo todo $a
true
#(1 2 3) hola
Gracias por venir...
Vuelvan cuando quieran
Nombres

Literales construcciones sintcticas que


denotan objetos elementales
ejemplos:
37 El entero 37
4
'Ser o no ser' El texto Ser o no ser
2.71828 El nmero 2,71828
$p El carcter p
true El valor de verdad verdadero
#(1 2 3) Un vector con los nmeros 1, 2 y 3
#pitufo El smbolo pitufo
Nombres

Asignacin
variable := objeto

locales en minsculas
lamole

globales en maysculas
Transcript lamole
Mensajes argumentos
nombre de operacin

4 o selector

sumar 7
S, los mensajes son objetos.
Selector
Argumentos
Mtodo

Efecto vs. Resultado


DoIt vs. PrintIt
Mensajes: tipos

Unarios
pitufo reverse
4 factorial
Binarios
17 <= 14
4+7
Palabra clave (keyword)

miCuenta transferir: 300 a: otraCuenta


Mensajes

Precedencia Asociatividad

1) Unitarios izquierda a
2) Binarios. derecha
3) Keyword

Cascada
Creando objetos
Gneros de objetos: clases

(gnero o clase)
Humano

(elementos o instancias)
walterSamuel
samuelWalterNhanForde
sirSamuelWalterGriffith
Creando objetos

En Smalltalk todo es un objeto


las clases son objetos
tienen variables (de clase)
tienen mtodos (de clase)

new crea una nueva instancia


allInstances devuelve un Array con las
instancias de la clase

guybrush := Humano new


Los humanos son...

Mamfero

Humano Perro Ballena


Los <nombre equipo rival>
son todos <calificativo>
relacin entre clases (gneros)
B es sub-clase de A
A
A es super-clase de B
(cada instacia de) B es un A
B B es una especializacin de A
(a kind of)
Contame de tu clase...

class la clase
isMemberOf: es un (clase)
isKindOf: es un (clase o subclase)
guybrush class. Humano
Mamfero
guybrush isMemberOf: Mamfero. false
guybrush isMemberOf: Humano. true
guybrush isKindOf: Mamfero. true

Humano Perro Ballena

guybrush := Humano new


Los <nombre equipo rival>
son todos <calificativo>

los objetos de una subclase tienen


ms cualidades que los objetos de su
A
superclase
los objetos de una subclase son ms
especficos que los de su superclase,
B
los objetos de una superclase son
ms generales que los de sus
subclases
El maravilloso mundo, animal.
Animal

Pjaro

Mamfero
Pingino Loro

Humano Perro Ballena


El maravilloso mundo, animal.
Animal
comer:

Pjaro

Mamfero
Pingino Loro

guybrush comer: un bife.

Humano Perro Ballena

guybrush := Humano new


Herencia y mensajes

Method lookup: sube buscando.

Tiempo de ejecucin (late binding).

Herencia de comportamiento.

(Reuso de cdigo.)
El maravilloso mundo, animal.
Animal
comer:

Pjaro

Mamfero
Pingino Loro
guybrush comer: un bife.
qu ganas tena de comer un bife
Humano Perro Ballena

guybrush := Humano new


Contest, Guybrush.

comer: unaComida
(Estos) humanos son amables

super comer: unaComida.


^qu ganas tena de comer, unaComida.
Repaso
Objetos: colaboracin-mensajes-privado
En Smalltalk todo es un objeto
Los mensajes son objetos
Efecto vs. respuesta (Do It vs. Print It)
Gneros de objetos (clases)
Las clases son objetos
Mensajes/variables de clases/instancias
Herencia: es un (de paso: reuso)

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