⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 itcl.n

📁 这是一个Linux下的集成开发环境
💻 N
字号:
'\"'\" Copyright (c) 1993-1998  Lucent Technologies, Inc.'\"'\" See the file "license.terms" for information on usage and redistribution'\" of this file, and for a DISCLAIMER OF ALL WARRANTIES.'\"'\" RCS: $Id: itcl.n,v 1.1 2003/02/05 10:53:53 mdejong Exp $'\".so man.macros.TH itcl n 3.0 itcl "[incr\ Tcl]".BS'\" Note:  do not modify the .SH NAME line immediately below!.SH NAMEitcl \- object-oriented extensions to Tcl.BE.SH DESCRIPTION.PP\fB[incr\ Tcl]\fR provides object-oriented extensions to Tcl, much asC++ provides object-oriented extensions to C.  The emphasis of thiswork, however, is not to create a whiz-bang object-orientedprogramming environment.  Rather, it is to support more structuredprogramming practices in Tcl without changing the flavor of the language.More than anything else, \fB[incr\ Tcl]\fR provides a means ofencapsulating related procedures together with their shared datain a namespace that is hidden from the outside world.It encourages better programming by promoting the object-oriented"library" mindset.  It also allows for code re-use through inheritance..SH CLASSES.PPThe fundamental construct in \fB[incr\ Tcl]\fR is the class definition.Each class acts as a template for actual objects that can be created.Each object has its own unique bundle of data, which contains instancesof the "variables" defined in the class.  Special procedures called"methods" are used to manipulate individual objects.  Methods are justlike the operations that are used to manipulate Tk widgets.  The"\fBbutton\fR" widget, for example, has methods such as "flash" and"invoke" that cause a particular button to blink and invoke its command..PPWithin the body of a method, the "variables" defined in the classare automatically available.  They need not be declared with anythinglike the \fBglobal\fR command.  Within another class method, a methodcan be invoked like any other command\-simply by using its name.From any other context, the method name must be prefaced by an objectname, which provides a context for the data that the method can access..PPEach class has its own namespace containing things that are commonto all objects which belong to the class.  For example, "common" datamembers are shared by all objects in the class.  They are globalvariables that exist in the class namespace, but since they areincluded in the class definition, they need not be declared usingthe \fBglobal\fR command; they are automatically available to anycode executing in the class context.  A class can also createordinary global variables, but these must be declared using the\fBglobal\fR command each time they are used..PPClasses can also have ordinary procedures declared as "procs".Within another class method or proc, a proc can be invoked likeany other command\-simply by using its name.  From any other context,the procedure name should be qualified with the class namespacelike "\fIclassName\fB::\fIproc\fR".  Class procs execute in theclass context, and therefore have automatic access to all "common"data members.  However, they cannot access object-specific "variables",since they are invoked without reference to any specific object.They are usually used to perform generic operations which affectall objects belonging to the class..PPEach of the elements in a class can be declared "public", "protected"or "private".  Public elements can be accessed by the class, byderived classes (other classes that inherit this class), and byexternal clients that use the class.  Protected elements can beaccessed by the class, and by derived classes.  Private elementsare only accessible in the class where they are defined..PPThe "public" elements within a class define its interface to theexternal world.  Public methods define the operations that canbe used to manipulate an object.  Public variables are recognizedas configuration options by the "configure" and "cget" methodsthat are built into each class.  The public interface says\fIwhat\fR an object will do but not \fIhow\fR it will do it.Protected and private members, along with the bodies of classmethods and procs, provide the implementation details.  Insulatingthe application developer from these details leaves the class designerfree to change them at any time, without warning, and without affectingprograms that rely on the class.  It is precisely this encapsulationthat makes object-oriented programs easier to understand and maintain..PPThe fact that \fB[incr\ Tcl]\fR objects look like Tk widgets isno accident.  \fB[incr\ Tcl]\fR was designed this way, to blendnaturally into a Tcl/Tk application.  But \fB[incr\ Tcl]\fRextends the Tk paradigm from being merely object-based to beingfully object-oriented.  An object-oriented system supportsinheritance, allowing classes to share common behaviors byinheriting them from an ancestor or base class.  Having a baseclass as a common abstraction allows a programmer to treatrelated classes in a similar manner.  For example, a toasterand a blender perform different (specialized) functions, butboth share the abstraction of being appliances.  By abstractingcommon behaviors into a base class, code can be \fIshared\fR ratherthan \fIcopied\fR.  The resulting application is easier tounderstand and maintain, and derived classes (e.g., specializedappliances) can be added or removed more easily..PPThis description was merely a brief overview of object-orientedprogramming and \fB[incr\ Tcl]\fR.  A more tutorial introduction ispresented in the paper included with this distribution.  See the\fBclass\fR command for more details on creating and using classes..SH NAMESPACES.PP\fB[incr\ Tcl]\fR now includes a complete namespace facility.A namespace is a collection of commands and global variables thatis kept apart from the usual global scope.  This allows Tcl codelibraries to be packaged in a well-defined manner, and preventsunwanted interactions with other libraries.  A namespace can alsohave child namespaces within it, so one library can contain itsown private copy of many other libraries.  A namespace can alsobe used to wrap up a group of related classes.  The global scope(named "\fC::\fR") is the root namespace for an interpreter; allother namespaces are contained within it..PPSee the \fBnamespace\fR command for details on creating andusing namespaces..SH MEGA-WIDGETS.PPMega-widgets are high-level widgets that are constructed usingTk widgets as component parts, usually without any C code.  Afileselectionbox, for example, may have a few listboxes, someentry widgets and some control buttons.  These individual widgetsare put together in a way that makes them act like one bigwidget..PP\fB[incr\ Tk]\fR is a framework for building mega-widgets.  Ituses \fB[incr\ Tcl]\fR to support the object paradigm, and addsbase classes which provide default widget behaviors.  See the\fBitk\fR man page for more details..PP\fB[incr\ Widgets]\fR is a library of mega-widgets built using\fB[incr\ Tk]\fR.  It contains more than 30 different widgetclasses that can be used right out of the box to build Tcl/Tkapplications.  Each widget class has its own man page describingthe features available..SH KEYWORDSclass, object, object-oriented, namespace, mega-widget

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -