JAVATM - The Beginnings

Table of Contents


Foreword
1

Terminology
2

The HelloWorld Program
4
Section 1 - Creating and Running the HelloWorld Program
4
Section 2 - Analyzing the HelloWorld Program
5
Short Problems
6

Comments and Indentation
8
Section 1 - Defining Java-style Comments
8
Section 2 - Defining C-style Comments
9
Section 3 - Indentation
10
Short Problems
12

Types
13
Section 1 - Variables
13
Section 2 - Types
14
Section 3 - Primitive Types
14
Section 3a - The Integer Types
14
Section 3b - The Floating Point Types
16
Section 3c - The char Type
16
Section 3d - The boolean Type
17
Section 4 - Strings
17
Short Problems
17

Literals
17
Section 1 - Integer Literals
18
Section 1a - Integer Literals in Different Numeric Bases
18
Section 2 - Floating Point Literals
18
Section 3 - Boolean Literals
19
Section 4 - Character Literals
19
Section 5 - String Literals
19
Short Problems
20

println and print
21
Section 1 - Creating Longer String Literals
21
Section 2 - The Newline Character ‘\n’
22
Section 3 - The print Method
22
Section 4 - The Tab Character ‘\t’
23
Short Problems
24
Long Problems
24

Variables
26
Section 1 - Keywords
26
Section 2 - Identifiers
26
Section 3 - Variable Declarations
27
Section 3a - Declaring Multiple Variables in a Single Statement
28
Section 4- Using Variable Declarations
29
Section 5- The Lifetime of a Variable
30
Section 6- String Variables
30
Short Problems
31
Long Problems
32

Constants
34
Section 1 - Using the final Keyword to Define Constants
35
Section 2 - Constants Make your Programs Easier to Maintain
35
Section 3 - String Constants
36
Short Problems
36
Long Problems
37

Expressions
38
Section 1 - Assignment Statements
38
Section 2 - Expressions Defined
39
Section 3 - Arithmetic Expressions
39
Section 3a - Division
39
Section 3b - Remainder
40
Section 3c - Parentheses
40
Section 3d - Order of Operations
40
Section 3e - The Unary -, ++, and -- Operators
41
Section 3f - Prefix and Postfix Form
41
Section 3g - Shorthand
42
Section 4 - Boolean Expressions
42
Section 4a - Equality
43
Section 4b - Relational Operators
43
Section 4c - Logical Operators
44
Section 5 - Bitwise Expressions
45
Section 5a - Shifting
45
Section 6 - Concatenation
46
Section 7 - String Equality
47
Short Problems
48
Long Problems
49

Conversion
51
Section 1 - Widening Conversions
51
Section 2 - Narrowing Conversions
52
Section 3 - Conversions involving char
52
Section 4 - Conversions involving boolean
53
Section 5 - Conversions involving String
53
Section 6 - Promotion
54
Section 7 - Typecasting
54
Short Problems
55

if Statements
56
Section 1 - The if Statement
56
Section 2 - The if-else Statement
57
Section 3 - The if-else if Statement
58
Section 4 - Statement Blocks
60
Section 5 - Nested if Statements
61
Short Problems
63
Long Problems
63

switch Statements
66
Section 1 - switch Statements
66
Section 2 - Execution Flow in a switch Statement
67
Section 3 - The Default Case
67
Section 4 - Fallthrough in switch Statements
68
Section 5 - Sharing Statement Blocks
69
Section 6 - Switching on Strings
69
Short Problems
70
Long Problems
71

Loops
73
Section 1 - while Loops
73
Section 2 - do-while Loops
75
Section 3 - for Loops
76
Section 3a - Decrementing for Loops
77
Section 3b - Computing a Sum with a for Loop
77
Section 3c - More Complex Exit Conditions
77
Section 3d - Performing Larger Increments per Iteration
78
Section 3e - Nested for Loops
78
Short Problems
79
Long Problems
80

Methods
81
Section 1 - Writing Your Own Methods
81
Section 2 - Method Definition
82
Section 3 - Calling a Method
83
Section 4 - Method Parameters
84
Section 5 - Passing by Value
85
Section 6 - Returning a Value from a Method
86
Section 7 - Premature Returns
88
Section 8 - Return Statements in void Methods
88
Short Problems
89
Long Problems
89

Local Variables
92
Section 1 - Variables Local to Methods
92
Section 2 - Variables Local to if Clauses
93
Section 3 - Variables Local to Loops
94
Section 4 - Variables Local to Arbitrary Scopes
95
Short Problems
96
Long Problems
97

