A class defined with the internal attribute can be used within its containing package
only. That is, defining a class with the internal attribute is identical to defining the
class with no access-control modifier at all. The internal attribute simply serves to
make the programmer’s intention unambiguous.
The internal and public attributes are known as access-control modifiers because they
control the region within which a class can be used (accessed) within a program.
Unlike the VirtualPet class, the VirtualZoo class must be defined with the public
attribute because it is the application’s main class.
Adobe’s compilers require an application’s main class to be defined
with the public attribute.
The following code updates VirtualZoo to include the necessary public attribute:
package zoo {
public class VirtualZoo {
}
}
Virtual Zoo Review
Our game now has two classes: VirtualZoo (the main class) and VirtualPet (which
represents the pets in the game). The classes reside in the package zoo, and are stored
in plain-text files named VirtualZoo.as and VirtualPet.as, respectively. By requirement
of Adobe’s ActionScript compilers, VirtualZoo is defined with the public
attribute because it is the application’s main class. By contrast, VirtualPet is defined
with the internal attribute, so it can be used inside the zoo package only.
Example 1-1 shows the code for our game so far. The example also introduces something
new—code comments. A code comment is a note meant to be read by programmers
only and is completely ignored by the compiler. ActionScript code comments
come in two varieties: single line, which start with two slashes (//), and multiline,
which start with the character sequence /*, and end with the character sequence */.
This is a single-line comment:
// No one here but us programmers
This is a multiline comment:
/*
No one here
but us programmers
*/
The current code for our zoo game follows