معرفی کتاب «Java : an eventful approach» نوشتهٔ Kim B. Bruce, Andrea Pohoreckyj Danyluk, Thomas P. Murtagh، منتشرشده توسط نشر Pearson/Prentice Hall در سال 2005. این کتاب در 20 صفحه، فرمت pdf، زبان انگلیسی ارائه شده است. «Java : an eventful approach» در دستهٔ بدون دستهبندی قرار دارد.
Discussion of key issues in software engineering: risk management, technology transfer, and the role of decision-making in software engineering; Examination of legal and ethical issues in software engineering - poses thought-provoking questions at the end of each chapter; Thoroughly updated to reflect significant changes in software engineering, including modelling and agile methods; Combines theory with real, practical applications through an abundance of case studies and current examples Cover......Page 1 Contents......Page 8 0.2.1 Mysterious Buzzwords......Page 30 0.3.1 Special Features of This Text......Page 31 0.3.2 Why Introduce a Library?......Page 33 0.4 Flexibility for the Instructor and Student......Page 34 0.5 Additional Practical Information......Page 35 0.6 Acknowledgements......Page 36 1 What Is Programming Anyway?......Page 37 1.1 Without Understanding......Page 38 1.2 The Java Programming Language......Page 42 1.3 Your First Sip of Java......Page 43 1.3.1 Simple Responsive Programs......Page 44 1.3.2 "Class" and Other MagicWords......Page 45 1.3.3 Discourse on the Method......Page 47 1.4 Programming Tools......Page 49 1.5.1 The Graphics Coordinate System......Page 53 1.5.2 Constructing Graphic Objects......Page 55 1.6.1 Mouse-Event-Handling Methods......Page 60 1.6.2 The begin Method......Page 61 1.7 To Err Is Human......Page 62 1.8 Summary......Page 65 1.9 Chapter Review Problems......Page 66 1.10 Programming Problems......Page 67 2.1 Naming and Modifying Objects......Page 68 2.1.1 Mutator Methods......Page 69 2.1.2 Instance Variable Declarations......Page 71 2.1.3 Assigning Meanings to Variable Names......Page 72 2.1.4 Comments......Page 73 2.1.5 Additional Mutator Methods......Page 74 2.1.6 Exercises......Page 76 2.2.1 The Class of Colors......Page 79 2.2.2 The Location Class......Page 81 2.3 Layering on the Canvas......Page 85 2.4 Accessing the Location of the Mouse......Page 87 2.5 Sharing Parameter Information between Methods......Page 89 2.6 Summary......Page 94 2.7 Chapter Review Problems......Page 95 2.8 Programming Problems......Page 96 3.1 Introduction to Accessor Methods......Page 98 3.2 Accessing Numerical Attributes of the Canvas......Page 100 3.3 Expressions and Statements......Page 102 3.4 Arithmetic Expressions......Page 104 3.4.1 Ordering of Arithmetic Operations......Page 107 3.5 Numeric Instance Variables......Page 108 3.6 Initializers......Page 111 3.7 Naming Numeric Constants......Page 112 3.8.1 Displaying Numbers as Text......Page 114 3.8.2 Using System.out.println......Page 116 3.8.3 Mixing Text and Numbers......Page 119 3.9 Random Numbers......Page 121 3.10 Summary......Page 122 3.11 Chapter Review Problems......Page 124 3.12 Programming Problems......Page 125 4 Making Choices......Page 128 4.1 A Brief Example: Using the if Statement to Count Votes......Page 129 4.2 The if Statement......Page 131 4.2.1 Example: Using the if Statement with 2-D Objects......Page 133 4.3.1 The boolean Data Type......Page 135 4.4 Selecting Among Many Alternatives......Page 138 4.5 More on Boolean Expressions......Page 141 4.6 Nested Conditionals......Page 145 4.8 Chapter Review Problems......Page 151 4.9 Programming Problems......Page 154 5 Primitive Types, Operators, and Strings......Page 156 5.1 Operators vs. Method Invocations......Page 157 5.2 Separate But Equal......Page 162 5.3 Operators and Precedence Rules......Page 164 5.4.1 Java Needs More Than One Numeric Type......Page 165 5.4.2 Arithmetic with doubles and ints......Page 167 5.4.3 Displaying doubles......Page 170 5.4.4 Why Are Rational Numbers Called double?......Page 171 5.5 Handy Sources of Numeric Information......Page 172 5.5.1 What Time Is It?......Page 173 5.5.2 Sines andWonders......Page 175 5.6 Strings......Page 179 5.7 Chapter Review Problems......Page 182 5.8 Programming Problems......Page 185 6.1 An ExampleWithout Classes......Page 187 6.2.1 Instance Variables......Page 191 6.2.2 Methods and Parameters......Page 192 6.2.3 Writing Accessor Methods......Page 193 6.2.4 Constructors......Page 195 6.2.5 Putting It All Together......Page 197 6.3 Adding Methods to FunnyFace......Page 199 6.3.2 Defining Methods Indirectly......Page 200 6.3.3 Using this as a Parameter......Page 202 6.4 Another Example: Implementing a Timer Class......Page 203 6.5 Local Variables......Page 205 6.6 Overloaded Methods and Constructors......Page 208 6.8 Chapter Review Problems......Page 213 6.9 Programming Problems......Page 214 7.1 Repetition and while Loops......Page 216 7.2 More Examples Using while Loops......Page 221 7.3 Loops that Count......Page 225 7.4 Nested Loops......Page 226 7.5 Style Guidelines for Control Structures......Page 228 7.6 DeMorgan's Laws and Complex Boolean Expressions*......Page 233 7.7 Simplifying Syntax in Conditionals......Page 235 7.8 The switch Statement*......Page 241 7.10 Chapter Review Problems......Page 245 7.11 Programming Problems......Page 246 8.1 Access Control: public vs. private......Page 249 8.2 Using Instance Variables, Parameters, and Local Variables......Page 253 8.3 Scope of Identifiers......Page 256 8.4 The Use of static......Page 259 8.6 Chapter Review Problems......Page 260 9.1 Animation......Page 262 9.2 Active Objects......Page 263 9.3 Images and VisibleImages......Page 266 9.4 Interacting with Active Objects......Page 268 9.5 Making Active Objects Affect Other Objects......Page 270 9.5.1 Interacting with a Nonactive Object......Page 271 9.5.2 Active Objects that Construct Other Active Objects......Page 273 9.6 Active Objects without Loops......Page 276 9.7 Making Animations Smooth......Page 278 9.8 More Hints about Timing......Page 280 9.9 Summary......Page 281 9.10 Chapter Review Problems......Page 282 9.11 Programming Problems......Page 283 10.1.1 A First Example......Page 284 10.1.2 Associating Objects and ClassesWith Interfaces......Page 285 10.1.3 Using Interfaces......Page 290 10.1.5 Summary......Page 293 10.2 Using Interfaces in the objectdraw Library*......Page 294 10.3 Extending Interfaces*......Page 296 10.4 Summary......Page 299 10.5 Chapter Review Problems......Page 300 10.6 Programming Problems......Page 301 11 Graphical User Interfaces in Java......Page 303 11.1.1 Constructing a Text Field......Page 304 11.1.2 Adding a Text Field to aWindow......Page 306 11.2.1 Creating and Adding Buttons......Page 308 11.2.2 Handling Events......Page 310 11.3 Checklist for Using GUI Components in a Program......Page 311 11.4 Combo Boxes......Page 312 11.5.1 Panels......Page 318 11.5.2 More on Layout Managers......Page 322 11.6.1 Sliders......Page 324 11.6.2 Labels......Page 327 11.6.3 JTextField and JTextArea......Page 328 11.7.1 Keystroke Events......Page 331 11.7.2 Mouse Events......Page 334 11.8 Summary......Page 336 11.9 Chapter Review Problems......Page 338 11.10 Programming Problems......Page 339 12 Recursion......Page 340 12.1.1 Nested Rectangles......Page 341 12.1.2 Building and Searching Data Collections with Recursive Structures......Page 351 12.1.3 Designing Recursive Structures......Page 354 12.1.4 Why Does ThisWork?......Page 357 12.1.5 Broccoli......Page 358 12.2 Recursive Methods......Page 364 12.2.1 Fast Exponentiation......Page 365 12.2.2 Towers of Hanoi......Page 368 12.3 Summary......Page 371 12.4 Chapter Review Problems......Page 372 12.5 Programming Problems......Page 373 13.1 Recognizing Patterns with Loops......Page 374 13.2 Counting and for Loops......Page 375 13.2.1 Examples of Using for Loops......Page 377 13.2.2 Other Variations on for Loops......Page 380 13.3 The do...while Loop......Page 381 13.4 Avoiding Loop Errors......Page 383 13.5 Summary......Page 386 13.6 Chapter Review Problems......Page 387 13.7 Programming Problems......Page 388 14 Arrays......Page 390 14.1 Declaring Array Names......Page 391 14.2 Creating an Array......Page 392 14.2.1 Array Initializers......Page 394 14.3 Using Arrays: A Triangle Class......Page 395 14.4 Enhanced for loop in Java 1.5*......Page 400 14.5 Gathering Information from an Array......Page 401 14.5.1 Counting Speeders......Page 403 14.5.2 Drawing a Histogram......Page 404 14.6 Collections with Variable Sizes......Page 409 14.6.2 Keeping Track of a Collection's Size......Page 412 14.6.3 Adding an Entry to the Array......Page 414 14.6.4 Displaying the Results......Page 416 14.7 Adding and Removing Elements......Page 422 14.7.1 Adding an Element to an Ordered Array......Page 423 14.7.2 Removing an Element from an Array......Page 428 14.8 Summary......Page 432 14.9 Chapter Review Problems......Page 433 14.10 Programming Problems......Page 438 15 Multidimensional Arrays......Page 442 15.1.2 Creating an Array of Arrays......Page 443 15.1.3 Indexing an Array of Arrays......Page 446 15.1.4 Traversing a Two-Dimensional Array......Page 447 15.1.5 Beyond Two Dimensions: Extending the Calendar Program......Page 449 15.2 Matrices......Page 453 15.2.1 Magic Squares......Page 454 15.2.3 Traversing a Matrix......Page 455 15.2.4 Filling a Magic Square......Page 458 15.2.5 Digital Image Smoothing......Page 461 15.3 Summary......Page 466 15.4 Chapter Review Problems......Page 467 15.5 Programming Problems......Page 469 16 Strings and Characters......Page 472 16.1.2 Long Strings......Page 473 16.2 A Collection of Useful String Methods......Page 475 16.2.1 Building a String of URLs......Page 476 16.2.2 Finding the Position of a Substring with indexOf......Page 477 16.2.3 Dealing with Lower and Upper Case......Page 478 16.2.4 Cutting and Pasting Strings......Page 481 16.2.5 Trimming Strings......Page 482 16.2.6 Comparing Strings......Page 483 16.3 Characters......Page 486 16.3.1 Characters and Strings......Page 487 16.3.2 Performing Operations on Characters......Page 490 16.4 Summary......Page 493 16.5 Chapter Review Problems......Page 494 16.6 Programming Problems......Page 497 17.1 Extension as Specialization......Page 498 17.2 Using extends......Page 499 17.3 Protected vs. Public......Page 506 17.4 Designing for Extension......Page 508 17.5 Inheritance Hierarchies......Page 513 17.5.1 Subclass Type Compatibility......Page 515 17.6 Overriding Method Definitions......Page 518 17.6.2 Using super to Access Overridden Methods......Page 520 17.6.3 Dynamic Method Invocation......Page 522 17.6.4 Planned Obsolescence......Page 524 17.7 Summary......Page 529 17.8 Chapter Review Problems......Page 530 17.9 Programming Problems......Page 538 18 Exceptions......Page 541 18.1 Exception Handlers......Page 542 18.3 Exception Propagation......Page 546 18.4 Handling Multiple Exceptions......Page 549 18.5 Exception Subclasses......Page 550 18.6 Checked vs. Unchecked Exceptions......Page 553 18.7 Throwing Exceptions......Page 556 18.8 Summary......Page 558 18.9 Chapter Review Problems......Page 559 18.10 Programming Problems......Page 561 19 Streams......Page 563 19.1.1 Bookmark Files: An Example......Page 564 19.1.2 Creating a Writer......Page 566 19.1.3 Sending Data Through a Writer......Page 567 19.1.4 PrintWriters......Page 571 19.1.5 Composing Writer classes......Page 572 19.2 Readers......Page 574 19.3 Writing an Application......Page 579 19.4 Working with the File System......Page 582 19.5 Sockets and Streams......Page 588 19.5.1 Clients, and Servers......Page 589 19.5.2 Networking Protocols......Page 590 19.5.3 Creating and Using a Socket......Page 592 19.5.4 Receiving Information from a Server......Page 593 19.5.5 Extracting Information from aWeb Page......Page 597 19.6 Summary......Page 600 19.7 Chapter Review Problems......Page 601 19.8 Programming Problems......Page 606 20.1 Searching......Page 609 20.1.2 Recursive Processing of Arrays......Page 610 20.1.3 Complexity of Linear Search......Page 612 20.1.4 Binary Searches......Page 613 20.2 Using Preconditions and Postconditions......Page 618 20.3.1 Selection Sort......Page 619 20.3.3 Insertion Sort......Page 624 20.3.4 Complexity of Insertion Sort......Page 626 20.3.5 Merge Sort......Page 628 20.3.6 Complexity of Merge Sort......Page 632 20.4 Impact of the Complexity of Searching and Sorting......Page 633 20.5 Summary......Page 634 20.6 Chapter Review Problems......Page 635 21.1 What Is Object-Oriented Design?......Page 636 21.2.1 Modeling Properties of Objects......Page 637 21.3.1 Design Step 1: Identify the objects to be modeled......Page 638 21.3.2 Design Step 2: List the properties and behaviors of each type of object......Page 639 21.3.3 Design Step 3: Model properties with instance variables......Page 641 21.3.4 Design Step 4: Model behaviors with methods......Page 644 21.3.5 Design: The Process of Refinement......Page 647 21.3.6 Filling in the Details......Page 648 21.3.7 Summary of the Design Process......Page 655 21.4.1 Developing and Testing Individual Classes......Page 656 21.4.2 Putting the Pieces Together: Testing the Controller......Page 658 21.5.1 An Animated Shell Game......Page 660 21.5.3 Completing the Design for the Animated Shell Game......Page 661 21.5.4 Filling in the Details for the Animated Shell Game......Page 665 21.6 Guidelines for Writing Comments......Page 668 21.7.1 Nested Rectangles: A Graphical Object Class......Page 671 21.7.2 The Important Relationship between Encapsulation and Abstraction......Page 673 21.8 Summary......Page 674 21.10 Programming Problems......Page 676 A.1 Commenting......Page 679 A.3 Names......Page 680 A.4 Format......Page 681 B.1.2 Methods to define in extensions of WindowController......Page 682 B.3.1 Constructors for Drawable objects......Page 683 B.3.3 Methods for Lines only......Page 685 B.4.1 Constructors for auxiliary objects......Page 686 B.5.1 Subclass hierarchy for geometric objects......Page 687 B.5.3 Subclass hierarchy for controllers......Page 688 C.1 Introduction to objectdraw Documention......Page 689 C.2 Getting Information about a Class......Page 690 C.2.1 Summary Information about Constructors and Methods......Page 691 C.2.2 Detailed Information about Constructors and Methods......Page 693 C.4 Other Java APIs......Page 694 D.1 Extending JApplet rather than Controller......Page 696 D.2 Extending JApplet rather than WindowController......Page 698 D.3 Java Threads Can Replace ActiveObject......Page 699 D.4 Java Graphics......Page 700 D.5 Random Number Generators......Page 703 D.6.1 Modifying an Applet to be an Application......Page 704 D.6.2 Running an Applet from within a JFrame......Page 705 B......Page 708 J......Page 709 R......Page 710 W......Page 711
Java: An Eventful Approach has been written from the ground up to help students master objects and events first—so they can begin accomplishing serious programming tasks with Java far more quickly.
Authored by three leading experts in computer science instruction—including 2005 SIGCSE award-winner Kim Bruce—this book reflects a fundamental rethinking of how Java and object-oriented languages are taught. To give students the "training wheels" they need to rapidly begin using sophisticated Java features, the authors introduce a complete objectoriented graphics library. Using it, students can immediately begin programming simple graphics and animations, and literally see the results of their code. Students learn core language features as they're ready—and master powerful features such as concurrency far sooner than in conventional treatments.
This book's object-first approach, content, and features have been systematically proven at many of the world's leading universities, four-year colleges, and two-year institutions. Features include:
- Strong focus on event-driven programming with GUI components: a paradigm students recognize from their experience with point-and-click environments
- Early introductions to simple concurrency and threads, focusing on correct programming style
- Thorough, step-by-step coverage of all typical introductory material, including arrays, strings, recursion, files, sorting, searching, inheritance, and more
- An exceptionally effective approach to teaching exceptions
- A practical primer on the fundamentals of object-oriented design
- Embedded chapter exercises for assessing progress
- End-of-chapter review exercises and programming problems that reinforce key concepts and techniques
- Appendix explaining how to navigate and read any Java API
key Benefit: This Introduction To Software Engineering And Practice Addresses Both Procedural And Object-oriented Development. key Topics: Is Thoroughly Updated To Reflect Significant Changes In Software Engineering, Including Modeling And Agile Methods. Emphasizes Essential Role Of Modeling Design In Software Engineering. Applies Concepts Consistently To Two Common Examples — A Typical Information System And A Real-time System. Combines Theory With Real, Practical Applications By Providing An Abundance Of Case Studies And Examples From The Current Literature. market: A Useful Reference For Software Engineers.
booknews
a Textbook Designed For An Undergraduate Software Engineering Curriculum. Topics Include Different Types Of Process And Life- Cycle Models, Work Breakdown Structure, Requirements Analysis, Architectural Issues, Testing Approaches And Methodologies, Documentation, Evaluation, And Prediction Models. The Many Examples Used Throughout The Text Are Chosen To Reflect Students' Limited Experience But Illustrate Clearly How Large Software Development Projects Progress From Need To Idea To Reality. Annotation C. By Book News, Inc., Portland, Or.
For courses in computer science and programming in Java. Teaching a truly object-oriented language like Java is far different than teaching a language like C or C++. As a result, this text demonstrates a major rethinking in pedagogy that has been tested thoroughly at a number of major universities and other four-year and two-year institutions. Good examples of objects and a comprehensive library that supports object-oriented graphics foster student understanding and instructor effectiveness. The library provides training wheels to help students get started with using these features, but they are taught the standard Java features as they are ready. This thoroughly updated book blends concepts with real, practical applications by providing an abundance of examples. The authors apply state-of-the-art software engineering methods consistently with two case studies: a realistic information system and a requirements-rich real-time system. Using modeling as a thread to tie together techniques, the book shows how software engineering is not a set of disjointed practices, but instead instantiates a key set of abstraction techniques. "This updated book blends concepts with real, practical applications by providing an abundance of examples. The authors apply state-of-the-art software engineering methods consistently with two case studies: a realistic information system and a requirements-rich real-time system. Using modeling as a thread to tie together techniques, the book shows how software engineering is not a set of disjointed practices, but instead instantiates a key set of abstraction techniques."--Jacket "To give students the "training wheels" they need to rapidly begin using sophisticated Java features, the authors introduce a complete object-oriented graphics library. Using it, students can immediately begin programming simple graphics and animations, and literally see the results of their code. Students learn core language features as they're ready - and master powerful features such as concurrency far sooner than in conventional treatments."--Jacket