Upload
juan-molina
View
16
Download
0
Embed Size (px)
Citation preview
Ing. Lic. Julio Castillo
Una de las mejores cualidades de la OO es la capacidad de responder a la pregunta
Cmo trabaja esto ? con No me importa
Alan Knight Alan Knight
Libremente disponible en : www.squeak.org.
Se deben bajar 3 partes:
- La VM que es dependiente del sistema.
- Imagen del sistema ( Squeak release)
World Menu
Workspace
Formas
y los botones del Mouse
TranscriptTranscriptTranscriptTranscript:::: ventana principal del sistemaSmalltalk/V, que es un editor de textoutilizado para evaluar expresiones. El propioentorno tambin la utiliza para mostrarmensajes al programador.
WorkspacesWorkspacesWorkspacesWorkspaces:::: contienen un editor de texto y WorkspacesWorkspacesWorkspacesWorkspaces:::: contienen un editor de texto ypueden utilizarse para evaluar expresiones.
InspectInspectInspectInspect itititit:::: permiten observar la estructurainterna de un objeto y modificar el valor delas mismas.
BrowsersBrowsersBrowsersBrowsers:::: permite inspeccionar y editar labiblioteca de clases del ambiente.
objeto mensaje Comentarios : Un comentario Asignacin: El operador :=
Ej: materia := PPR Ej: cantidad := 12
Literales y Variables:- Literales:
$z denota el carcter z.
ppr denota al string con las letras p, p, y r.ppr denota al string con las letras p, p, y r.
23 denota al nmero 23.
#ppr denota al smbolo (string constante) con las letras p,p, y r.
---- Variables:variable := expresin.
Realizar las siguientes operaciones:
2+3 -> luego botn derecho y print it
Time now
Observar lo que sucede y saque sus Observar lo que sucede y saque sus conclusiones iniciales.
Escribira:= 3.a factorial Que sucede ? Porqu no funciona ?
Rpta: Porque es necesario el do it(d) antes!
Ahora probar con:c:=5c factoriala + c factorial
Que resultado obtiene ?Rpta: 123
Ahora ejecutar:127 printStringRoman
Que resultado obtiene ?Rpta: 'CXXVII
Ahora ejecutar:cad := #asdcad at: 2- Que resultado obtiene ? Y que significa ?Rpta: #s es el segundo carcter de la cadena cad.- Que ocurre si hacemos cad at: 5 ?Rpta: Error: subscript is out of bounds:5
Mensajes simples:
1) 20 factorial
2)'hola mundo como va' size
3)20 factorial
4) 5+4) 5+
Que ocurre en cada caso ?
Rpta:
3) Mensaje no comprendido
4) Se espera un segundo argumento
Sedeclaran entre ||, ejemplo:
| variable1 variable2 variable3|
Ejecutar las siguientes instrucciones:
| nombreVariable || nombreVariable |
nombreVariable := 5.
nombreVariable := Hola.
- que se obtiene ? que significa ?
Son variables disponibles en todo el entorno y persistentes.
Ejemplo:
- Smalltalk at: #VariableG put: ' hola PPR
Quitar una variable global:
- Smalltalk removeKey: #VariableG
Es una instancia de la clase UndefinedObject.
Ejemplos:
- nil isNil -> true
- nil notNil -> false
- 5 isNil -> false- 5 isNil -> false
- 123 notNil -> true
Para crear una categora:
- Abrir el System Browser
- Botn derecho-> Add Item..
- Escribir el nombre de la categora y OK.
(crear la categora Prueba)(crear la categora Prueba)
Declaracin de la clase Cuenta Bancaria.
Object subclass: #CuentaBancaria
instanceVariableNames: ' numero titular saldo '
classVariableNames: TasaInteres'classVariableNames: TasaInteres'
poolDictionaries:
category: 'Prueba'
Usar el System Browser->Seleccionar->ClickDerecho-> Accept
Creacin de objetos de la clase Cuenta Bancaria:
- unObjeto:= Object newnewnewnew
- unaCuenta:= CuentaBancaria newnewnewnew
- otraCuenta:= CuentaBancaria newnewnewnew- otraCuenta:= CuentaBancaria newnewnewnew
- Nota: Inicialmente todos los atributos son nil.
Sintaxis de un mtodo sin argumentos:Sintaxis de un mtodo sin argumentos:Sintaxis de un mtodo sin argumentos:Sintaxis de un mtodo sin argumentos:
patrnDelMensaje
comentario
|variablesTemporales|
sentencias.
Ejemplo: Mtodo consultar el saldo
consultarSaldo
saldo de la cuenta
^ saldo.
Sintaxis de un mtodo con 1 argumento:Sintaxis de un mtodo con 1 argumento:Sintaxis de un mtodo con 1 argumento:Sintaxis de un mtodo con 1 argumento:
Ejemplo: Mtodo depositar un importe
depositar: importe
Acredita el importe indicado en la cuenta
saldo:= saldo + importe.
Sintaxis de un mtodo con argumentosSintaxis de un mtodo con argumentosSintaxis de un mtodo con argumentosSintaxis de un mtodo con argumentos
patrnDelMensaje: colaboradorExterno1
comentario
|variablesTemporales||variablesTemporales|
sentencias.
Mtodo de Modificacin:Mtodo de Modificacin:Mtodo de Modificacin:Mtodo de Modificacin:
titular: unTitular
Mtodo modificador del atributo titular
titular:= unTitular.
Mtodo de Acceso:Mtodo de Acceso:Mtodo de Acceso:Mtodo de Acceso: Mtodo de Acceso:Mtodo de Acceso:Mtodo de Acceso:Mtodo de Acceso:
titular
Mtodo de acceso al atributo titular
^titular.
En System Browser->all (mensajes)
Y all escribir:
descripcion
"comentario"
Transcript show: 'Descripcion de la cuentaTranscript show: 'Descripcion de la cuenta
depositar: importe
"incrementa el importe"
saldo:= saldo + importe.
Transcript show: 'saldo modificado'
Desde la ventana del Workspace ejecutar:
ejemplo := CuentaBancaria new.
ejemplo descripcion
ejemplo consultarSaldo
Que sucedi ?
Mtodo de Inicializacin: Inicializa la instancia con valores vlidos
initializeinitializeinitializeinitialize
Inicializa la instancia
numero:= 0.numero:= 0.
titular:= ' '.
saldo:= 0.
Ahora ejecutar las siguientes instrucciones:
ejemplo := CuentaBancaria new.ejemplo descripcionejemplo consultarSaldoejemplo initializeejemplo consultarSaldoejemplo initializeejemplo consultarSaldoejemplo depositar: 5ejemplo consultarSaldoejemplo depositar: 3ejemplo consultarSaldo
Analice los resultados obtenidos