Style Rules II:
Names and Naming
Overview
Today we will discuss:
Reasons for naming conventions
Rules for naming variables, classes, and methods
Why have naming conventions?
A program is written once, but read many times
During debugging
When adding to the program
When updating the program
When trying to understand the program
Anything that makes a program more readable and
understandable saves lots of time, even in the
short run
Rule 9:Use meaningful names
Names should be chosen very carefully, to indicate
the purpose of a variable or method
If the purpose changes, the variable or method
should be renamed
It is worthwhile spending a little time choosing the
best name
Long, multiword names are common in Java
Rule 10: Use familiar names
Where common terminology exists, use it; dont
make up your own
Example from the book: If your users refer to
customers, your program should use the name
Customer, not Client
Rule 11: Question excessively
long names
Variables should be used for a single purpose
Methods should do one simple, clearly defined
thing
If a descriptive name is overly long, maybe the
variable or method is trying to serve too many
purposes
Meaningful names: exceptions I
It is common practice to use i as the index of a
for-loop, j as the index of an inner loop, and k as
the index of a third-level loop
This is almost always better than trying to come
up with a meaningful name
Example:
for (int i = 1; i <= 10; i++) {
for (int j = 1, j <= 10; j++) {
[Link](" " + (i * j));
}
}
Meaningful names: exceptions II
Method variables may be given short, simple
names, IF:
The purpose of the variable is obvious from context,
and
The variable is used only briefly, in a small part of the
program
But never use non-meaningful names for class or
instance variables
Rule 28: Use standard names for
throwaway variables
If variables have no special meaning, you can use
names that reflect their types
For example, if you are writing a general method to
work with any strings, you might name them string1,
string2, etc.
Alternatively, you can use very short names
s, t, u, or s1, s2, etc. are often used for Strings
p, q, r, s are often used for booleans
w, x, y, z are often used for real numbers
Rule 12: Join the vowel
generation
Despite the cutesy name, this rule is important
In more primitive languages, names were often
limited to 8 or so characters
This led to names like maxVolum and lngPlyng
The usual rule was to leave out vowels, starting from
the right
Such names are harder to read and to remember
Do not leave out vowels, or otherwise use
unusual abbreviations, in Java!
Naming classes
Rule 18: Capitalize the first letter of each word,
including the first:
PrintStream, Person, ExemptEmployee
Rule 19: Use nouns to name classes:
ExemptEmployee, CustomerAccount
Classes are supposed to represent things
Naming variables
Rule 25: Capitalize the first letter of each word
except the first:
total, maxValue
Rule 26: Use nouns to name variables:
balance, outputLine
Variables are supposed to represent values
Naming methods
Rule 22: Capitalize the first letter of each word
except the first:
display, displayImage
Methods are capitalized the same as variables
Rule 23: Use verbs when naming methods:
displayImage, computeBalance
Methods are supposed to do something
Rule 13: Capitalize only the first
letter in acronyms
In names, write acronyms such as GUI and API as
Gui and Api
Examples: setDstOffset, displayAsHtml,
loadXmlDocument
Since capital letters are used to separate names, this
rule helps avoid confusion
Naming constants
A constant is an identifier whose value, once given, cannot be
changed
Constants are written with the keyword final, for example:
final int FIVE = 5;
final float AVOGADROS_NUMBER = 6.022E23;
Rule 31: Constants are written in ALL_CAPITALS, with
underscores between words
Exception: color names, such as [Link]
Colors were defined before conventions were established
However, Java 1.4 adds properly capitalized names for colors, such as
[Link]
Will you be held responsible for
following these rules?
Yes
The End