yo creo una nueva clase de objeto, le pongo el inizialite y demas cosas para agregarle la informacion que deben tener, ahora yo estaba creando varios de estos por que nesesito varios, como fallaba hice un debug asi:
a := objeto new.
a agregar_info info_a
b := objeto new.
b agregar_info info_b
c := objeto new.
c agregar_info info_c
Transcript show: a ver_info;cr.Transcript show: b ver_info;cr.Hola Gabriel:
Con la información que nos proveés no es posible determinar el comportamiento de tu clase y hay algunos problemas de sintaxis. Habría que revisar la manera en la que implementaste sus métodos. El método agregarInfo: debería guardarse el parámetro recibido en una variable de instancia. Por ejemplo así:
agregarInfo: unaInfo
informaciones add: unaInfo.
Para que esto funcione, informaciones debería poder entender el mensaje add:, es decir, debería ser instanciada como una colección en el método initialize. Por ejemplo:
initialize
informaciones := OrderedCollection new.
Luego el método verInfo debería devolver el elemento de la colección que te interese, dependiendo de lo que quieras hacer.
Si no te sale con el TP0 te recomiendo probarlo con algún ejemplo más sencillo y contanos si tuviste dificultades.
Te recomiendo además utilizar camelCase en lugar de snake_case por una cuestión de prolijidad.
Saludos,
Tomás
ahi hice un objeto mas generico a ver si se entiende
en el Playground:
| a b c|
Transcript clear .
a := Pruobjeto new.
a darinfo: '2'.
b := Pruobjeto new.
b darinfo: 'hola'.
c := Pruobjeto new.
c darinfo: 'ccccc'.
Transcript show: a verinfo ;cr.
Transcript show: b verinfo ;cr.
Transcript show: c verinfo ;cr.
en el Transcrip:
ccccc
ccccc
ccccc
en el objeto:
Object subclass: #PruobjetoinstanceVariableNames: ''
classVariableNames: 'Info'
"comment stating purpose of message"
Info := ''.
"comment stating purpose of message"
^ Info .
"comment stating purpose of message"
Info := untexto.
Transcript clear .
a := Pruobjeto new.
a darinfo: '2'.
Transcript show: a verinfo ;cr.
b := Pruobjeto new.
Transcript show: a verinfo ;cr.
b darinfo: 'hola'.
Transcript show: a verinfo ;cr.
Transcript show: b verinfo ;cr.
hola
hola
Hola Gabriel,
Antes que nada y para aclarar este punto: en ningun caso el "new" puede "borrar" ningun objeto, siempre te va a crear un nuevo objeto de esa clase y no modifica otros objetos que hayas creado antes.
Este es el problema:
classVariableNames: 'Info'
Eso quiere decir que todos los objetos de esa clase comparten la misma variable "Info", en lugar de que cada objeto tenga una propia (si esto no se entiende ahora, igual se va a ver mas adelante en la materia).
Proba de colocar la variable como variable de instancia asi:
instanceVariableNames: 'Info'
De esa forma, cada nuevo objeto va a tener una variable separada y "propia" de ese objeto.
Saludos
Eugenio
El problema es que pusiste a info como variable de clase en lugar de variable de instancia. Fijate que tiene que ir donde dice instanceVariableNames. Las variables de clase las vamos a ver después del TP0.
Disculpame que no te contesté antes pero estoy en la marcha con poca señal. Te recomiendo venir.
Saludos,
Tomás
https://blog.nicopaez.com/2011/09/25/variablesdeclaseydeinstanciasmalltalk/
habia encontrado esto el otro dia... espero te resulte util