- Q Explain about the function regex?
- Q Which State of India became 1st to be implement the Earthquake Warning System
- Q 202.141.65.62 type of IP address belong to which class...
- Q Gases used in welding are _______?
- Q Call Center job interview tips
- Q What are the App states in iOS operating system? Explain them
- Q The statements 'Protoplasm is the physical basis of life' is given by which person?
- Q Discuss the characteristics of liberalism
- Q Who is appointed as the chairperson of the National Commission for Women ?
- Q How do you load exchange information from R/3 to BW ?
- Q Which is a major issue raised by India and some countries regarding the agriculture?
Answers
A Meta-Class is a class' class. If a class is an object, then that object must have a class (in classical OO anyway). Compilers provide an easy way to picture Meta-Classes. Classes must be implemented in some way; perhaps with dictionaries for methods, instances, and parents and methods to perform all the work of being a class. This can be declared in a class named "Meta-Class". The Meta-Class can also provide services to application programs, such as returning a set of all methods, instances or parents for review (or even modification). [Booch 91, p 119] provides another example in Smalltalk with timers. In Smalltalk, the situation is more complex. To make this easy, refer to the following listing, which is based on the number of levels of distinct instantiations:
1. Level System
All objects can be viewed as classes and all classes can be viewed as objects (as in Self). There is no need for Meta-Classes because objects describe themselves. Also called "single-hierarchy" systems. There is only 1 kind of object.
2. Level System
All Objects are instances of a Class but Classes are not accessible to programs (no Meta-Class except for in the compiler and perhaps for type-safe linkage, as in C++).
There are 2 kinds of distinct objects: objects and classes.
3. Level System
All objects are instances of a class and all classes are instances of Meta-Class. The Meta-Class is a class and is therefore an instance of itself (really making this a 3 1/2 Level System). This allows classes to be first class objects and therefore classes are available to programs.
There are 2 kinds of distinct objects (objects and classes), with a distinguished class, the metaclass.
5. Level System
What Smalltalk provides. Like a 3 Level System, but there is an extra level of specialized Meta-Classes for classes. There is still a Meta-Class as in a 3 Level System, but as a class it also has a specialized Meta-Class, the "Meta-Class class" and this results in a 5 Level System:
object
class
class class (Smalltalk's Meta-Classes)
Meta-Class
Meta-Class class
The "class class"es handle messages to classes, such as constructors and "new", and also "class variables" (a term from Smalltalk), which are variables shared between all instances of a class (static member data in C++). There are 3 distinct kinds of objects (objects, classes, and metaclasses). Your Comment
1. Level System
All objects can be viewed as classes and all classes can be viewed as objects (as in Self). There is no need for Meta-Classes because objects describe themselves. Also called "single-hierarchy" systems. There is only 1 kind of object.
2. Level System
All Objects are instances of a Class but Classes are not accessible to programs (no Meta-Class except for in the compiler and perhaps for type-safe linkage, as in C++).
There are 2 kinds of distinct objects: objects and classes.
3. Level System
All objects are instances of a class and all classes are instances of Meta-Class. The Meta-Class is a class and is therefore an instance of itself (really making this a 3 1/2 Level System). This allows classes to be first class objects and therefore classes are available to programs.
There are 2 kinds of distinct objects (objects and classes), with a distinguished class, the metaclass.
5. Level System
What Smalltalk provides. Like a 3 Level System, but there is an extra level of specialized Meta-Classes for classes. There is still a Meta-Class as in a 3 Level System, but as a class it also has a specialized Meta-Class, the "Meta-Class class" and this results in a 5 Level System:
object
class
class class (Smalltalk's Meta-Classes)
Meta-Class
Meta-Class class
The "class class"es handle messages to classes, such as constructors and "new", and also "class variables" (a term from Smalltalk), which are variables shared between all instances of a class (static member data in C++). There are 3 distinct kinds of objects (objects, classes, and metaclasses). Your Comment
- 0
- 0
- New Answer
- Contributors: *,