Monday, November 3, 2008

Various Lexical Issues

Lexical Issues

 

Now that you have seen several short Java programs, it is time to more formally describe the atomic elements of Java. Java programs are a collection of whitespace, identifiers, comments, literals, operators, separators, and keywords. The operators are described in the next chapter. The others are described next.

 

Whitespace

Java is a free-form language. This means that you do not need to follow any special indentation rules. For example, the Example program could have been written all on one line or in any other strange way you felt like typing it, as long as there was at least one whitespace character between each token that was not already delineated by an operator or separator. In Java, whitespace is a space, tab, or newline.

 

Identifiers

Identifiers are used for class names, method names, and variable names. An identifier may be any descriptive sequence of uppercase and lowercase letters, numbers, or the underscore and dollar-sign characters. They must not begin with a number, lest they be confused with a numeric literal. Again, Java is case-sensitive, so VALUE is a different identifier than Value. Some examples of valid identifiers are:

 

AvgTemp                   count               a4                    $test                this_is_ok

 

Invalid variable names include:

 

2count                         high-temp                               Not/ok

 

Literals

A constant value in Java is created by using a literal representation of it.

For example, here are some literals:

 

100                             98.6                ‘X’                   “This is a test”

 

Left to right, the first literal specifies an integer, the next is a floating-point value, the third is a character constant, and the last is a string. A literal can be used anywhere a value of its type is allowed.

 

Comments

As mentioned, there are three types of comments defined by Java. You have already seen two: single-line and multiline. The third type is called a documentation comment. This type of comment is used to produce an HTML file that documents your program. The documentation comment begins with a /** and ends with a */. Documentation comments are explained in Appendix A.

 

Separators

In Java, there are a few characters that are used as separators. The most commonly used separator in Java is the semicolon. As you have seen, it is used to terminate statements. The separators are shown in the following table:

 

Symbol             Name                                                                                  Purpose

( )                     Parentheses              Used to contain lists of parameters in method definition and invocation.

                                                            Also used for defining precedence in expressions, containing

                                                            expressions in control statements, and surrounding cast types.

 

{ }                     Braces                        Used to contain the values of automatically initialized arrays. Also used to

                                                            define a block of code, for  classes, methods, and local scopes.

 

[ ]                     Brackets                     Used to declare array types. Also used when dereferencing array values.

 

;                       Semicolon                  Terminates statements.

 

,                       Comma                      Separates consecutive identifiers in a variable declaration. Also used to chain

                                                            statements together inside a for statement.

 

.                       Period                        Used to separate package names from sub-packages and classes. Also used to

                                                            separate variable or method from a reference variable.

 

The Java Keywords

 

There are 49 reserved keywords currently defined in the Java language (see Table 2-1). These keywords, combined with the syntax of the operators and separators, form the definition of the Java language. These keywords cannot be used as names for a variable, class, or method.

 

ANGUA GE

 

The keywords const and goto are reserved but not used. In the early days of Java, several other keywords were reserved for possible future use. However, the current specification for Java only defines the keywords shown in Table 2-1. The assert keyword was added by Java 2, version 1.4.  In addition to the keywords, Java reserves the following: true, false, and null.

 

These are values defined by Java. You may not use these words for the names of variables, classes, and so on.

 

The Java Class Libraries

The sample programs shown in this chapter make use of two of Java’s built-in methods: println( ) and print( ). As mentioned, these methods are members of the System class, which is a class predefined by Java that is automatically included in your programs. In the larger view, the Java environment relies on several built-in class libraries that contain many built-in methods that provide support for such things as I/O, string handling, networking, and graphics. The standard classes also provide support for windowed output.

 

Thus, Java as a totality is a combination of the Java language itself, plus its standard classes. As you will see, the class libraries provide much of the functionality that comes with Java. Indeed, part of becoming a Java programmer is learning to use the standard Java classes. Throughout Part I of this book, various elements of the standard library classes and methods are described as needed. In Part II, the class libraries are described in detail.

No comments: