Introduction to Programming Using Java

Introduction To Programming Using Java-PDF Download

  • Date:28 Jun 2020
  • Views:17
  • Downloads:0
  • Pages:699
  • Size:5.01 MB

Share Pdf : Introduction To Programming Using Java

Download and Preview : Introduction To Programming Using Java


Report CopyRight/DMCA Form For : Introduction To Programming Using Java


Transcription:

c 1996 2007 David J Eck,David J Eck eck hws edu,Department of Mathematics and Computer Science. Hobart and William Smith Colleges,Geneva NY 14456, This book can be distributed in unmodified form with no restrictions. Modified versions can be made and distributed provided they are distributed. under the same license as the original More specifically This work is. licensed under the Creative Commons Attribution Share Alike 2 5 License. To view a copy of this license visit http creativecommons org licenses by. sa 2 5 or send a letter to Creative Commons 543 Howard Street 5th. Floor San Francisco California 94105 USA, The web site for this book is http math hws edu javanotes. Preface xiii,1 The Mental Landscape 1,1 1 Machine Language 1. 1 2 Asynchronous Events 3,1 3 The Java Virtual Machine 6.
1 4 Building Blocks of Programs 8,1 5 Object oriented Programming 9. 1 6 The Modern User Interface 12,1 7 The Internet 14. Quiz on Chapter 1 17,2 Names and Things 19,2 1 The Basic Java Application 19. 2 2 Variables and Types 22,2 2 1 Variables 23,2 2 2 Types and Literals 24. 2 2 3 Variables in Programs 27,2 3 Objects and Subroutines 28.
2 3 1 Built in Subroutines and Functions 29,2 3 2 Operations on Strings 32. 2 3 3 Introduction to Enums 34,2 4 Text Input and Output 36. 2 4 1 A First Text Input Example 37,2 4 2 Text Output 38. 2 4 3 TextIO Input Functions 39,2 4 4 Formatted Output 41. 2 4 5 Introduction to File I O 43,2 5 Details of Expressions 44.
2 5 1 Arithmetic Operators 45,2 5 2 Increment and Decrement 46. 2 5 3 Relational Operators 46,2 5 4 Boolean Operators 47. 2 5 5 Conditional Operator 48,2 5 6 Assignment Operators and Type Casts 48. 2 5 7 Type Conversion of Strings 50,2 5 8 Precedence Rules 50. 2 6 Programming Environments 51,iv CONTENTS,2 6 1 Java Development Kit 51.
2 6 2 Command Line Environment 52,2 6 3 IDEs and Eclipse 54. 2 6 4 The Problem of Packages 56,Exercises for Chapter 2 58. Quiz on Chapter 2 60,3 Control 61,3 1 Blocks Loops and Branches 61. 3 1 1 Blocks 61,3 1 2 The Basic While Loop 62,3 1 3 The Basic If Statement 64. 3 2 Algorithm Development 66,3 2 1 Pseudocode and Stepwise Refinement 66.
3 2 2 The 3N 1 Problem 69,3 2 3 Coding Testing Debugging 72. 3 3 while and do while 73,3 3 1 The while Statement 74. 3 3 2 The do while Statement 76,3 3 3 break and continue 78. 3 4 The for Statement 79,3 4 1 For Loops 80,3 4 2 Example Counting Divisors 83. 3 4 3 Nested for Loops 85,3 4 4 Enums and for each Loops 87.
3 5 The if Statement 89,3 5 1 The Dangling else Problem 89. 3 5 2 The if else if Construction 89,3 5 3 If Statement Examples 91. 3 5 4 The Empty Statement 95,3 6 The switch Statement 96. 3 6 1 The Basic switch Statement 96,3 6 2 Menus and switch Statements 97. 3 6 3 Enums in switch Statements 98,3 6 4 Definite Assignment 99.
3 7 Exceptions and try catch 100,3 7 1 Exceptions 100. 3 7 2 try catch 101,3 7 3 Exceptions in TextIO 102. 3 8 GUI Programming 104,Exercises for Chapter 3 111. Quiz on Chapter 3 114,4 Subroutines 117,4 1 Black Boxes 117. 4 2 Static Subroutines and Variables 119,4 2 1 Subroutine Definitions 119.
4 2 2 Calling Subroutines 121,CONTENTS v,4 2 3 Subroutines in Programs 122. 4 2 4 Member Variables 124,4 3 Parameters 127,4 3 1 Using Parameters 127. 4 3 2 Formal and Actual Parameters 128,4 3 3 Overloading 129. 4 3 4 Subroutine Examples 130,4 3 5 Throwing Exceptions 132. 4 3 6 Global and Local Variables 133,4 4 Return Values 134.
4 4 1 The return statement 134,4 4 2 Function Examples 135. 4 4 3 3N 1 Revisited 138,4 5 APIs Packages and Javadoc 140. 4 5 1 Toolboxes 140,4 5 2 Java s Standard Packages 141. 4 5 3 Using Classes from Packages 142,4 5 4 Javadoc 144. 4 6 More on Program Design 146,4 6 1 Preconditions and Postconditions 146.
4 6 2 A Design Example 147,4 6 3 The Program 151,4 7 The Truth About Declarations 153. 4 7 1 Initialization in Declarations 154,4 7 2 Named Constants 155. 4 7 3 Naming and Scope Rules 158,Exercises for Chapter 4 161. Quiz on Chapter 4 164,5 Objects and Classes 165,5 1 Objects and Instance Methods 165. 5 1 1 Objects Classes and Instances 166,5 1 2 Fundamentals of Objects 167.
5 1 3 Getters and Setters 172,5 2 Constructors and Object Initialization 173. 5 2 1 Initializing Instance Variables 173,5 2 2 Constructors 174. 5 2 3 Garbage Collection 179,5 3 Programming with Objects 179. 5 3 1 Some Built in Classes 180,5 3 2 Wrapper Classes and Autoboxing 181. 5 3 3 The class Object 182,5 3 4 Object oriented Analysis and Design 183.
5 4 Programming Example Card Hand Deck 185,5 4 1 Designing the classes 185. 5 4 2 The Card Class 187,5 4 3 Example A Simple Card Game 191. vi CONTENTS,5 5 Inheritance and Polymorphism 194,5 5 1 Extending Existing Classes 194. 5 5 2 Inheritance and Class Hierarchy 196,5 5 3 Example Vehicles 197. 5 5 4 Polymorphism 200,5 5 5 Abstract Classes 202,5 6 this and super 205.
5 6 1 The Special Variable this 205,5 6 2 The Special Variable super 206. 5 6 3 Constructors in Subclasses 208, 5 7 Interfaces Nested Classes and Other Details 209. 5 7 1 Interfaces 209,5 7 2 Nested Classes 211,5 7 3 Anonymous Inner Classes 214. 5 7 4 Mixing Static and Non static 214,5 7 5 Static Import 216. 5 7 6 Enums as Classes 217,Exercises for Chapter 5 220.
Quiz on Chapter 5 223,6 Introduction to GUI Programming 225. 6 1 The Basic GUI Application 225,6 1 1 JFrame and JPanel 227. 6 1 2 Components and Layout 229,6 1 3 Events and Listeners 230. 6 2 Applets and HTML 231,6 2 1 JApplet 231,6 2 2 Reusing Your JPanels 233. 6 2 3 Basic HTML 235,6 2 4 Applets on Web Pages 238.
6 3 Graphics and Painting 240,6 3 1 Coordinates 242. 6 3 2 Colors 243,6 3 3 Fonts 244,6 3 4 Shapes 245,6 3 5 Graphics2D 246. 6 3 6 An Example 247,6 4 Mouse Events 251,6 4 1 Event Handling 252. 6 4 2 MouseEvent and MouseListener 253,6 4 3 Mouse Coordinates 256. 6 4 4 MouseMotionListeners and Dragging 258,6 4 5 Anonymous Event Handlers 262.
6 5 Timer and Keyboard Events 264,6 5 1 Timers and Animation 264. 6 5 2 Keyboard Events 266,6 5 3 Focus Events 269,CONTENTS vii. 6 5 4 State Machines 270,6 6 Basic Components 273,6 6 1 JButton 275. 6 6 2 JLabel 276,6 6 3 JCheckBox 277,6 6 4 JTextField and JTextArea 278. 6 6 5 JComboBox 279,6 6 6 JSlider 280,6 7 Basic Layout 282.
6 7 1 Basic Layout Managers 283,6 7 2 Borders 285,6 7 3 SliderAndComboBoxDemo 287. 6 7 4 A Simple Calculator 289,6 7 5 Using a null Layout 291. 6 7 6 A Little Card Game 293,6 8 Menus and Dialogs 296. 6 8 1 Menus and Menubars 297,6 8 2 Dialogs 300,6 8 3 Fine Points of Frames 302. 6 8 4 Creating Jar Files 304,Exercises for Chapter 6 306.
Quiz on Chapter 6 311,7 Arrays 313,7 1 Creating and Using Arrays 313. 7 1 1 Arrays 314,7 1 2 Using Arrays 314,7 1 3 Array Initialization 316. 7 2 Programming With Arrays 318,7 2 1 Arrays and for Loops 318. 7 2 2 Arrays and for each Loops 320,7 2 3 Array Types in Subroutines 321. 7 2 4 Random Access 322,7 2 5 Arrays of Objects 324.
7 2 6 Variable Arity Methods 327,7 3 Dynamic Arrays and ArrayLists 329. 7 3 1 Partially Full Arrays 329,7 3 2 Dynamic Arrays 332. 7 3 3 ArrrayLists 335,7 3 4 Parameterized Types 339. 7 3 5 Vectors 342,7 4 Searching and Sorting 343,7 4 1 Searching 343. 7 4 2 Association Lists 345,7 4 3 Insertion Sort 348.
7 4 4 Selection Sort 349,7 4 5 Unsorting 351,viii CONTENTS. 7 5 Multi dimensional Arrays 352,7 5 1 Creating Two dimensional Arrays 352. 7 5 2 Using Two dimensional Arrays 354,7 5 3 Example Checkers 357. Exercises for Chapter 7 364,Quiz on Chapter 7 370,8 Correctness and Robustness 373. 8 1 Introduction to Correctness and Robustness 373. 8 1 1 Horror Stories 374,8 1 2 Java to the Rescue 375.
8 1 3 Problems Remain in Java 377,8 2 Writing Correct Programs 378. 8 2 1 Provably Correct Programs 378,8 2 2 Robust Handling of Input 381. 8 3 Exceptions and try catch 385,8 3 1 Exceptions and Exception Classes 386. 8 3 2 The try Statement 388,8 3 3 Throwing Exceptions 390. 8 3 4 Mandatory Exception Handling 392,8 3 5 Programming with Exceptions 393.
8 4 Assertions 396,8 5 Introduction to Threads 399. 8 5 1 Creating and Running Threads 400,8 5 2 Operations on Threads 404. 8 5 3 Mutual Exclusion with synchronized 405,8 5 4 Wait and Notify 408. 8 5 5 Volatile Variables 412,8 6 Analysis of Algorithms 413. Exercises for Chapter 8 419,Quiz on Chapter 8 424,9 Linked Data Structures and Recursion 427.
9 1 Recursion 427,9 1 1 Recursive Binary Search 428. 9 1 2 Towers of Hanoi 430,9 1 3 A Recursive Sorting Algorithm 432. 9 1 4 Blob Counting 435,9 2 Linked Data Structures 439. 9 2 1 Recursive Linking 439,9 2 2 Linked Lists 441. 9 2 3 Basic Linked List Processing 441,9 2 4 Inserting into a Linked List 445.
9 2 5 Deleting from a Linked List 447,9 3 Stacks Queues and ADTs 448. 9 3 1 Stacks 449,9 3 2 Queues 452,9 3 3 Postfix Expressions 456. CONTENTS ix,9 4 Binary Trees 459,9 4 1 Tree Traversal 460. 9 4 2 Binary Sort Trees 462,9 4 3 Expression Trees 467. 9 5 A Simple Recursive Descent Parser 470,9 5 1 Backus Naur Form 470.
9 5 2 Recursive Descent Parsing 472,9 5 3 Building an Expression Tree 476. Exercises for Chapter 9 479,Quiz on Chapter 9 482,10 Generic Programming and Collection Classes 485. 10 1 Generic Programming 485,10 1 1 Generic Programming in Smalltalk 486. 10 1 2 Generic Programming in C 487,10 1 3 Generic Programming in Java 488. 10 1 4 The Java Collection Framework 489,10 1 5 Iterators and for each Loops 491.
10 1 6 Equality and Comparison 492,10 1 7 Generics and Wrapper Classes 495. 10 2 Lists and Sets 496,10 2 1 ArrayList and LinkedList 496. 10 2 2 Sorting 499,10 2 3 TreeSet and HashSet 500,10 2 4 EnumSet 503. 10 3 Maps 504,10 3 1 The Map Interface 505,10 3 2 Views SubSets and SubMaps 506. 10 3 3 Hash Tables and Hash Codes 509, 10 4 Programming with the Collection Framework 511.
10 4 1 Symbol Tables 511,10 4 2 Sets Inside a Map 512. 10 4 3 Using a Comparator 515,10 4 4 Word Counting 517. 10 5 Writing Generic Classes and Methods 519,10 5 1 Simple Generic Classes 520. 10 5 2 Simple Generic Methods 521,10 5 3 Type Wildcards 523. 10 5 4 Bounded Types 527,Exercises for Chapter 10 531.
Quiz on Chapter 10 535,11 Files and Networking 537. 11 1 Streams Readers and Writers 537,11 1 1 Character and Byte Streams 537. 11 1 2 PrintWriter 539,11 1 3 Data Streams 540,11 1 4 Reading Text 541. x CONTENTS,11 1 5 The Scanner Class 544,11 1 6 Serialized Object I O 545. 11 2 Files 546,11 2 1 Reading and Writing Files 546.
11 2 2 Files and Directories 549,11 2 3 File Dialog Boxes 552. 11 3 Programming With Files 554,11 3 1 Copying a File 555. 11 3 2 Persistent Data 557,11 3 3 Files in GUI Programs 559. 11 3 4 Storing Objects in Files 561,11 4 Networking 568. 11 4 1 URLs and URLConnections 569,11 4 2 TCP IP and Client Server 571.
11 4 3 Sockets 572,11 4 4 A Trivial Client Server 574. 11 4 5 A Simple Network Chat 578,11 5 Network Programming and Threads 581. 11 5 1 A Threaded GUI Chat Program 582,11 5 2 A Multithreaded Server 585. 11 5 3 Distributed Computing 588,11 6 A Brief Introduction to XML 596. 11 6 1 Basic XML Syntax 596,11 6 2 XMLEncoder and XMLDecoder 598.
11 6 3 Working With the DOM 600,Exercises for Chapter 11 606. Quiz on Chapter 11 609,12 Advanced GUI Programming 611. 12 1 Images and Resources 611,12 1 1 Images and BufferedImages 611. 12 1 2 Working With Pixels 617,12 1 3 Resources 620. 12 1 4 Cursors and Icons 621,12 1 5 Image File I O 622.
12 2 Fancier Graphics 624,12 2 1 Measuring Text 625. 12 2 2 Transparency 627,12 2 3 Antialiasing 629,12 2 4 Strokes and Paints 630. 12 2 5 Transforms 633,12 3 Actions and Buttons 636. 12 3 1 Action and AbstractAction 636,12 3 2 Icons on Buttons 638. 12 3 3 Radio Buttons 639,12 3 4 Toolbars 642,12 3 5 Keyboard Accelerators 643.
CONTENTS xi,12 3 6 HTML on Buttons 645,12 4 Complex Components and MVC 646. 12 4 1 Model View Controller 646,12 4 2 Lists and ListModels 647. 12 4 3 Tables and TableModels 650,12 4 4 Documents and Editors 654. 12 4 5 Custom Components 655,12 5 Finishing Touches 660. 12 5 1 The Mandelbrot Set 660,12 5 2 Design of the Program 662.
12 5 3 Internationalization 664,12 5 4 Events Events Events 666. 12 5 5 Custom Dialogs 668,12 5 6 Preferences 669,Exercises for Chapter 12 671. Quiz on Chapter 12 673,Appendix Source Files 675,xii CONTENTS. Introduction to Programming Using Java is a free introductory computer programming. textbook that uses Java as the language of instruction It is suitable for use in an introductory. programming course and for people who are trying to learn programming on their own There. are no prerequisites beyond a general familiarity with the ideas of computers and programs. There is enough material for a full year of college level programming Chapters 1 through 7. can be used as a textbook in a one semester college level course or in a year long high school. Introduction to Programming Using Java Version 5 0 December 2006 Version 5 0 2 with minor corrections November 2007 David J Eck Hobart and William Smith Colleges ii c 1996 2007 David J Eck David J Eck eck hws edu Department of Mathematics and Computer Science Hobart and William Smith Colleges Geneva NY 14456 This book can be distributed in unmodi ed form with no restrictions

Related Books