abstract class: A class that provides common behavior across a set of subclasses, but is not itself designed to have instances that work.
abstraction: A simplified description or view of something that emphasizes characteristics or purposes relevant to the user, while suppressing details that are immaterial or distracting.
argument: A data element included as part of a message. Arguments provide additional information that the receiver can use to perform the requested operation. Binary messages and keyword messages take arguments. In a keyword message, a colon (:) following a keyword indicates that an argument is required.
behavior: (1) The set of external characteristics that an object exhibits. (2) The abstract class that provides common behavior for Class and Metaclass objects.
binary message: A message specifying an action to be performed on the receiver object and an additional object passed as an argument. The name of a binary Smalltalk uses binary messages for arithmetic, comparisons, and logical operations. X + Y is an example of a binary message with + as the binary selector.
class: A class is an object that specify the properties for specific kinds of objects. This includes description of an object's attributes, behaviors, and implementation. Objects represented by a class are called instances of the class. These class are arranged in hierarchy with less specific superclasses to more specific subclasses. Subclasses inherit properties from their superclasses (see Inheritance). All the actions to which an object responds are defined in its class description.
class definition: The definition of a class, containing:
class hierarchy: A tree structure that defines the relationships between classes. A class has subclasses down the hierarchy from itself and superclasses up the hierarchy from itself. The methods and variables of a class are inherited by its subclasses.
class instance variable: Private data that belongs to a class. The defining class and each subclass maintain their own copy of the data. Only the class methods of the class can directly reference the data. Changing the data in one class does not change it for the other classes in the hierarchy. Contrast with class variable.
class method: A method that provides behavior for a class. Message to invoke class methods are sent to the class, rather than to instance of the class.
class variable: Data that is shared by the defining class and its subclasses. The instance methods and class methods of the defining class and its subclasses can directly reference this data. Changing the data in one class changes it for all of the other classes. Contrast with class instance variable.
collection: A set of elements in which each element is an object.
comment: A set of characters enclosed in double quotation marks. Smalltalk ignores comments and does not execute them.
dictionary: In Smalltalk, an unordered collection whose elements are accessed by an explicitly assigned external key. See also pool dictionary.
encapsulation: The hiding of a software object's internal data representation. The object provides an interface that queries and manipulates the data without exposing its underlying structure.
inheritance: A relationship among classes in which one class shares the structure and behavior of another. A subclass inherits from a superclass.
instance: An object that is a single occurrence of a particular class. An instance exists in memory or external media in persistent form.
instance method: A method that provides behavior for instances of class. Messages that invoke instance methods are sent to particular instances, rather than to the class as a whole.
instance variable: Private data that belongs to an instance of a class and is hidden from direct access by all other objects. Instance variables can only by accessed by the instance methods of the defining class and its subclasses.
keyword message: A message that takes one or more arguments. A keyword is an identifier followed by a colon(:). Each keyword requires one argument, and the order of the keywords is important. 'hello' at: 2 put: $H is an example of a keyword message; at: and put: are keyword selectors, 2 and $H are the arguments. Contrast with binary message, unary message. See also message.
literal: An object that can be created by the compiler. A literal can be a number, a character string, a single character, a symbol, or an array. All literals are unique: two literals with the same value refer to the same object. The object created by a literal is read-only: it cannot be changed.
message: In Smalltalk, a communication from one object to another that requests the receiving object to execute a method. A message consists of a reference to the receiving object, followed by a selector indication the requested method, and (in many cases) arguments to be used in executing the method. There are three types of messages:binary,keyword, and unary.
metaclass: The specification of a class; the complete description of a class's attributes, behavior and implementation. Every class has a metaclass, of which it is the sole instance. Contrast with class.
method: The executable code that implements the logic of a particular message for a class. The are two types of method: class method and instance method.
nil: The object in Smalltalk that means "no value." All variables initially refer to nil. It is the single instance of the UndefinedObject class.
object: The basic building block in Smalltalk development. An object is anything that exhibits behavior. All code and data in Smalltalk must be part of an object.
object-oriented programming: A programming methodology built around objects and based on sending messages back and forth between those objects. The basic concepts of object-oriented programming are encapsulation, inheritance, and polymorphism.
polymorphism: The ability of different objects to respond to the same message in different ways. This means that different objects can have very different method implementations for the same message. An object can send a message without concern for its underlying implementation.
pool dictionary: A dictionary object whose keys define variables that can be shared by multiple classes. All methods for a class can access the variables in a pool dictionary if the class declares the pool dictionary as part of its scope.
receiver: The object that receives a message. Contrast with sender.
sender: An object that sends a message to another object. On the level of code implementation, the sender is considered to be the sending method within the class or instance that issues the message. Contrast with receiver.
subclass: A class that inherits behaviors and specifications (in other words, methods and variables) from another class. Contrast with superclass.
superclass: A class from which another class inherits behaviors and specifications (in other words, methods and variables). There are three types of messages: unary, binary, and keyword. Contrast with subclass.
temporary variable: A variable whose scope is limited to the Smalltalk method or block in which it is defined. A temporary variable takes an assigned value.
unary message: A message that has no arguments. size is an example of a unary message.
variable: (1) A storage place within an object for a data element. The data element is an object, such as a number or data, stored as an attribute of the containing object. (2) In VisualAge, a part that receives an identity at run time. A variable by itself contains no data or program logic; it must be connected such that it receives runtime identity from a part elsewhere in the application.