A class
is an abstract representation of an object. A class stores information
about the types of data that an object can hold and the behaviors that
an object can exhibit. The usefulness of such an abstraction may not be
apparent when you write small scripts that contain only a few objects
interacting with one another. As the scope of a program grows, however,
and the number of objects that must be managed increases, you may find
that classes allow you to better control how objects are created and how
they interact with one another.
As far back as
ActionScript 1.0, ActionScript programmers could use Function objects to
create constructs that resembled classes. ActionScript 2.0 added formal
support for classes with keywords such as class and extends.
ActionScript 3.0 not only continues to support the keywords introduced
in ActionScript 2.0, but also adds some new capabilities, such as
enhanced access control with the protected and internal attributes, and
better control over inheritance with the final and override keywords.
If
you have ever created classes in programming languages like Java, C++,
or C#, you will find that ActionScript provides a familiar experience.
ActionScript shares many of the same keywords and attribute names, such
as class, extends, and public, all of which are discussed in the
following sections.
NOTE: In this chapter, the
term property means any member of an object or class, including
variables, constants, and methods. In addition, although the terms class
and static are often used interchangeably, in this chapter these terms
are distinct. For example, in this chapter the phrase class properties
refers to all the members of a class, rather than only the static
members.