Chapter 3
|
|
|
Basic Java structural components |
This chapter discusses
|
|
|
|
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 |
Creating a Software
System
|
|
|
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. |
Packages
|
|
|
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. |
|
|
Packages (cont.)
Compilation unit
|
|
|
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. |
Compilation unit (cont.)
Identifiers
|
|
|
|
Sequences of characters that can be
used to name things in a Java program. |
|
packages |
|
classes |
|
objects |
|
features |
Identifiers (cont.)
|
|
|
A sequence of letters, digits, $s,
and/or _s. |
|
Cannot begin with a digit. |
|
Case sensitive (A and a are
considered different!!). |
Identifiers (cont.)
|
|
|
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 |
Identifiers used already
Choosing identifiers
|
|
|
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 |
Choosing identifiers
(cont.)
|
|
|
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 |
Literals
|
|
|
Sequences of characters that denote
particular values. |
|
We write literals in our programs to
denote specific values. |
int
|
|
|
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 |
Double
|
|
|
Numbers including decimal points. |
|
0.5 |
|
-2.67 |
|
0.00123 |
|
2. |
|
.6 |
|
Digits before and after the decimal
point are preferred. |
Exponential Notation
|
|
|
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. |
Character literals
|
|
|
Single characters between apostrophes
(single quotes). |
|
A a 2 ; |
|
3 characters not represented by
themselves: |
|
-> \ (apostrophe) |
|
-> \ (quotation mark) |
|
\ -> \\ (backslash) |
Boolean
|
|
|
|
Only 2 possible literals: |
|
true (Not TRUE or True) |
|
false |
General lexical rules
|
|
|
|
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 |
General lexical rules
(cont.)
|
|
|
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 { |
General lexical practices
|
|
|
Be consistent in spacing and line
endings to make your programs as readable as possible. |
Comments
|
|
|
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 */ |
Weve covered
|
|
|
|
Fundamental structure of a Java
program. |
|
Packages |
|
Class definitions and compilation units |
|
Instances of classes |
|
Lexical structure |
|
Identifiers |
|
Literals |
|
Comments |
Glossary
Glossary (cont.)