- itcl::class name specificationScript
Examples edit
package require Itcl itcl::class helloworld { public variable owner "No-one" method greet {} { puts "Hello World from $owner" } } helloworld h1 helloworld h2 h1 greet h1 configure -owner Me h2 configure -owner You h1 greet h2 greetCreates 2 helloworld objects (h1 & h2). By default they respond with the name "No-One" when the method greet is called.You can set public variables of the class using the configure command as above; variables are private by default (but can also be of type 'protected'). Private variables often employ code like this:
package require Itcl itcl::class helloworld { private variable owner "No-one" method setowner {nuowner} { set owner $nuowner} method getowner { } { return $owner } method greet {} { puts "Hello World from $owner" } } helloworld h1 helloworld h2 h1 setowner Me h2 setowner You h1 greet h2 greetSee also Automatic get/set methods for an itcl class.The class can also have a constructor & destructor method, and can refer to itself by the $this variable.
package require Itcl itcl::class helloworld { public variable owner "No-one" constructor {} {puts "helloworld object $this has been created"} destructor { puts "$this is deleted - you should delete any dynamically allocated items here"} method greet {} { puts "Hello World from $owner" } } helloworld h1 h1 greet itcl::delete object h1 h1 greet ;# will return an error "invalid command name "h1"" since h1 has been deleted.Well that is a basic guide to classes. More to follow! Derived itcl::class
GWM