Objects first with Java: a practical introduction using BlueJ
Gespeichert in:
Hauptverfasser: | , |
---|---|
Format: | Buch |
Sprache: | English |
Veröffentlicht: |
Harlow [u.a.]
Pearson Education Internat.
2009
|
Ausgabe: | 4th ed., intern. ed. |
Schlagworte: | |
Online-Zugang: | Inhaltsverzeichnis |
Beschreibung: | XXXII, 516 S. Ill. 1 CD-ROM (12 cm) |
ISBN: | 0137005628 9780137005628 0136060870 9780136060871 |
Internformat
MARC
LEADER | 00000nam a2200000 c 4500 | ||
---|---|---|---|
001 | BV035087518 | ||
003 | DE-604 | ||
005 | 20101029 | ||
007 | t | ||
008 | 081007s2009 a||| |||| 00||| eng d | ||
020 | |a 0137005628 |9 0-13-700562-8 | ||
020 | |a 9780137005628 |9 978-0-13-700562-8 | ||
020 | |a 0136060870 |9 0-13-606087-0 | ||
020 | |a 9780136060871 |9 978-0-13-606087-1 | ||
035 | |a (OCoLC)488645408 | ||
035 | |a (DE-599)GBV57793371X | ||
040 | |a DE-604 |b ger | ||
041 | 0 | |a eng | |
049 | |a DE-703 |a DE-91G |a DE-91 | ||
080 | |a 681.3.06JAV | ||
082 | 0 | |a 005.1/33 |2 22 | |
084 | |a ST 250 |0 (DE-625)143626: |2 rvk | ||
084 | |a DAT 362f |2 stub | ||
084 | |a DAT 315f |2 stub | ||
100 | 1 | |a Barnes, David J. |e Verfasser |4 aut | |
245 | 1 | 0 | |a Objects first with Java |b a practical introduction using BlueJ |c David J. Barnes and Michael Kölling |
250 | |a 4th ed., intern. ed. | ||
264 | 1 | |a Harlow [u.a.] |b Pearson Education Internat. |c 2009 | |
300 | |a XXXII, 516 S. |b Ill. |e 1 CD-ROM (12 cm) | ||
336 | |b txt |2 rdacontent | ||
337 | |b n |2 rdamedia | ||
338 | |b nc |2 rdacarrier | ||
650 | 4 | |a Java | |
650 | 4 | |a programmeringssprog | |
650 | 4 | |a Informatik | |
650 | 4 | |a Computer science |x Study and teaching | |
650 | 4 | |a Java (Computer program language) | |
650 | 4 | |a Object-oriented programming (Computer science) | |
650 | 0 | 7 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java Standard Edition 7 |0 (DE-588)7751205-4 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a BlueJ |0 (DE-588)4730248-3 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |2 gnd |9 rswk-swf |
650 | 0 | 7 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |2 gnd |9 rswk-swf |
651 | 7 | |a Java |0 (DE-588)4028527-3 |2 gnd |9 rswk-swf | |
655 | 7 | |8 1\p |0 (DE-588)4123623-3 |a Lehrbuch |2 gnd-content | |
689 | 0 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 0 | 1 | |a Java |g Programmiersprache |0 (DE-588)4401313-9 |D s |
689 | 0 | 2 | |a BlueJ |0 (DE-588)4730248-3 |D s |
689 | 0 | |8 2\p |5 DE-604 | |
689 | 1 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 1 | 1 | |a Java Standard Edition 7 |0 (DE-588)7751205-4 |D s |
689 | 1 | 2 | |a BlueJ |0 (DE-588)4730248-3 |D s |
689 | 1 | |8 3\p |5 DE-604 | |
689 | 2 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 2 | 1 | |a Java Standard Edition 8 |0 (DE-588)1049861094 |D s |
689 | 2 | 2 | |a BlueJ |0 (DE-588)4730248-3 |D s |
689 | 2 | |8 4\p |5 DE-604 | |
689 | 3 | 0 | |a Objektorientierte Programmierung |0 (DE-588)4233947-9 |D s |
689 | 3 | 1 | |a Java |0 (DE-588)4028527-3 |D g |
689 | 3 | |8 5\p |5 DE-604 | |
700 | 1 | |a Kölling, Michael |e Verfasser |4 aut | |
856 | 4 | 2 | |m Digitalisierung UB Bayreuth |q application/pdf |u http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016755681&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |3 Inhaltsverzeichnis |
999 | |a oai:aleph.bib-bvb.de:BVB01-016755681 | ||
883 | 1 | |8 1\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 2\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 3\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 4\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk | |
883 | 1 | |8 5\p |a cgwrk |d 20201028 |q DE-101 |u https://d-nb.info/provenance/plan#cgwrk |
Datensatz im Suchindex
_version_ | 1804138043043479552 |
---|---|
adam_text | Contents
Foreword
Preface to the instructor
Guided Tour
List of projects discussed in detail in this book
Acknowledgments
Part
1
Foundations of object orientation
Chapter
1
Objects and classes
1.1
Objects and classes
1.2
Creating objects
1.3
Calling methods
1.4
Parameters
1.5
Data types
1.6
Multiple instances
1.7
State
1.8
What is in an object?
1.9
Object interaction
1.10
Source code
1.11
Another example
1.12
Return values
1.13
Objects as parameters
1.14
Summary
Chapter
2
Understanding class definitions
2.1
Ticket machines
2.1.1
Exploring the behavior of
a naïve
ticket machine
2.2
Examining a class definition
2.3
Fields, constructors, and methods
2.3.1
Fields
2.3.2
Constructors
XVIII
xix
xxvii
xxix
xxxi
3
3
4
5
6
7
8
8
9
10
11
13
13
14
15
18
18
19
20
22
24
26
viii Contents
2.4
Passing data via parameters
27
2.5
Assignment
29
2.6
Accessor methods
30
2.7
Mutator methods
32
2.8
Printing from methods
34
2.9
Summary of the
naïve
ticket machine
36
2.10
Reflecting on the design of the ticket machine
37
2.11
Making choices: the conditional statement
40
2.12
A further conditional-statement example
41
2.13
Local variables
42
2.14
Fields, parameters, and local variables
44
2.15
Summary of the better ticket machine
45
2.16
Self-review exercises
45
2.17
Reviewing a familiar example
47
2.18
Experimenting with expressions: The Code Pad
50
2.19
Summary
52
Chapter
3
Object interaction
56
3.1
The clock example
56
3.2
Abstraction and modularization
57
3.3
Abstraction in software
58
3.4
Modularization in the clock example
58
3.5
Implementing the clock display
59
3.6
Class diagrams versus object diagrams
60
3.7
Primitive types and object types
63
3.8
The ClockDisplay source code
63
3.8.1
Class Number-Display 63
3.8.2
String concatenation
66
3.8.3
The modulo operator
67
3.8.4
Class ClockDisplay
68
3.9
Objects creating objects 71
3.10
Multiple constructors 73
3.11
Method calls 73
3.11.1
Internal method calls 73
3.11.2
External method calls 74
3.11.3
Summary of the clock display
75
3.12
Another example of object interaction 76
3.12.1
The mail system example 77
3.12.2
The this key word 78
3.13
Using a debugger 7^
Contents
IX
3.13.1
Setting
breakpoints
3.13.2
Single stepping
3.13.3
Stepping into methods
3.14
Method calling revisited
3.15
Summary
80
81
82
83
84
Chapter
4
Grouping objects
4.
.1
Grouping objects in flexible-size collections
4
.2
A personal notebook
4
.3
A first look at library classes
4.3.1
An example of using a library
4.4
Object structures with collections
4
.5
Generic classes
4
.6
Numbering within collections
4
.7
Removing an item from a collection
4
.8
Processing a whole collection
4.8.1
The for-each loop
4.8.2
The while loop
4.8.3
Iterating over a collection
4.8.4
Index access versus iterators
4.8.5
Removing elements
4.
.9
Summary of the notebook example
4.10
Another example: an auction system
4.10.1
The Lot class
4.10.2
The Auction class
4.10.3
Anonymous objects
4.10.4
Using collections
4.1
1
Flexible collection summary
4.12
Fixed-size collections
4.12.1
A log-file analyzer
4.12.2
Declaring array variables
4.12.3
Creating array objects
4.12.4
Using array objects
4.12.5
Analyzing the log file
4.12.6
The for loop
4.12.7
The for loop and iterators
4.13
Summary
87
87
88
88
89
91
92
93
94
96
97
99
102
103
104
105
106
106
108
110
111
113
114
114
117
117
119
119
120
122
126
Chapter
5
More sophisticated behavior
128
Contents
5.1
Documentation
for
library
classes
129
5.2
The TechSupport system
130
5.2.1
Exploring the TechSupport system
130
5.2.2
Reading the code
132
5.3
Reading class documentation
136
5.3.1
Interfaces versus implementation
137
5.3.2
Using library-class methods
138
5.3.3
Checking string equality
140
5.4
Adding random behavior
140
5.4.1
The Random class
141
5.4.2
Random numbers with limited range
142
5.4.3
Generating random responses
143
5.4.4
Reading documentation for parameterized classes
146
5.5
Packages and import
146
5.6
Using maps for associations
147
5.6.1
The concept of a map
148
5.6.2
Using a HashMap
148
5.6.3
Using a map for the TechSupport system
150
5.7
Using sets
152
5.8
Dividing strings
153
5.9
Finishing the TechSupport system
154
5.10
Writing class documentation
156
5.10.1
Using javadoc in BlueJ
157
5.10.2
Elements of class documentation
157
5.11
Public versus private
158
5.11.1
Information hiding
159
5.11.2
Private methods and public fields
160
5.12
Learning about classes from their interfaces
161
5.13
Class variables and constants
163
5.13.1
The static keyword
164
5.13.2
Constants
165
5.14
Summary
166
Chapter
6
Well-behaved objects
169
6.1
Introduction
169
6.2
Testing and debugging I70
6.3
Unit testing within BlueJ I70
6.3.1
Using inspectors
175
6.3.2
Positive versus negative testing
177
6.4
Test automation 1^7
Contents xi
6.4.1 Regression
testing
178
6.4.2
Automated checking of test results
180
6.4.3
Recording a test
183
6.4.4
Fixtures
185
6.5
Modularization and interfaces
186
6.6
A debugging scenario
188
6.7
Commenting and style
188
6.8
Manual walkthroughs
190
6.8.1
A high-level walkthrough
190
6.8.2
Checking state with a walkthrough
192
6.8.3
Verbal walkthroughs
194
6.9
Print statements
195
6.9.1
Turning debugging information on or off
197
198
199
200
200
201
201
203
205
206
210
210
210
212
213
217
217
220
220
224
225
225
226
227
227
228
6.10
Choosing a test strategy
6.11
Debuggers
6.12
Putting the techniques into practice
6.13
Summary
Chapter
7
Designing classes
7.1
Introduction
7.2
The world-of-zuul game example
7.3
Introduction to coupling and cohesion
7.4
Code duplication
7.5
Making extensions
7.5.1
The task
7.5.2
Finding the relevant source code
7.6
Coupling
7.6.1
Using encapsulation to reduce coupling
7.7
Responsibility-driven design
7.7.1
Responsibilities and coupling
7.8
Localizing change
7.9
Implicit coupling
7.10
Thinking ahead
7.11
Cohesion
7.11.1
Cohesion of methods
7.11.2
Cohesion of classes
7.11.3
Cohesion for readability
7.11.4
Cohesion for reuse
7.12
Refactoring
xii
Contents
7.12.1
Refactoring
and
testing
7.12.2
An example of
refactoring
7.13
Refactoring
for language independence
7.13.1
Enumerated types
7.13.2
Further decoupling of the command interface
7.14
Design guidelines
7.15
Executing without BlueJ
7.15.1
Class methods
7.15.2
The main method
7.15.3
Limitations of class methods
7.16
Summary
229
229
233
233
235
237
238
238
239
239
240
Part
2
Application structures
Chapter
8
Improving structure with inheritance
8.1
The DoME example
8.1.1
DoME classes and objects
8.1.2
DoME source code
8.1.3
Discussion of the DoME application
8.2
Using inheritance
8.3
Inheritance hierarchies
8.4
Inheritance in Java
8.4.1
Inheritance and access rights
8.4.2
Inheritance and initialization
8.5
DoME: adding other item types
8.6
Advantages of inheritance (so far)
8.7
Subtyping
8.7.1
Subclasses and subtypes
8.7.2
Subtyping and assignment
8.7.3
Subtyping and parameter passing
8.7.4
Polymorphic variables
8.7.5
Casting
8.8
The Object class
8.9
Autoboxing and Wrapper classes
8.10
The collection hierarchy
8.11
Summary
243
245
245
246
249
255
256
257
258
259
260
262
264
265
266
267
268
269
270
271
272
273
273
Contents
xiii
Chapter
9
More about inheritance
9.1
The problem: DoME s print method
9.2
Static type and dynamic type
9.2.1
Calling print from Database
9.3
Overriding
9.4
Dynamic method lookup
9.5
Super call in methods
9.6
Method polymorphism
9.7
Object methods: toString
9.8
Object equality: equals and hashCode
9.9
Protected access
9.10
The instanceof operator
9.11
Another example of inheritance with overriding
9.12
Summary
Chapter
10
Further abstraction techniques
10.1
Simulations
10.2
The foxes-and-rabbits simulation
10.2.1
The foxes-and-rabbits project
10.2.2
The Rabbit class
10.2.3
The Fox class
10.2.4
The Simulator class: setup
10.2.5
The Simulator class: a simulation step
10.2.6
Taking steps to improve the simulation
10.3
Abstract classes
10.3.1
The Animal superclass
10.3.2
Abstract methods
10.3.3
Abstract classes
10.4
More abstract methods
10.5
Multiple inheritance
10.5.1
An Actor class
10.5.2
Flexibility through abstraction
10.5.3
Selective drawing
10.5.4
Drawable actors: multiple inheritance
10.6
Interfaces
10.6.1
An Actor interface
10.6.2
Multiple inheritance of interfaces
276
276
278
279
281
282
285
287
287
290
292
294
295
297
300
300
301
302
305
308
311
314
316
316
317
318
320
322
324
324
326
326
327
328
328
330
xiv
Contents
10.6.3 Interfaces
as types
10.6.4 Interfaces
as specifications
10.6.5
A further example of interfaces
10.6.6
Abstract class or interface?
10.
7
Summary of inheritance
10.8
Summary
Chapter
1
1
Building graphical user interfaces
11.
.1
Introduction
11.
.2
Components, layout, and event handling
11.
.3
AWT and Swing
11
.4
The ImageViewer example
11.4.1
First experiments: creating a frame
11.4.2
Adding simple components
11.4.3
Adding menus
11.4.4
Event handling
11.4.5
Centralized receipt of events
11.4.6
Inner classes
11.4.7
Anonymous inner classes
11.4.8
Summary of key GUI elements
11
.5
ImageViewer
1.0:
the first complete version
11.5.1
Image-processing classes
11.5.2
Adding the image
11.5.3
Layout
11.5.4
Nested containers
11.5.5
Image filters
11.5.6
Dialogs
11.5.7
Summary of layout management
11
.6
ImageViewer
2.0:
improving program structure
11
.7
ImageViewer
3.0:
more interface components
11.7.1
Buttons
11.7.2
Borders
11.8
Further extensions
11
.9
Another example: SoundPlayer
11.
IO
Summary
Chapter
12
Handling errors
12.1
The address-book project
12.2
Defensive programming
12.2.1
Client-server interaction
12.2.2
Argument checking
331
331
332
333
334
334
337
337
338
338
339
339
342
343
344
345
348
349
351
351
351
353
354
356
360
363
364
365
370
370
373
374
376
379
381
382
386
386
388
Contents xv
12.3 Server
error reporting
389
12.3.1
Notifying the user
389
12.3.2
Notifying the client object
390
12.4
Exception-throwing principles
393
12.4.1
Throwing an exception
393
12.4.2
Exception classes
394
12.4.3
The effect of an exception
396
12.4.4
Unchecked exceptions
397
12.4.5
Preventing object creation
398
12.5
Exception handling
399
12.5.1
Checked exceptions: the throws clause
399
12.5.2
Catching exceptions: the try statement
400
12.5.3
Throwing and catching multiple exceptions
402
12.5.4
Propagating an exception
404
12.5.5
The finally clause
404
12.6
Defining new exception classes
405
12.7
Using assertions
407
12.7.1
Internal consistency checks
407
12.7.2
The assert statement
407
12.7.3
Guidelines for using assertions
409
12.7.4
Assertions and the BlueJ unit testing framework
410
12.8
Error recovery and avoidance
410
12.8.1
Error recovery
410
12.8.2
Error avoidance
412
12.9
File-based input/output
413
12.9.1
Readers, writers, and streams
414
12.9.2
Text output with FileWriter
414
12.9.3
Text input with FileReade
г
416
12.9.4
The File class
419
12.9.5
Scanner: reading input from the terminal
419
12.9.6
Object serialization
421
12.10
Summary
422
Chapter
13
Designing applications
424
13.1
Analysis and design
424
13.1.1
The verb/noun method
425
13.1.2
The cinema booking example
425
13.1.3
Discovering classes
425
13.1.4
Using
CRC
cards
426
13.1.5
Scenarios
427
xvi Contents
13.2
Class
design
431
13.2.1
Designing
class interfaces
431
13.2.2
User interface
design
432
13.3
Documentation
432
13.4
Cooperation
433
13.5
Prototyping
434
13.6
Software growth
434
13.6.1
Waterfall model
434
13.6.2
Iterative development
435
13.7
Using design patterns
436
13.7.1
Structure of a pattern
437
13.7.2
Decorator
437
13.7.3
Singleton
438
13.7.4
Factory method
439
13.7.5
Observer
439
13.7.6
Pattern summary
441
13.8
Summary
442
Chapter
14
A case study
444
14.1
The case study
444
14.1.1
The problem description
444
14.2
Analysis and design
445
14.2.1
Discovering classes
445
14.2.2
Using
CRC
cards
446
14.2.3
Scenarios
447
14.3
Class design
449
14.3.1
Designing class interfaces
449
14.3.2
Collaborators
449
14.3.3
The outline implementation
450
14.3.4
Testing
454
14.3.5
Some remaining issues
455
14.4
Iterative development
455
14.4.1
Development steps
455
14.4.2
A first stage
456
14.4.3
Testing the first stage
460
14.4.4
A later stage of development
461
14.4.5
Further ideas for development
462
14.4.6
Reuse
463
14.5
Another example
463
14.6
Taking things further
464
Contents
xvii
Appendices
A
Working with a BlueJ project
В
Java data types
С
Operators
D
Java control structures
E
Running Java without BlueJ
F
Using the debugger
G
JUnit unit-testing tools
H
Teamwork tools
1
Javadoc
J
Program style guide
К
Important library classes
Index
465
468
471
474
480
483
487
489
491
494
498
502
Website resources
http://www.bluej.org/objects-first
For Students:
•
Program style guide for all examples in the book
•
Links to further material of interest
For Instructors:
•
Powerpoint slides that can be downloaded and used as OHTs
•
Solutions to exercises
•
Additional activities, exercises and projects for use in teaching
|
adam_txt |
Contents
Foreword
Preface to the instructor
Guided Tour
List of projects discussed in detail in this book
Acknowledgments
Part
1
Foundations of object orientation
Chapter
1
Objects and classes
1.1
Objects and classes
1.2
Creating objects
1.3
Calling methods
1.4
Parameters
1.5
Data types
1.6
Multiple instances
1.7
State
1.8
What is in an object?
1.9
Object interaction
1.10
Source code
1.11
Another example
1.12
Return values
1.13
Objects as parameters
1.14
Summary
Chapter
2
Understanding class definitions
2.1
Ticket machines
2.1.1
Exploring the behavior of
a naïve
ticket machine
2.2
Examining a class definition
2.3
Fields, constructors, and methods
2.3.1
Fields
2.3.2
Constructors
XVIII
xix
xxvii
xxix
xxxi
3
3
4
5
6
7
8
8
9
10
11
13
13
14
15
18
18
19
20
22
24
26
viii Contents
2.4
Passing data via parameters
27
2.5
Assignment
29
2.6
Accessor methods
30
2.7
Mutator methods
32
2.8
Printing from methods
34
2.9
Summary of the
naïve
ticket machine
36
2.10
Reflecting on the design of the ticket machine
37
2.11
Making choices: the conditional statement
40
2.12
A further conditional-statement example
41
2.13
Local variables
42
2.14
Fields, parameters, and local variables
44
2.15
Summary of the better ticket machine
45
2.16
Self-review exercises
45
2.17
Reviewing a familiar example
47
2.18
Experimenting with expressions: The Code Pad
50
2.19
Summary
52
Chapter
3
Object interaction
56
3.1
The clock example
56
3.2
Abstraction and modularization
57
3.3
Abstraction in software
58
3.4
Modularization in the clock example
58
3.5
Implementing the clock display
59
3.6
Class diagrams versus object diagrams
60
3.7
Primitive types and object types
63
3.8
The ClockDisplay source code
63
3.8.1
Class Number-Display 63
3.8.2
String concatenation
66
3.8.3
The modulo operator
67
3.8.4
Class ClockDisplay
68
3.9
Objects creating objects 71
3.10
Multiple constructors 73
3.11
Method calls 73
3.11.1
Internal method calls 73
3.11.2
External method calls 74
3.11.3
Summary of the clock display
75
3.12
Another example of object interaction 76
3.12.1
The mail system example 77
3.12.2
The this key word 78
3.13
Using a debugger 7^
Contents
IX
3.13.1
Setting
breakpoints
3.13.2
Single stepping
3.13.3
Stepping into methods
3.14
Method calling revisited
3.15
Summary
80
81
82
83
84
Chapter
4
Grouping objects
4.
.1
Grouping objects in flexible-size collections
4
.2
A personal notebook
4
.3
A first look at library classes
4.3.1
An example of using a library
4.4
Object structures with collections
4
.5
Generic classes
4
.6
Numbering within collections
4
.7
Removing an item from a collection
4
.8
Processing a whole collection
4.8.1
The for-each loop
4.8.2
The while loop
4.8.3
Iterating over a collection
4.8.4
Index access versus iterators
4.8.5
Removing elements
4.
.9
Summary of the notebook example
4.10
Another example: an auction system
4.10.1
The Lot class
4.10.2
The Auction class
4.10.3
Anonymous objects
4.10.4
Using collections
4.1
1
Flexible collection summary
4.12
Fixed-size collections
4.12.1
A log-file analyzer
4.12.2
Declaring array variables
4.12.3
Creating array objects
4.12.4
Using array objects
4.12.5
Analyzing the log file
4.12.6
The for loop
4.12.7
The for loop and iterators
4.13
Summary
87
87
88
88
89
91
92
93
94
96
97
99
102
103
104
105
106
106
108
110
111
113
114
114
117
117
119
119
120
122
126
Chapter
5
More sophisticated behavior
128
Contents
5.1
Documentation
for
library
classes
129
5.2
The TechSupport system
130
5.2.1
Exploring the TechSupport system
130
5.2.2
Reading the code
132
5.3
Reading class documentation
136
5.3.1
Interfaces versus implementation
137
5.3.2
Using library-class methods
138
5.3.3
Checking string equality
140
5.4
Adding random behavior
140
5.4.1
The Random class
141
5.4.2
Random numbers with limited range
142
5.4.3
Generating random responses
143
5.4.4
Reading documentation for parameterized classes
146
5.5
Packages and import
146
5.6
Using maps for associations
147
5.6.1
The concept of a map
148
5.6.2
Using a HashMap
148
5.6.3
Using a map for the TechSupport system
150
5.7
Using sets
152
5.8
Dividing strings
153
5.9
Finishing the TechSupport system
154
5.10
Writing class documentation
156
5.10.1
Using javadoc in BlueJ
157
5.10.2
Elements of class documentation
157
5.11
Public versus private
158
5.11.1
Information hiding
159
5.11.2
Private methods and public fields
160
5.12
Learning about classes from their interfaces
161
5.13
Class variables and constants
163
5.13.1
The static keyword
164
5.13.2
Constants
165
5.14
Summary
166
Chapter
6
Well-behaved objects
169
6.1
Introduction
169
6.2
Testing and debugging I70
6.3
Unit testing within BlueJ I70
6.3.1
Using inspectors
175
6.3.2
Positive versus negative testing
177
6.4
Test automation 1^7
Contents xi
6.4.1 Regression
testing
178
6.4.2
Automated checking of test results
180
6.4.3
Recording a test
183
6.4.4
Fixtures
185
6.5
Modularization and interfaces
186
6.6
A debugging scenario
188
6.7
Commenting and style
188
6.8
Manual walkthroughs
190
6.8.1
A high-level walkthrough
190
6.8.2
Checking state with a walkthrough
192
6.8.3
Verbal walkthroughs
194
6.9
Print statements
195
6.9.1
Turning debugging information on or off
197
198
199
200
200
201
201
203
205
206
210
210
210
212
213
217
217
220
220
224
225
225
226
227
227
228
6.10
Choosing a test strategy
6.11
Debuggers
6.12
Putting the techniques into practice
6.13
Summary
Chapter
7
Designing classes
7.1
Introduction
7.2
The world-of-zuul game example
7.3
Introduction to coupling and cohesion
7.4
Code duplication
7.5
Making extensions
7.5.1
The task
7.5.2
Finding the relevant source code
7.6
Coupling
7.6.1
Using encapsulation to reduce coupling
7.7
Responsibility-driven design
7.7.1
Responsibilities and coupling
7.8
Localizing change
7.9
Implicit coupling
7.10
Thinking ahead
7.11
Cohesion
7.11.1
Cohesion of methods
7.11.2
Cohesion of classes
7.11.3
Cohesion for readability
7.11.4
Cohesion for reuse
7.12
Refactoring
xii
Contents
7.12.1
Refactoring
and
testing
7.12.2
An example of
refactoring
7.13
Refactoring
for language independence
7.13.1
Enumerated types
7.13.2
Further decoupling of the command interface
7.14
Design guidelines
7.15
Executing without BlueJ
7.15.1
Class methods
7.15.2
The main method
7.15.3
Limitations of class methods
7.16
Summary
229
229
233
233
235
237
238
238
239
239
240
Part
2
Application structures
Chapter
8
Improving structure with inheritance
8.1
The DoME example
8.1.1
DoME classes and objects
8.1.2
DoME source code
8.1.3
Discussion of the DoME application
8.2
Using inheritance
8.3
Inheritance hierarchies
8.4
Inheritance in Java
8.4.1
Inheritance and access rights
8.4.2
Inheritance and initialization
8.5
DoME: adding other item types
8.6
Advantages of inheritance (so far)
8.7
Subtyping
8.7.1
Subclasses and subtypes
8.7.2
Subtyping and assignment
8.7.3
Subtyping and parameter passing
8.7.4
Polymorphic variables
8.7.5
Casting
8.8
The Object class
8.9
Autoboxing and Wrapper classes
8.10
The collection hierarchy
8.11
Summary
243
245
245
246
249
255
256
257
258
259
260
262
264
265
266
267
268
269
270
271
272
273
273
Contents
xiii
Chapter
9
More about inheritance
9.1
The problem: DoME's print method
9.2
Static type and dynamic type
9.2.1
Calling print from Database
9.3
Overriding
9.4
Dynamic method lookup
9.5
Super call in methods
9.6
Method polymorphism
9.7
Object methods: toString
9.8
Object equality: equals and hashCode
9.9
Protected access
9.10
The instanceof operator
9.11
Another example of inheritance with overriding
9.12
Summary
Chapter
10
Further abstraction techniques
10.1
Simulations
10.2
The foxes-and-rabbits simulation
10.2.1
The foxes-and-rabbits project
10.2.2
The Rabbit class
10.2.3
The Fox class
10.2.4
The Simulator class: setup
10.2.5
The Simulator class: a simulation step
10.2.6
Taking steps to improve the simulation
10.3
Abstract classes
10.3.1
The Animal superclass
10.3.2
Abstract methods
10.3.3
Abstract classes
10.4
More abstract methods
10.5
Multiple inheritance
10.5.1
An Actor class
10.5.2
Flexibility through abstraction
10.5.3
Selective drawing
10.5.4
Drawable actors: multiple inheritance
10.6
Interfaces
10.6.1
An Actor interface
10.6.2
Multiple inheritance of interfaces
276
276
278
279
281
282
285
287
287
290
292
294
295
297
300
300
301
302
305
308
311
314
316
316
317
318
320
322
324
324
326
326
327
328
328
330
xiv
Contents
10.6.3 Interfaces
as types
10.6.4 Interfaces
as specifications
10.6.5
A further example of interfaces
10.6.6
Abstract class or interface?
10.
7
Summary of inheritance
10.8
Summary
Chapter
1
1
Building graphical user interfaces
11.
.1
Introduction
11.
.2
Components, layout, and event handling
11.
.3
AWT and Swing
11
.4
The ImageViewer example
11.4.1
First experiments: creating a frame
11.4.2
Adding simple components
11.4.3
Adding menus
11.4.4
Event handling
11.4.5
Centralized receipt of events
11.4.6
Inner classes
11.4.7
Anonymous inner classes
11.4.8
Summary of key GUI elements
11
.5
ImageViewer
1.0:
the first complete version
11.5.1
Image-processing classes
11.5.2
Adding the image
11.5.3
Layout
11.5.4
Nested containers
11.5.5
Image filters
11.5.6
Dialogs
11.5.7
Summary of layout management
11
.6
ImageViewer
2.0:
improving program structure
11
.7
ImageViewer
3.0:
more interface components
11.7.1
Buttons
11.7.2
Borders
11.8
Further extensions
11
.9
Another example: SoundPlayer
11.'
IO
Summary
Chapter
12
Handling errors
12.1
The address-book project
12.2
Defensive programming
12.2.1
Client-server interaction
12.2.2
Argument checking
331
331
332
333
334
334
337
337
338
338
339
339
342
343
344
345
348
349
351
351
351
353
354
356
360
363
364
365
370
370
373
374
376
379
381
382
386
386
388
Contents xv
12.3 Server
error reporting
389
12.3.1
Notifying the user
389
12.3.2
Notifying the client object
390
12.4
Exception-throwing principles
393
12.4.1
Throwing an exception
393
12.4.2
Exception classes
394
12.4.3
The effect of an exception
396
12.4.4
Unchecked exceptions
397
12.4.5
Preventing object creation
398
12.5
Exception handling
399
12.5.1
Checked exceptions: the throws clause
399
12.5.2
Catching exceptions: the try statement
400
12.5.3
Throwing and catching multiple exceptions
402
12.5.4
Propagating an exception
404
12.5.5
The finally clause
404
12.6
Defining new exception classes
405
12.7
Using assertions
407
12.7.1
Internal consistency checks
407
12.7.2
The assert statement
407
12.7.3
Guidelines for using assertions
409
12.7.4
Assertions and the BlueJ unit testing framework
410
12.8
Error recovery and avoidance
410
12.8.1
Error recovery
410
12.8.2
Error avoidance
412
12.9
File-based input/output
413
12.9.1
Readers, writers, and streams
414
12.9.2
Text output with FileWriter
414
12.9.3
Text input with FileReade
г
416
12.9.4
The File class
419
12.9.5
Scanner: reading input from the terminal
419
12.9.6
Object serialization
421
12.10
Summary
422
Chapter
13
Designing applications
424
13.1
Analysis and design
424
13.1.1
The verb/noun method
425
13.1.2
The cinema booking example
425
13.1.3
Discovering classes
425
13.1.4
Using
CRC
cards
426
13.1.5
Scenarios
427
xvi Contents
13.2
Class
design
431
13.2.1
Designing
class interfaces
431
13.2.2
User interface
design
432
13.3
Documentation
432
13.4
Cooperation
433
13.5
Prototyping
434
13.6
Software growth
434
13.6.1
Waterfall model
434
13.6.2
Iterative development
435
13.7
Using design patterns
436
13.7.1
Structure of a pattern
437
13.7.2
Decorator
437
13.7.3
Singleton
438
13.7.4
Factory method
439
13.7.5
Observer
439
13.7.6
Pattern summary
441
13.8
Summary
442
Chapter
14
A case study
444
14.1
The case study
444
14.1.1
The problem description
444
14.2
Analysis and design
445
14.2.1
Discovering classes
445
14.2.2
Using
CRC
cards
446
14.2.3
Scenarios
447
14.3
Class design
449
14.3.1
Designing class interfaces
449
14.3.2
Collaborators
449
14.3.3
The outline implementation
450
14.3.4
Testing
454
14.3.5
Some remaining issues
455
14.4
Iterative development
455
14.4.1
Development steps
455
14.4.2
A first stage
456
14.4.3
Testing the first stage
460
14.4.4
A later stage of development
461
14.4.5
Further ideas for development
462
14.4.6
Reuse
463
14.5
Another example
463
14.6
Taking things further
464
Contents
xvii
Appendices
A
Working with a BlueJ project
В
Java data types
С
Operators
D
Java control structures
E
Running Java without BlueJ
F
Using the debugger
G
JUnit unit-testing tools
H
Teamwork tools
1
Javadoc
J
Program style guide
К
Important library classes
Index
465
468
471
474
480
483
487
489
491
494
498
502
Website resources
http://www.bluej.org/objects-first
For Students:
•
Program style guide for all examples in the book
•
Links to further material of interest
For Instructors:
•
Powerpoint slides that can be downloaded and used as OHTs
•
Solutions to exercises
•
Additional activities, exercises and projects for use in teaching |
any_adam_object | 1 |
any_adam_object_boolean | 1 |
author | Barnes, David J. Kölling, Michael |
author_facet | Barnes, David J. Kölling, Michael |
author_role | aut aut |
author_sort | Barnes, David J. |
author_variant | d j b dj djb m k mk |
building | Verbundindex |
bvnumber | BV035087518 |
classification_rvk | ST 250 |
classification_tum | DAT 362f DAT 315f |
ctrlnum | (OCoLC)488645408 (DE-599)GBV57793371X |
dewey-full | 005.1/33 |
dewey-hundreds | 000 - Computer science, information, general works |
dewey-ones | 005 - Computer programming, programs, data, security |
dewey-raw | 005.1/33 |
dewey-search | 005.1/33 |
dewey-sort | 15.1 233 |
dewey-tens | 000 - Computer science, information, general works |
discipline | Informatik |
discipline_str_mv | Informatik |
edition | 4th ed., intern. ed. |
format | Book |
fullrecord | <?xml version="1.0" encoding="UTF-8"?><collection xmlns="http://www.loc.gov/MARC21/slim"><record><leader>03354nam a2200781 c 4500</leader><controlfield tag="001">BV035087518</controlfield><controlfield tag="003">DE-604</controlfield><controlfield tag="005">20101029 </controlfield><controlfield tag="007">t</controlfield><controlfield tag="008">081007s2009 a||| |||| 00||| eng d</controlfield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0137005628</subfield><subfield code="9">0-13-700562-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780137005628</subfield><subfield code="9">978-0-13-700562-8</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">0136060870</subfield><subfield code="9">0-13-606087-0</subfield></datafield><datafield tag="020" ind1=" " ind2=" "><subfield code="a">9780136060871</subfield><subfield code="9">978-0-13-606087-1</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(OCoLC)488645408</subfield></datafield><datafield tag="035" ind1=" " ind2=" "><subfield code="a">(DE-599)GBV57793371X</subfield></datafield><datafield tag="040" ind1=" " ind2=" "><subfield code="a">DE-604</subfield><subfield code="b">ger</subfield></datafield><datafield tag="041" ind1="0" ind2=" "><subfield code="a">eng</subfield></datafield><datafield tag="049" ind1=" " ind2=" "><subfield code="a">DE-703</subfield><subfield code="a">DE-91G</subfield><subfield code="a">DE-91</subfield></datafield><datafield tag="080" ind1=" " ind2=" "><subfield code="a">681.3.06JAV</subfield></datafield><datafield tag="082" ind1="0" ind2=" "><subfield code="a">005.1/33</subfield><subfield code="2">22</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">ST 250</subfield><subfield code="0">(DE-625)143626:</subfield><subfield code="2">rvk</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 362f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="084" ind1=" " ind2=" "><subfield code="a">DAT 315f</subfield><subfield code="2">stub</subfield></datafield><datafield tag="100" ind1="1" ind2=" "><subfield code="a">Barnes, David J.</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="245" ind1="1" ind2="0"><subfield code="a">Objects first with Java</subfield><subfield code="b">a practical introduction using BlueJ</subfield><subfield code="c">David J. Barnes and Michael Kölling</subfield></datafield><datafield tag="250" ind1=" " ind2=" "><subfield code="a">4th ed., intern. ed.</subfield></datafield><datafield tag="264" ind1=" " ind2="1"><subfield code="a">Harlow [u.a.]</subfield><subfield code="b">Pearson Education Internat.</subfield><subfield code="c">2009</subfield></datafield><datafield tag="300" ind1=" " ind2=" "><subfield code="a">XXXII, 516 S.</subfield><subfield code="b">Ill.</subfield><subfield code="e">1 CD-ROM (12 cm)</subfield></datafield><datafield tag="336" ind1=" " ind2=" "><subfield code="b">txt</subfield><subfield code="2">rdacontent</subfield></datafield><datafield tag="337" ind1=" " ind2=" "><subfield code="b">n</subfield><subfield code="2">rdamedia</subfield></datafield><datafield tag="338" ind1=" " ind2=" "><subfield code="b">nc</subfield><subfield code="2">rdacarrier</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Java</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">programmeringssprog</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Informatik</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Computer science</subfield><subfield code="x">Study and teaching</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Java (Computer program language)</subfield></datafield><datafield tag="650" ind1=" " ind2="4"><subfield code="a">Object-oriented programming (Computer science)</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java Standard Edition 7</subfield><subfield code="0">(DE-588)7751205-4</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">BlueJ</subfield><subfield code="0">(DE-588)4730248-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="650" ind1="0" ind2="7"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="651" ind1=" " ind2="7"><subfield code="a">Java</subfield><subfield code="0">(DE-588)4028527-3</subfield><subfield code="2">gnd</subfield><subfield code="9">rswk-swf</subfield></datafield><datafield tag="655" ind1=" " ind2="7"><subfield code="8">1\p</subfield><subfield code="0">(DE-588)4123623-3</subfield><subfield code="a">Lehrbuch</subfield><subfield code="2">gnd-content</subfield></datafield><datafield tag="689" ind1="0" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="1"><subfield code="a">Java</subfield><subfield code="g">Programmiersprache</subfield><subfield code="0">(DE-588)4401313-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2="2"><subfield code="a">BlueJ</subfield><subfield code="0">(DE-588)4730248-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="0" ind2=" "><subfield code="8">2\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="1" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="1"><subfield code="a">Java Standard Edition 7</subfield><subfield code="0">(DE-588)7751205-4</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2="2"><subfield code="a">BlueJ</subfield><subfield code="0">(DE-588)4730248-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="2" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="1"><subfield code="a">Java Standard Edition 8</subfield><subfield code="0">(DE-588)1049861094</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2="2"><subfield code="a">BlueJ</subfield><subfield code="0">(DE-588)4730248-3</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="2" ind2=" "><subfield code="8">4\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="689" ind1="3" ind2="0"><subfield code="a">Objektorientierte Programmierung</subfield><subfield code="0">(DE-588)4233947-9</subfield><subfield code="D">s</subfield></datafield><datafield tag="689" ind1="3" ind2="1"><subfield code="a">Java</subfield><subfield code="0">(DE-588)4028527-3</subfield><subfield code="D">g</subfield></datafield><datafield tag="689" ind1="3" ind2=" "><subfield code="8">5\p</subfield><subfield code="5">DE-604</subfield></datafield><datafield tag="700" ind1="1" ind2=" "><subfield code="a">Kölling, Michael</subfield><subfield code="e">Verfasser</subfield><subfield code="4">aut</subfield></datafield><datafield tag="856" ind1="4" ind2="2"><subfield code="m">Digitalisierung UB Bayreuth</subfield><subfield code="q">application/pdf</subfield><subfield code="u">http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016755681&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA</subfield><subfield code="3">Inhaltsverzeichnis</subfield></datafield><datafield tag="999" ind1=" " ind2=" "><subfield code="a">oai:aleph.bib-bvb.de:BVB01-016755681</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">1\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">2\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">3\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">4\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield><datafield tag="883" ind1="1" ind2=" "><subfield code="8">5\p</subfield><subfield code="a">cgwrk</subfield><subfield code="d">20201028</subfield><subfield code="q">DE-101</subfield><subfield code="u">https://d-nb.info/provenance/plan#cgwrk</subfield></datafield></record></collection> |
genre | 1\p (DE-588)4123623-3 Lehrbuch gnd-content |
genre_facet | Lehrbuch |
geographic | Java (DE-588)4028527-3 gnd |
geographic_facet | Java |
id | DE-604.BV035087518 |
illustrated | Illustrated |
index_date | 2024-07-02T22:09:25Z |
indexdate | 2024-07-09T21:21:54Z |
institution | BVB |
isbn | 0137005628 9780137005628 0136060870 9780136060871 |
language | English |
oai_aleph_id | oai:aleph.bib-bvb.de:BVB01-016755681 |
oclc_num | 488645408 |
open_access_boolean | |
owner | DE-703 DE-91G DE-BY-TUM DE-91 DE-BY-TUM |
owner_facet | DE-703 DE-91G DE-BY-TUM DE-91 DE-BY-TUM |
physical | XXXII, 516 S. Ill. 1 CD-ROM (12 cm) |
publishDate | 2009 |
publishDateSearch | 2009 |
publishDateSort | 2009 |
publisher | Pearson Education Internat. |
record_format | marc |
spelling | Barnes, David J. Verfasser aut Objects first with Java a practical introduction using BlueJ David J. Barnes and Michael Kölling 4th ed., intern. ed. Harlow [u.a.] Pearson Education Internat. 2009 XXXII, 516 S. Ill. 1 CD-ROM (12 cm) txt rdacontent n rdamedia nc rdacarrier Java programmeringssprog Informatik Computer science Study and teaching Java (Computer program language) Object-oriented programming (Computer science) Java Standard Edition 8 (DE-588)1049861094 gnd rswk-swf Java Standard Edition 7 (DE-588)7751205-4 gnd rswk-swf BlueJ (DE-588)4730248-3 gnd rswk-swf Objektorientierte Programmierung (DE-588)4233947-9 gnd rswk-swf Java Programmiersprache (DE-588)4401313-9 gnd rswk-swf Java (DE-588)4028527-3 gnd rswk-swf 1\p (DE-588)4123623-3 Lehrbuch gnd-content Objektorientierte Programmierung (DE-588)4233947-9 s Java Programmiersprache (DE-588)4401313-9 s BlueJ (DE-588)4730248-3 s 2\p DE-604 Java Standard Edition 7 (DE-588)7751205-4 s 3\p DE-604 Java Standard Edition 8 (DE-588)1049861094 s 4\p DE-604 Java (DE-588)4028527-3 g 5\p DE-604 Kölling, Michael Verfasser aut Digitalisierung UB Bayreuth application/pdf http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016755681&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA Inhaltsverzeichnis 1\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 2\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 3\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 4\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk 5\p cgwrk 20201028 DE-101 https://d-nb.info/provenance/plan#cgwrk |
spellingShingle | Barnes, David J. Kölling, Michael Objects first with Java a practical introduction using BlueJ Java programmeringssprog Informatik Computer science Study and teaching Java (Computer program language) Object-oriented programming (Computer science) Java Standard Edition 8 (DE-588)1049861094 gnd Java Standard Edition 7 (DE-588)7751205-4 gnd BlueJ (DE-588)4730248-3 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Java Programmiersprache (DE-588)4401313-9 gnd |
subject_GND | (DE-588)1049861094 (DE-588)7751205-4 (DE-588)4730248-3 (DE-588)4233947-9 (DE-588)4401313-9 (DE-588)4028527-3 (DE-588)4123623-3 |
title | Objects first with Java a practical introduction using BlueJ |
title_auth | Objects first with Java a practical introduction using BlueJ |
title_exact_search | Objects first with Java a practical introduction using BlueJ |
title_exact_search_txtP | Objects first with Java a practical introduction using BlueJ |
title_full | Objects first with Java a practical introduction using BlueJ David J. Barnes and Michael Kölling |
title_fullStr | Objects first with Java a practical introduction using BlueJ David J. Barnes and Michael Kölling |
title_full_unstemmed | Objects first with Java a practical introduction using BlueJ David J. Barnes and Michael Kölling |
title_short | Objects first with Java |
title_sort | objects first with java a practical introduction using bluej |
title_sub | a practical introduction using BlueJ |
topic | Java programmeringssprog Informatik Computer science Study and teaching Java (Computer program language) Object-oriented programming (Computer science) Java Standard Edition 8 (DE-588)1049861094 gnd Java Standard Edition 7 (DE-588)7751205-4 gnd BlueJ (DE-588)4730248-3 gnd Objektorientierte Programmierung (DE-588)4233947-9 gnd Java Programmiersprache (DE-588)4401313-9 gnd |
topic_facet | Java programmeringssprog Informatik Computer science Study and teaching Java (Computer program language) Object-oriented programming (Computer science) Java Standard Edition 8 Java Standard Edition 7 BlueJ Objektorientierte Programmierung Java Programmiersprache Lehrbuch |
url | http://bvbr.bib-bvb.de:8991/F?func=service&doc_library=BVB01&local_base=BVB01&doc_number=016755681&sequence=000002&line_number=0001&func_code=DB_RECORDS&service_type=MEDIA |
work_keys_str_mv | AT barnesdavidj objectsfirstwithjavaapracticalintroductionusingbluej AT kollingmichael objectsfirstwithjavaapracticalintroductionusingbluej |