Classes
99
Section 1 - Classes Defined
99
Section 2 - Defining Your Own Classes
101
Section 3 - The Reason We Need Classes
101
Section 4 - The State of a Class
102
Section 5 - Class Fields
103
Section 5a - Determining the Fields of a Class
106
Section 5b - Default Initialization of Class Fields
107
Section 6 - Class Methods
107
Section 7 - Mutators
109
Section 7a - Validation in Mutators
111
Short Problems
112
Long Problems
113

Objects and References
116
Section 1 - Objects Defined
116
Section 2 - Object Declarations
116
Section 3 - The new Operator
117
Section 4 - Reference Variables
117
Section 5 - Multiple References to the Same Object
118
Section 6 - String Objects are Immutable
119
Section 7 - The Java Application Programming Interface (API)
119
Section 8 - The Object Class
120
Section 8a - The toString Method
120
Section 8b - The equals Method
121
Short Problems
122
Long Problems
122

Encapsulation
124
Section 1 - Encapsulation Defined
125
Section 2 - Accessors
126
Short Problems
128
Long Problems
128

Constructors
130
Section 1 - Constructors Defined
130
Section 2 - Calling a Constructor
130
Section 3 - Overloading Constructors
131
Section 4 - The Default Constructor
131
Section 5 - Default Constructor Generation
132
Section 6 - Constructors with no Arguments
132
Section 7 - The this Reference
133
Section 8 - Using this to Call Another Constructor
134
Section 9 - Constructors and final Fields
134
Short Problems
136
Long Problems
137

Static Fields and Methods
139
Section 1 - Static Fields
140
Section 2 - Static Field Declarations
140
Section 3 - Static Field Initialization
141
Section 4 - Implementing an Object Counter using a Static Field
142
Section 5 - Static versus Instance Fields
143
Section 6 - Defining Class Constants using Static Fields
143
Section 7 - Static Methods
145
Section 8 - Referencing Static Fields and Methods from Outside Defining Classes
146
Section 9 - Helper Classes
147
Short Problems
148
Long Problems
148

Passing and Returning Object References
151
Section 1- Passing an Object Reference to a Method
151
Section 2- Modifying the Fields of a Object Passed into a Method
152
Section 3- Returning an Object Reference from a Method
153
Short Problems
155
Long Problems
155

Arrays
159
Section 1 - Arrays Defined
159
Section 2 - Array Declarations
160
Section 3 - Array Subscripts
160
Section 4 - The Bounds of an Array
161
Section 5 - Arrays are Objects
161
Section 6 - Array Initialization
162
Section 7 - Arrays and Loops
162
Section 8 - The length Field
162
Section 9 - Array References as Class Fields
164
Section 10 - The Size of a Java Array is Constant
166
Section 11 - Enhanced For Loops
167
Section 12 - Two Dimensional Arrays
168
Short Problems
170
Long Problems
170

Arrays of Object References
174
Section 1 - Declaring an Array of Object References
174
Section 2 - Populating an Array of Object References using Assign Statements
176
Section 3 - Populating an Array of Object References using an Initialization List
177
Section 4 - Declaring Arrays of String References
178
Section 5 - Passing an Array of Object References to a Method
179
Section 6 - Returning an Array of Object References from a Method
181
Short Problems
182
Long Problems
182

Wrapper Classes
186
Section 1 - The Integer Class
186
Section 1a - The parseInt Method
186
Section 1b - The parseUnsignedInt Method
187
Section 1c - The toString Methods
187
Section 1d - Displaying in Different Numeric Bases
187
Section 1e - Converting to a Different Primitive Type
188
Section 1f - The MIN_VALUE and MAX_VALUE Constants
189
Section 1g - The min and max Methods
190
Section 1h - The toUnsignedLong Method
190
Section 2 - The Double Class
191
Section 2a - The POSITIVE_INFINITY, NEGATIVE_INFINITY, and NaN Constants
191
Section 2b - The isInfinite, isFinite, and isNaN Methods
191
Section 3 - The Float, Long, Short, and Byte Classes
192
Section 4 - The Boolean Class
193
Section 5 - Autoboxing
193
Section 6 - Unboxing
194
Section 7 - Wrapper Objects are Immutable
194
Section 8 - The Character Class
195
Short Problems
200
Long Problems
200

