Hi,
 
Thanks for your reply.
 
I found a sample at http://www.angelfire.com/tx4/cus/shapes/r.html
 
I did the same with my class and now it is working
###
 setGeneric("setName<-",
            function(this, value)
            standardGeneric("setName<-")
            )
 setReplaceMethod("setName", "Partri",
           function(this, value)
           {
             this@name <- value
             this
           }
           )
##
I have other doubts:
a) The usual representation of a method calling in other languages (I mean, Java, Delphi) is:
   obj.method(<parameters>)
So, I believed that in R it was the same thing. Thats it, to call the method setName of my instance "x" I could write:
   x.setName("blablabla")
 
The right way really is? 
     method(instance) <- parameters
Thats it:
     setName(x) <- "blablabla" ?
 
It sounds strange to me. Maybe because I used with other languages, but it doen“t seem legible to me this sintaxe.
 
b) I realised I have to use the name "value" as the parameter name, what else it won“t work. Is that corret?
 
c) and in the case I have two or more parameters. How should I do?
I typed ?setReplaceMethod in RGui how you suggested, but it doesn“t bring any information about this instruction.
 
Thanks again and sorry for my english mistakes.
Gilvan Justino

Uwe Ligges <ligges@statistik.uni-dortmund.de> wrote:
Gilvan Justino wrote:
> Hi,
> 
> I started creating a small class but I'm courious about how it is working.
> 
> To create a instance of my class "Partri" I write this at Rgui:
> x <- new("Partri", name="Gilvan")
> 
> and to change the slot "name" of this instance, I write:
> setName(x, newname="Justino")
> 
> It is not working, because when I type "x" at Rgui, it shows the initial value, which was "Gilvan". What I am doing wrong?
> 
> I'll appreciate any king of help!
> Gilvan
> 
> 
> # Classe para representar um parāmetro
> setClass("Partri",
> # parāmetros
> representation( name="character"),
> # seēćo de inicializaēćo
> prototype( name="undefined name" )
> )
> 
> setGeneric("setName",
> function(object, newname,...)
> standardGeneric("setName"))
> setMethod("setName", 
> signature(object="Partri",newname="character"), 
> function(object, newname)
> {
> object@name = newname


You set the "name" in the environment of the method, but you don't 
assign it to the environment that you seem to expect erroneously. To see 
that it works, simply insert

print(object@name)

Instead, you want to write some non-standard replacement function. See 
?setReplaceMethod and friends (you might want to take a look into the 
green book as well).

Uwe Ligges




> }
> )




> 
> 
> ---------------------------------
> 
> ora!
> [[alternative HTML version deleted]]
> 
> ______________________________________________
> R-help@stat.math.ethz.ch mailing list
> https://stat.ethz.ch/mailman/listinfo/r-help
> PLEASE do read the posting guide! http://www.R-project.org/posting-guide.html


__________________________________________________


	[[alternative HTML version deleted]]


