... 1033
Resources 1033
A: Supplements 1035
Downloadable
supplements 1035
Thinking in C:
Foundations for Java 1035
Thinking inJava
seminar 1035
Hands-On Java
seminar-on-CD 1036
Thinking in ... in Objects
seminar 1036
Thinking in
Enterprise Java 1036
Thinking in Patterns
(with Java) 1037
Thinking in Patterns
seminar 1037
Design consulting
and reviews 1038
B: Resources 1039
Software ... using everything I had learned from my teaching
experience. My company, MindView, Inc., now gives this as the public and in- house Thinking
in Java seminar; this is our main introductory seminar...
... Version - http://www.simpopdf.com
106 ThinkinginJava Bruce Eckel
In the statement:
int c = rand.nextInt(26) + ‘a’;
Random.nextInt( ) produces a random int value from 0 to 25, which is added ... mug2 initialized");
}
Mugs() {
print("Mugs()");
}
Mugs(int i) {
print("Mugs(int)");
}
public static void main(String[] args) {
print("Inside main()"); ...
}
In (1), the break breaks out of the inner iteration and you end up in the outer iteration. In
(2), the continue moves back to the beginning of the inner iteration. But in (3), the
continue...
... 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 ... development, better code organization, extensible programs, and easier code
maintenance.
Solutions to selected exercises can be found in the electronic document The ThinkinginJava Annotated Solution ... example:
//: interfaces/InterfaceCollision .java
package interfaces;
interface I1 { void f(); }
interface I2 { int f(int i); }
interface I3 { int f(); }
class C { public int f() { return...
... 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 of group ... 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 ... the source- code files.
368 ThinkinginJava www.BruceEckel.com
// Nested classes inside interfaces.
public interface IInterface {
static class Inner {
int i, j, k;
public Inner() {} ... 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...
... 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)...
...
add, your container should 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 ...
606 ThinkinginJava www.BruceEckel.com
public class Bits {
public static void printBitSet(BitSet b) {
System.out.println("bits: " + b);
String bbits = new String();
for(int ...
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...
... 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:...
...
mouseMoved(MouseEvent)
WindowListener
WindowAdapter
windowOpened(WindowEvent)
windowClosing(WindowEvent)
windowClosed(WindowEvent)
windowActivated(WindowEvent)
windowDeactivated(WindowEvent)
windowIconified(WindowEvent) ... <applet code= BoxLayout1 width=450 height=200></applet>
import javax.swing.*;
import java. awt.*;
import com.bruceeckel.swing.*;
842 ThinkinginJava www.BruceEckel.com
import java. awt.event.*; ... com.bruceeckel.swing.*;
9
InJava 1.0/1.1 you could not usefully inherit from the button object. This was only one of
numerous fundamental design flaws.
818 ThinkinginJava www.BruceEckel.com...
...
Feedback
In the previous two editions of Thinkingin Java, I used makefiles to build
all the codein the book’s source- code tree. I automatically generated
these makefiles—one in each directory, ... those
constraints in code, as a postcondition. InJava these are coded as
assertions, but the assertion statements will vary from one method to
another.
Feedback
952 ThinkinginJava www.BruceEckel.com ... 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...
... 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 ... print the class name so you can see what’s happening.
Feedback
In main( ), different types of Ordinary objects are created and upcast to
Ordinary in the array definition. The first two lines...