ArrayLists
203
Section 1 - ArrayList Definition
203
Section 2 - ArrayList Declarations
203
Section 3 - ArrayLists Contain Object References
204
Section 4 - Adding Elements to the End of an ArrayList
204
Section 5 - Retrieving Elements from an ArrayList
204
Section 6 - Looping Through an ArrayList
204
Section 7 - import Statements
205
Section 8 - Autoboxing and Unboxing with ArrayLists
206
Section 9 - Adding Elements to an ArrayList at a Specified Index
206
Section 10 - Removing Elements from an ArrayList
207
Section 11 - Replacing an Element at a Specified Index
207
Section 12 - Finding a Value in an ArrayList
208
Section 13 - Determining if an ArrayList is Empty
208
Section 14 - Copying ArrayLists
208
Section 15 - Clearing an ArrayList
209
Section 16 - Converting an ArrayList to a Java Array
209
Section 17 - Passing an ArrayList to a Method
210
Section 18 - Returning an ArrayList from a Method
210
Short Problems
211
Long Problems
211

User Interaction
215
Section 1 - System.in
216
Section 2 - The Scanner Class
216
Section 3 - Prompting
217
Section 4 - The nextDouble, nextFloat, nextLong, nextShort, nextByte, and nextBoolean Methods
218
Section 5 - Delimiters and the next Method
219
Section 6 - The nextLine Method
220
Section 7 - Scanner Use inside While Loops
222
Section 8 - Using a Scanner to Play a Game
223
Section 9 - Using a Scanner to Read a File
224
Section 9a - The hasNext Method
225
Section 10 - Using a Scanner to Read a String
226
Section 11 - Changing a Scanner’s Delimiter
227
Short Problems
228
Long Problems
228

String Operations
232
Section 1 - Obtaining the Length of a String
232
Section 2 - Retrieving the Character at an Index in a String Object
232
Section 3 - Retrieving the Last Character of a String Object
233
Section 4 - Finding the Position of a Character or String in a String Object
233
Section 5 - Retrieving a Portion of a String Object
235
Section 6 - The startsWith and endsWith Methods
236
Section 7 - The isEmpty Method
236
Section 8 - The toUpperCase and toLowerCase Methods
236
Section 9 - The valueOf Methods
237
Section 10 - The trim Method
238
Section 11 - Matching a Region of two Strings
238
Section 12 - Comparing two String Objects Lexicographically
238
Section 13 - Strings and char Arrays
240
Section 14 - Replacing a Portion of a String Object
240
Section 15 - The StringBuilder Class
241
Section 16 - The StringTokenizer Class
245
Short Problems
247
Long Problems
248

Random Numbers
251
Section 1 - The Random Class
251
Section 2 - Limiting Random Numbers to a Range
252
Section 3 - Specifying the Seed Value
252
Section 4 - The nextFloat Method
253
Section 5 - Computer Guessing Games
254
Short Problems
256
Long Problems
256

Formatting Output
258
Section 1 - The NumberFormat Class
258
Section 1a - The getNumberInstance Method
258
Section 1a1 - Grouping
259
Section 1a2 - Rounding
260
Section 1b - The getCurrencyInstance Method
260
Section 1c - The getPercentInstance Formatter
261
Section 2 - The DecimalFormat Class
262
Section 3 - The printf Method
263
Short Problems
263
Long Problems
264

Math Operations
266
Section 1 - The Math Class
266
Section 2 - Math Class Constants
266
Section 3 - The abs Method
267
Section 4 - The floor Method
267
Section 5 - The ceil Method
267
Section 6 - The round Method
267
Section 7 - The min Method
268
Section 8 - The max Method
268
Section 9 - The pow Method
268
Section 10 - The log, log10, and exp Methods
269
Section 11 - The hypot Method
269
Section 12 - Trigonometric Functions
269
Section 12a - The toRadians and toDegrees Methods
269
Section 12b - The sin, cos, and tan Methods
270
Section 12c - The asin, acos, and atan Methods
270
Short Problems
271
Long Problems
272

Enum Types
274
Section 1 - Defining an Enum Type
275
Section 2 - Enum Types are Classes
276
Section 3 - The ordinal Method
276
Section 4 - The toString and name Methods
277
Section 5 - The equals Method
277
Section 6 - The compareTo Method
277
Section 7 - The values Method
278
Section 8 - Placing an Enum Type in a Separate File
278
Section 9 - Switching on an Enum Reference Variable
279
Section 10 - Enum Reference Variables as Fields in other Classes
280
Short Problems
281
Long Problems
282



Copyright ©2017 by Ralph Lecessi Incorporated. All rights reserved.


Back to ralphlecessi.com