... 1035
Thinking in C:
Foundations for Java 1035
Thinking inJava
seminar 1035
Hands-On Java
seminar-on-CD 1036
Thinking in Objects
seminar 1036
Thinking in
Enterprise Java 1036
Thinking in ... I stumbled upon the PDF version of
Thinking in Java. Even before I finished reading it, I ran to the store and found Thinkingin
C++. Now, I have been in the computer business for over eight ... fascinating world of C++. It
helped me in getting better opportunities in life. Now, in pursuit of more knowledge and
when I wanted to learn Java, I bumped into ThinkinginJava no doubts in...
... to do with that return value.
108 ThinkinginJava Bruce Eckel
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
116 ThinkinginJava Bruce Eckel
The this keyword
If ... electronic document The ThinkinginJavaAnnotated Solution Guide,
available for sale from www.MindView.net.
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
x -= y; ... mug2 initialized");
}
Mugs() {
print("Mugs()");
}
Mugs(int i) {
print("Mugs(int)");
}
public static void main(String[] args) {
print("Inside main()");...
... Interfaces 237
Nesting interfaces
Interfaces may be nested within classes and within other interfaces.
3
This reveals a number
of interesting features:
//: interfaces/nesting/NestingInterfaces .java ... code
maintenance.
Solutions to selected exercises can be found in the electronic document The ThinkinginJavaAnnotated Solution Guide,
available for sale from www.MindView.net.
Simpo PDF Merge ... private int i; // Storage allocated for each
220 ThinkinginJava Bruce Eckel
Simpo PDF Merge and Split Unregistered Version - http://www.simpopdf.com
“Multiple inheritance” inJava
Because an interface...
... PDF version of Thinkingin Java. Even before I finished reading it, I
ran to the store and found Thinkingin C++. Now, I have been in the
2 ThinkinginJava www.BruceEckel.com
been a kind ... double spaces in text, replace ( ) with ( ), correct em-
dashes with
ã Preface
ã Index
Thinking
in
Java
Third Edition
Bruce Eckel
President, MindView, Inc.
6 ThinkinginJava www.BruceEckel.com ... a good job of teaching the what and how of the language,
Thinking inJava is definitely the thinking person’s choice in a Java book.
Robert S. Stephenson
Thanks for writing a great book. The...
... printBinaryInt("-i", -i);
printBinaryInt("j", j);
printBinaryInt("i & j", i & j);
printBinaryInt("i | j", i | j);
126 ThinkinginJava ...
124 ThinkinginJava www.BruceEckel.com
} ///:~
The first thing you will see are some shorthand methods for printing: the
printInt( ) prints a String followed by an int and the pringFloat( ... 2147483647;
printBinaryInt("maxpos", maxpos);
int maxneg = -2147483648;
printBinaryInt("maxneg", maxneg);
printBinaryInt("i", i);
printBinaryInt("~i",...
...
compressed into a JAR file (using Java s jar archiver). The Java
interpreter is responsible for finding, loading, and interpreting
1
these
files.
Feedback
1
There’s nothing inJava that ... will be introduced
in Chapter 6.)
208 ThinkinginJava www.BruceEckel.com
//
}
This is one place in which the compiler, appropriately, does complain
about forward referencing, since ... forced into String representations by
putting them in a String expression; in the above case, starting the
expression with an empty String does the trick. But this brings up an
interesting observation....
... Inheriting an inner class.
class WithInner {
class Inner {}
}
public class InheritInner extends WithInner.Inner {
//! InheritInner() {} // Won't compile
InheritInner(WithInner ... static void main(String[] args) {
WithInner wi = new WithInner();
InheritInner ii = new InheritInner(wi);
}
} ///:~
You can see that InheritInner is extending only the inner class, not ... source-code files.
368 ThinkinginJava www.BruceEckel.com
// Nested classes inside interfaces.
public interface IInterface {
static class Inner {
int i, j, k;
public Inner() {}
void f()...
... exceptions to c08:Sequence .java.
21. Change the file name string in MainException .java to name a
file that doesn’t exist. Run the program and note the result.
458 ThinkinginJava www.BruceEckel.com ... number in an
int. You can think of it as a modifiable Integer:
Feedback
//: c10:Counter .java
package c10;
public class Counter {
int i;
public String toString() { return Integer.toString(i); ... } catch(ArrayIndexOutOfBoundsException e) {
System.out.println("Too many objects!");
}
System.out.println(map);
464 ThinkinginJava www.BruceEckel.com
if(o instanceof Rodent)...
... automatically resize it. In main( ),
570 ThinkinginJava www.BruceEckel.com
If you know that you’ll be storing many entries in a HashMap, creating it
with an appropriately large initial capacity ...
Feedback
592 ThinkinginJava www.BruceEckel.com
Sorting and searching
Lists
Utilities to perform sorting and searching for Lists have the same names
and signatures as those for sorting arrays ... ((MPair)iPair).getValue();
}
return null;
614 ThinkinginJava www.BruceEckel.com
instead work with Strings, to avoid the cost of upcasting and
downcasting. Your goal is to make the fastest possible...
... catch (InterruptedException e) {
throw new RuntimeException(e);
}
}
}
728 ThinkinginJava www.BruceEckel.com
// Using a named inner class:
class InnerThread1 {
private int countDown ... "linnet",
"s",
"wings",
"Evening vening ening ning ing ng g is is s full " +
"full ull ll l of of f the the he e linnet linnet " +
"innet ... scheduling mechanism is not deterministic.
In fact, you may see dramatic differences in the output of this simple
690 ThinkinginJava www.BruceEckel.com
System.exit(0);
}
System.out.println("Input:...
... expected output lines and an int containing various flags.
Flags are implemented using bit shifting, with each bit corresponding to a
particular flag as defined at the beginning of Test .java.
Feedback
... produces input on demand:
System.setIn(new BufferedInputStream(new InputStream(){
char[] input = ("test\n").toCharArray();
int index = 0;
public int read() {
return
(int)input[index ... master makefile in the root
directory that would call the rest—using a tool that I originally wrote for
Thinking in C++, in C++ (in about 2 weeks) and later rewrote in Python
(in about half...
... an existing design to fit your
needs. This is the general concept of design patterns, covered inThinking
in Patterns with Java at www.BruceEckel.com.
Feedback
1076 ThinkinginJava www.BruceEckel.com ... code examples in this book immeasurably.
Feedback
Pair programming
Pair programming goes against the rugged individualism that we’ve been
indoctrinated into from the beginning, through school ... constructor for copying an object of the same
1052 ThinkinginJava www.BruceEckel.com
x.i++;
y’s i will be affected as well. This can be seen in the output:
x: 7
y: 7
Incrementing x
x: 8...