|
|
|
Basic Java structural components |
|
|
|
|
|
Some Java fundamentals. |
|
The high-level structure of a system written in
Java. |
|
packages |
|
compilation units |
|
Some fundamental tokens that make up a Java
program. |
|
identifiers |
|
literals |
|
|
|
|
Define the classes to which objects belong. |
|
A class definition determines the features and behavior
of the objects that are instances of the class. |
|
A program source is a collection of class
definitions. |
|
|
|
|
A system definition is composed of a number of
modules called packages. |
|
A package is a collection of one or more closely
related classes. |
|
public class: a class that is accessible
throughout the entire system. |
|
|
|
|
|
|
|
A source file containing the definition of one
or more classes of a package. |
|
It can contain the definition of at most one public
class. |
|
|
|
|
|
|
Sequences of characters that can be used to name
things in a Java program. |
|
packages |
|
classes |
|
objects |
|
features |
|
|
|
|
A sequence of letters, digits, $s, and/or _s. |
|
Cannot begin with a digit. |
|
Case sensitive (A and a are considered
different!!). |
|
|
|
|
Legal: X
Abc A_a_x b$2 aVeryLongIdentifier b29
a2b $_ $$$ IXLR8 |
|
Illegal: 2BRnot2B a.b Hello! A-a A+a |
|
All different identifiers: total Total
TOTAL tOtAl |
|
|
|
|
|
Choose descriptive names. |
|
Student or Textbook |
|
not
S or Thing |
|
Avoid overly long identifiers. |
|
HoldsTheNumberOfIterationsOfLoop |
|
Avoid abbreviations; if you abbreviate, be
consistent. |
|
Inconsistent: clientRec and studentRecord |
|
|
|
|
Be as specific as possible. |
|
Take particular care to distinguish closely
related entities. |
|
Effective Less-Effective |
|
newMasterRecord masterRecord1 |
|
oldMasterRecord masterRecord2 |
|
Dont incorporate the name of its syntactic
category in its name. |
|
Less-Effective:StudentClass |
|
|
|
|
Sequences of characters that denote particular
values. |
|
We write literals in our programs to denote
specific values. |
|
|
|
|
Numbers -- both positive and negative. |
|
Commas, periods, and leading zeros are not
allowed in ints. |
|
Legal: |
|
25 0 123456 -289765 7 |
|
Illegal: |
|
123,456 25.0 014765 |
|
|
|
|
Numbers including decimal points. |
|
0.5 |
|
-2.67 |
|
0.00123 |
|
2. |
|
.6 |
|
Digits before and after the decimal point are
preferred. |
|
|
|
|
Can be used to represent doubles. |
|
0.5e+3 |
|
0.5e-3 |
|
-0.5E3 |
|
5e4 |
|
2.0E-27 |
|
The e can be upper or lower case. |
|
The mantissa need not contain a decimal point. |
|
|
|
|
Single characters between apostrophes (single
quotes). |
|
A a 2 ; |
|
3 characters not represented by themselves: |
|
-> \ (apostrophe) |
|
-> \ (quotation mark) |
|
\ -> \\ (backslash) |
|
|
|
|
|
Only 2 possible literals: |
|
true (Not TRUE or True) |
|
false |
|
|
|
|
|
Files are made up of tokens -- identifiers,
keywords, literals, and punctuation marks. |
|
Spaces and line ends are somewhat arbitrary. |
|
Spaces are required between words: |
|
Wrong: publicclass Student |
|
|
|
|
Spaces are not required, but are permitted,
around punctuation. |
|
All correct examples: |
|
public class Student{ |
|
public class Student { |
|
a+b |
|
a + b |
|
Extra spaces and line endings are allowed. |
|
public class Student { |
|
|
|
|
Be consistent in spacing and line endings to
make your programs as readable as possible. |
|
|
|
|
Explanatory remarks are included in a program
for the benefit of a human reader, and are ignored by the compiler. |
|
Use // to treat the rest of the line as a
comment. |
|
Use /* and */ to begin and end a section of
comments. |
|
/* This is a comment */ |
|
|
|
|
|
Fundamental structure of a Java program. |
|
Packages |
|
Class definitions and compilation units |
|
Instances of classes |
|
Lexical structure |
|
Identifiers |
|
Literals |
|
Comments |
|
|
|