Smalltalk
Smalltalk es un lenguaje orientado a objetos puro: todas las entidades
manipuladas son objetos.
Ej. la expresión
2+4
es el resultado de enviar el mensaje ‘+’ con argumento 4 al objeto 2.
Smalltalk Squeak es un entorno de desarrollo de aplicaciones orientadas a
objetos.
Incluye:
• Un lenguaje: Smalltalk.
• Un modelo de objetos, que define cómo se comportan los objetos.
• Un entorno deprogramación, que permite añadir, modificar y
borrar clases.
• Una jerarquía de clases, que pueden ser reutilizadas directamente y
de las que se puede consultar su código.
• Un entorno de ejecución interpretado.
Smalltalk-1
Objetos
Todo el procesamiento en Smalltalk se lleva a cabo mediante el envío
de mensajes a objetos. Los objetos son instancias de una clase concreta.
‘esto es una cadena’una cadena de caracteres
1234
un número entero
1.234e-5
un número real
$a
un carácter
#( 1 2 3 )
un array de tres elementos
#( ‘array’ ‘de’ 4 ‘elementos’ )
un array de cuatro elementos
#( 1 ( ‘dos’ 3 ) ‘cuatro’ )
un array de tres elementos
true
el valor lógico verdadero
false
el valor lógico falso
[ i := i + 1 ]
un bloque de código
Smalltalk-2
Clases
Una clase define elcomportamiento de sus instancias especificando
su estado (variables de instancia) y su comportamiento (métodos para
responder a los mensajes que se le envían).
Patrón para crear una nueva clase:
NombrePadre subclass: #NombreClase
instanceVariableNames: ''
classVariableNames: ''
poolDictionaries: ''
category: ''
Todo objeto es instancia de una clase, y todo objeto conoce la
instancia a la quepertenece.
Ejemplos:
1234 class
#(Francesca Jackie Marisa Bree) class
'Rakesh Vijay Charles Daniel Tyler' class
Smalltalk-3
Jerarquía de clases de Smalltalk
Smalltalk-4
Navegador de la jerarquía de clases
Smalltalk-5
Mensajes
Todo el procesamiento en Smalltalk se lleva a cabo mediante el envío
de mensajes a objetos. El envío de mensajes es equivalente a la invocación
de funciones en loslenguajes procedimentales.
Un mensaje se compone de tres partes:
•
un objeto receptor,
•
un selector de mensaje, y
•
cero o más argumentos
Ejemplos: ‘este es el momento’ size
# ( 1 3 5 7 ) at: 2
20 factorial
Un mensaje siempre devuelve un único objeto como resultado.
Los mensajes a los que un objeto puede responder se definen en el
protocolo de su clase.
La forma en que el objeto responde a unmensaje se define en el
cuerpo de los métodos.
Los métodos indican la implementación de los mensajes y
representan el comportamiento de la clase.
Smalltalk-6
Tipos de mensajes
Mensajes unarios.
No tienen argumentos.
Ejemplos:
5 factorial
$A asciiValue
Mensajes con argumentos.
Mensajes con uno o más argumentos.
Ejemplos:
‘ejemplo de cadena’ at: 6
‘ejemplo de cadena’ at: 1 put: $E
# ( 9 8 7 6 5 )at: 3
Mensajes binarios.
Mensajes con un argumento, y uno o varios caracteres especiales (ni
dígitos ni letras) como selectores.
Ejemplos:
3+4
suma
5*7
multiplicación
5 // 2
división entera
2/6
división real
Smalltalk evalúa las expresiones aritméticas de izquierda a derecha
estrictamente, sin precedencias entre operadores.
Ejemplo:
3+4*2
devuelve 14, no 11.
Es posible usar paréntesispara controlar el orden de precedencia.
Ejemplo:
3+(4*2)
devuelve 11.
Smalltalk-7
Creación de objetos
Ya hemos creado algunos objetos.
Ejemplos:
'bigger', ' string'
#(1 2 3)
Otra forma de crear objetos es enviando mensajes (constructores) a
las clases.
Ejemplos:
Array new: 10
Array new
Date today
Time now
Smalltalk-8
Referencias a objetos (variables)
En Smalltalk todas las variables sonreferencias (punteros) a objetos,
no estando asociadas a ningún tipo o clase en particular.
Existen varias categorías de variables, dependiendo de su ámbito.
Variables globales
Son variables persistentes, cuyo valor se guarda de una ejecución
para otra del entorno.
Ejemplos:
Display
Transcript
Disk
Las variables globales comienzan con una letra mayúscula y se
declaran de forma implícita....
Regístrate para leer el documento completo.