consulta

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

consulta

sergiohernan
Amigos:

¿ cómo se crean métodos estáticos o constructores en smalltalk ? ...esto para
poder hacer lo sgiguiente:

o1:= Order bid:4 price:30.  "que devuelva un objeto del tipo OrdenCompra"
o2:= Order ask:4 price:30.  "que devuelva un objeto del tipo OrdenVenta"

ó

addOrder(Order bid:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenCompra"
addOrder(Order ask:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenVenta"


Saludos,

Sergio

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: consulta

Angel Java Lopez
Hola gente!

Sergio, no sabria como explicarlo para hacerlo en la interfaz grafica, pero veria otros metodos como los de Point (en Pharo y Squeak)

aPoint := Point x: 10 y: 20

Su definicion

!Point class methodsFor: 'instance creation' stamp: 'md 12/2/2004 23:44'!
x: xInteger y: yInteger 
"Answer an instance of me with coordinates xInteger and yInteger."

^self basicNew setX: xInteger setY: yInteger! !

Termina siendo un metodo de clase, que hace self basicNew (o self new) y a lo que devuelve (un nuevo objeto Point) se le envia un mensaje de object (#setX:setY: en este caso)

!Point methodsFor: 'private' stamp: 'lr 7/4/2009 10:42'!
setX: xValue setY: yValue 
x := xValue.
y := yValue! !


Este codigo lo saque de algun Pharo 1.3:
'From Pharo1.3 of 16 June 2011 [Latest update: #13315] on 29 October 2011 at 3:52:13 pm'!

En tu caso, tambien quieres armar no un Orden, sino un OrderCompra. Es mas raro (y veria las razones por querer hacer eso), pero en vez de self basicNew, habria que poner OrderCompra basicNew etc.... en el metodo de clase Order #bid:price: y OrderVenta basicNew etc... en el metodo de clase Order #ask:price:

Pero podria ser mas claro (depende del contexto de lo que quieras implementar):

o1:= OrderCompra bid:4 price:30.
o2:= OrderVenta ask:4 price:30.

Nos leemos!

Angel "Java" Lopez


2012/7/21 Sergio Hernán Valenzuela Cámara <[hidden email]>
Amigos:

¿ cómo se crean métodos estáticos o constructores en smalltalk ? ...esto para
poder hacer lo sgiguiente:

o1:= Order bid:4 price:30.  "que devuelva un objeto del tipo OrdenCompra"
o2:= Order ask:4 price:30.  "que devuelva un objeto del tipo OrdenVenta"

ó

addOrder(Order bid:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenCompra"
addOrder(Order ask:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenVenta"


Saludos,

Sergio

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: consulta

Gaboto
In reply to this post by sergiohernan
Sergio,
te comento que en Smalltalk no existe tal cosa como "métodos estáticos". En Smalltalk una clase es un objeto como cualquier otro, por lo que "se le puede agregar" métodos. Fijate que cuando estas editando una clase con el browser, en algún lado (dependiendo del ambiente que estés usando) podes indicar si querés agregar método de clase o de instancia.

Fijate que cuando tenés:
Order bid:4 price:30
lo que pasa ahí es que se le esta enviando el mensaje bid:4 price:30 a la clase Order, que seguramete lo que hace es construir una instancia y devolverla.




2012/7/21 Sergio Hernán Valenzuela Cámara <[hidden email]>
Amigos:

¿ cómo se crean métodos estáticos o constructores en smalltalk ? ...esto para
poder hacer lo sgiguiente:

o1:= Order bid:4 price:30.  "que devuelva un objeto del tipo OrdenCompra"
o2:= Order ask:4 price:30.  "que devuelva un objeto del tipo OrdenVenta"

ó

addOrder(Order bid:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenCompra"
addOrder(Order ask:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenVenta"


Saludos,

Sergio

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org
Reply | Threaded
Open this post in threaded view
|

Re: consulta

sergiohernan
Gracias por su colaboración.

Sergio


El 21 de julio de 2012 11:17, Gabriel Brunstein <[hidden email]> escribió:
Sergio,
te comento que en Smalltalk no existe tal cosa como "métodos estáticos". En Smalltalk una clase es un objeto como cualquier otro, por lo que "se le puede agregar" métodos. Fijate que cuando estas editando una clase con el browser, en algún lado (dependiendo del ambiente que estés usando) podes indicar si querés agregar método de clase o de instancia.

Fijate que cuando tenés:
Order bid:4 price:30
lo que pasa ahí es que se le esta enviando el mensaje bid:4 price:30 a la clase Order, que seguramete lo que hace es construir una instancia y devolverla.




2012/7/21 Sergio Hernán Valenzuela Cámara <[hidden email]>
Amigos:

¿ cómo se crean métodos estáticos o constructores en smalltalk ? ...esto para
poder hacer lo sgiguiente:

o1:= Order bid:4 price:30.  "que devuelva un objeto del tipo OrdenCompra"
o2:= Order ask:4 price:30.  "que devuelva un objeto del tipo OrdenVenta"

ó

addOrder(Order bid:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenCompra"
addOrder(Order ask:4 price:30 )    "que mande al método addOrder un objeto del tipo OrdenVenta"


Saludos,

Sergio

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org

--
To post to this group, send email to [hidden email]
To unsubscribe from this group, send email to [hidden email]
 
http://www.clubSmalltalk.org