Packages
A package is a namespace to which classes may belong. Packages are introduced with
the package
keyword at the beginning of a file:
package org.frostlang.examples
After a package
declaration, all classes appearing in the same file are considered to belong to
that package.
package com.example.program
@private
class A { }
class B { }
This example defines two classes, with fully-qualified names com.example.program.A
and
com.example.program.B
. Classes may be referred to by relative names. For instance, from within the
class com.example.program.A
, the name B
would be taken to refer to com.example.program.B
. From
within com.example.C
, the name program.A
would be taken to refer to com.example.program.A
.
Uses
Classes can always be referenced by their fully qualified names, such as frost.core.String
.
Because it would be inconvenient to always have to write out the full name of a class, there is a
uses
declaration which allows you to refer to a class by its simple name:
uses com.example.foo.Example
class NewExample : Example {
...
}
After the uses
declaration, the name Example
refers to the class com.example.foo.Example
. All
of Frost's built-in classes, other than those in the frost.unsafe
package, are "used"
automatically and so are always available by their simple names.