A new edition of this title is available, ISBN-10: 0137144156 ISBN-13: 9780137144150 The practicing programmer's DEITEL® guide to C# and the powerful Microsoft .NET Framework Written for programmers with a background in C++, Java, or other high-level languages, this book applies the Deitel signature live-code approach to teaching programming and explores Microsoft's C# language and the new .NET 2.0 in depth. The book is updated for Visual Studio® 2005 and C# 2.0, and presents C# concepts in the context of fully tested programs, complete with syntax shading, detailed line-by-line code descriptions, and program outputs. The book features 200+ C# applications with 16,000+ lines of proven C# code, as well as 300+ programming tips that will help you build robust applications. Start with a concise introduction to C# fundamentals using an early classes and objects approach, then rapidly move on to more advanced topics, including multithreading, XML, ADO.NET 2.0, ASP.NET 2.0, Web services, network programming, and .NET remoting. Along the way you will enjoy the Deitels' classic treatment of object-oriented programming and a new, OOD/UML™ ATM case study, including a complete C# implementation. When you are finished, you will have everything you need to build next-generation Windows applications, Web applications, and Web services. Dr. Harvey M. Deitel and Paul J. Deitel are the founders of Deitel & Associates, Inc., the internationally recognized programming languages content-creation and corporate-training organization. Together with their colleagues at Deitel & Associates, Inc., they have written many international best-selling programming languages textbooks that millions of people worldwide have used to master C, C++, Java™, C#, XML, Visual Basic®, Perl, Python, and Internet and Web programming. The DEITEL® Developer Series is designed for practicing programmers. The series presents focused treatments of emerging technologies, including .NET, J2EE, Web services, and more. Pre-publication Reviewer Testimonials "Excellent coverage of developing ASP.NET 2.0 applications, with plenty of sample code. The chapter on exception handling is one of, if not the best such chapters I have seen in the 50+ .NET related books I've read and reviewed. The chapter on Networking is one of the best I have seen."--Peter Bromberg, Merrill Lynch, C# MVP "A comprehensive introduction to XML, and one of the clearest tutorials on Web services I've read, with great examples. An excellent chapter on generics." --Gavin Osborne, Saskatchewan Institute of Applied Science and Technology "A superb job of clearly integrating the theory of relational databases and SQL with ADO.NET!"--Harlan Brewer, University of Cincinnati "Excellent introduction to .NET collections."--José Antonio González Seco, Andalucia's Parlamient "A beautiful presentation of threads."--Pavel Tsekov, Caesar BSC "The ATM OOD/UML case study is excellent! The implementation of the design developed in the early chapters gives the reader a fantastic model of a real world problem. You hit a home run with this one!" --Catherine Wyman, Devry-PhoenixPractical, Example-Rich Coverage Of: C# 2.0, .NET 2.0, FCL ASP.NET 2.0, Web Forms and Controls Database, SQL, and ADO.NET 2.0 Networking and .NET Remoting XML, Web Services Generics, Collections GUI/Windows® Forms OOP: Classes, Inheritance, and Polymorphism OOD/UML™ ATM Case Study Graphics and Multimedia Multithreading Exception Handling And more...VISIT WWW.DEITEL.COM Download code examples To receive updates on this book, subscribe to the free DEITEL® BUZZ ONLINE e-mail newsletter at www.deitel.com/newsletter/subscribe.html Read archived Issues of the DEITEL® BUZZ ONLINE Get corporate training information
Author(s): Harvey M. Deitel, Paul J. Deitel
Edition: 2
Publisher: Prentice Hall
Year: 2005
Language: English
Pages: 1356
Contents......Page 10
Preface......Page 24
1 Introduction to Computers, the Internet and Visual C#......Page 40
1.2 Microsoft’s Windows® Operating System......Page 41
1.3 C#......Page 42
1.4 The Internet and the World Wide Web......Page 43
1.6 Microsoft’s .NET......Page 44
1.7 The .NET Framework and the Common Language Runtime......Page 45
1.8 Test-Driving a C# Application......Page 47
1.9 (Only Required Section of the Case Study) Software Engineering Case Study: Introduction to Object Technology and the UML......Page 49
1.11 Web Resources......Page 55
2 Introduction to the Visual C# 2005 Express Edition IDE......Page 57
2.2 Overview of the Visual Studio 2005 IDE......Page 58
2.3 Menu Bar and Toolbar......Page 64
2.4 Navigating the Visual Studio 2005 IDE......Page 66
2.4.1 Solution Explorer......Page 70
2.4.2 Toolbox......Page 71
2.4.3 Properties Window......Page 72
2.5 Using Help......Page 74
2.6 Using Visual Programming to Create a Simple Program Displaying Text and an Image......Page 76
2.7 Wrap-Up......Page 88
2.8 Web Resources......Page 89
3 Introduction to C# Applications......Page 90
3.2 A Simple C# Application: Displaying a Line of Text......Page 91
3.3 Creating Your Simple Application in Visual C# Express......Page 97
3.4 Modifying Your Simple C# Application......Page 104
3.5 Formatting Text with Console.Write and Console.WriteLine......Page 106
3.6 Another C# Application: Adding Integers......Page 107
3.7 Memory Concepts......Page 111
3.8 Arithmetic......Page 112
3.9 Decision Making: Equality and Relational Operators......Page 116
3.10 (Optional) Software Engineering Case Study: Examining the ATM Requirements Document......Page 120
3.11 Wrap-Up......Page 130
4 Introduction to Classes and Objects......Page 131
4.2 Classes, Objects, Methods, Properties and Instance Variables......Page 132
4.3 Declaring a Class with a Method and Instantiating an Object of a Class......Page 134
4.4 Declaring a Method with a Parameter......Page 138
4.5 Instance Variables and Properties......Page 141
4.6 UML Class Diagram with a Property......Page 146
4.7 Software Engineering with Properties and set and get Accessors......Page 147
4.8 Value Types vs. Reference Types......Page 148
4.9 Initializing Objects with Constructors......Page 150
4.10 Floating-Point Numbers and Type decimal......Page 152
4.11 (Optional) Software Engineering Case Study: Identifying the Classes in the ATM Requirements Document......Page 159
4.12 Wrap-Up......Page 166
5 Control Statements: Part 1......Page 168
5.2 Control Structures......Page 169
5.3 if Single-Selection Statement......Page 172
5.4 if…else Double-Selection Statement......Page 173
5.5 While Repetition Statement......Page 176
5.6 Formulating Algorithms: Counter-Controlled Repetition......Page 178
5.7 Formulating Algorithms: Sentinel-Controlled Repetition......Page 182
5.8 Formulating Algorithms: Nested Control Statements......Page 186
5.9 Compound Assignment Operators......Page 189
5.10 Increment and Decrement Operators......Page 190
5.12 (Optional) Software Engineering Case Study: Identifying Class Attributes in the ATM System......Page 193
5.13 Wrap-Up......Page 198
6 Control Statements: Part 2......Page 199
6.2 Essentials of Counter-Controlled Repetition......Page 200
6.3 for Repetition Statement......Page 202
6.4 Examples Using the for Statement......Page 206
6.5 do…while Repetition Statement......Page 211
6.6 switch Multiple-Selection Statement......Page 212
6.7 break and continue Statements......Page 220
6.8 Logical Operators......Page 222
6.9 (Optional) Software Engineering Case Study: Identifying Objects’ States and Activities in the ATM System......Page 228
6.10 Wrap-Up......Page 232
7 Methods: A Deeper Look......Page 234
7.1 Introduction......Page 235
7.3 static Methods, static Variables and Class Math......Page 236
7.4 Declaring Methods with Multiple Parameters......Page 239
7.5 Notes on Declaring and Using Methods......Page 243
7.6 Method Call Stack and Activation Records......Page 244
7.7 Argument Promotion and Casting......Page 245
7.8 The Framework Class Library......Page 247
7.9 Case Study: Random-Number Generation......Page 248
7.9.1 Scaling and Shifting Random Numbers......Page 252
7.9.2 Random-Number Repeatability for Testing and Debugging......Page 253
7.10 Case Study: A Game of Chance (Introducing Enumerations)......Page 254
7.11 Scope of Declarations......Page 258
7.12 Method Overloading......Page 261
7.13 Recursion......Page 264
7.14 Passing Arguments: Pass-by-Value vs. Pass-by-Reference......Page 267
7.15 (Optional) Software Engineering Case Study: Identifying Class Operations in the ATM System......Page 271
7.16 Wrap-Up......Page 278
8 Arrays......Page 280
8.2 Arrays......Page 281
8.3 Declaring and Creating Arrays......Page 283
8.4 Examples Using Arrays......Page 284
8.5 Case Study: Card Shuffling and Dealing Simulation......Page 292
8.6 foreach Statement......Page 296
8.7 Passing Arrays and Array Elements to Methods......Page 298
8.8 Passing Arrays by Value and by Reference......Page 300
8.9 Case Study: Class GradeBook Using an Array to Store Grades......Page 304
8.10 Multidimensional Arrays......Page 310
8.11 Case Study: Class GradeBook Using a Rectangular Array......Page 315
8.12 Variable-Length Argument Lists......Page 320
8.13 Using Command-Line Arguments......Page 322
8.14 (Optional) Software Engineering Case Study: Collaboration Among Objects in the ATM System......Page 324
8.15 Wrap-Up......Page 332
9 Classes and Objects: A Deeper Look......Page 333
9.1 Introduction......Page 334
9.2 Time Class Case Study......Page 335
9.3 Controlling Access to Members......Page 338
9.4 Referring to the Current Object’s Members with the this Reference......Page 339
9.5 Indexers......Page 342
9.6 Time Class Case Study: Overloaded Constructors......Page 345
9.8 Composition......Page 351
9.9 Garbage Collection and Destructors......Page 355
9.10 static Class Members......Page 356
9.11 readonly Instance Variables......Page 361
9.12 Software Reusability......Page 363
9.13 Data Abstraction and Encapsulation......Page 364
9.14 Time Class Case Study: Creating Class Libraries......Page 366
9.15 internal Access......Page 370
9.16 Class View and Object Browser......Page 372
9.17 (Optional) Software Engineering Case Study: Starting to Program the Classes of the ATM System......Page 373
9.18 Wrap-Up......Page 380
10 Object-Oriented Programming: Inheritance......Page 381
10.1 Introduction......Page 382
10.2 Base Classes and Derived Classes......Page 383
10.3 protected Members......Page 385
10.4 Relationship between Base Classes and Derived Classes......Page 386
10.4.1 Creating and Using a CommissionEmployee Class......Page 387
10.4.2 Creating a BasePlusCommissionEmployee Class without Using Inheritance......Page 392
10.4.3 Creating a CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy......Page 397
10.4.4 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using protected Instance Variables......Page 400
10.4.5 CommissionEmployee–BasePlusCommissionEmployee Inheritance Hierarchy Using private Instance Variables......Page 405
10.5 Constructors in Derived Classes......Page 411
10.6 Software Engineering with Inheritance......Page 415
10.7 Class object......Page 417
10.8 Wrap-Up......Page 419
11 Polymorphism, Interfaces & Operator Overloading......Page 420
11.1 Introduction......Page 421
11.2 Polymorphism Examples......Page 423
11.3 Demonstrating Polymorphic Behavior......Page 424
11.4 Abstract Classes and Methods......Page 427
11.5 Case Study: Payroll System Using Polymorphism......Page 429
11.5.1 Creating Abstract Base Class Employee......Page 430
11.5.2 Creating Concrete Derived Class SalariedEmployee......Page 433
11.5.3 Creating Concrete Derived Class HourlyEmployee......Page 434
11.5.4 Creating Concrete Derived Class CommissionEmployee......Page 436
11.5.5 Creating Indirect Concrete Derived Class BasePlusCommissionEmployee......Page 437
11.5.6 Polymorphic Processing, Operator is and Downcasting......Page 439
11.6 sealed Methods and Classes......Page 444
11.7 Case Study: Creating and Using Interfaces......Page 445
11.7.2 Declaring Interface IPayable......Page 447
11.7.3 Creating Class Invoice......Page 448
11.7.4 Modifying Class Employee to Implement Interface IPayable......Page 450
11.7.5 Modifying Class SalariedEmployee for Use in the IPayable Hierarchy......Page 452
11.7.6 Using Interface IPayable to Process Invoices and Employees Polymorphically......Page 454
11.8 Operator Overloading......Page 455
11.9 (Optional) Software Engineering Case Study: Incorporating Inheritance and Polymorphism into the ATM System......Page 460
11.10 Wrap-Up......Page 468
12 Exception Handling......Page 470
12.1 Introduction......Page 471
12.3 Example: Divide by Zero Without Exception Handling......Page 472
12.4 Example: Handling DivideByZeroExceptions and FormatExceptions......Page 475
12.4.2 Catching Exceptions......Page 478
12.4.4 Termination Model of Exception Handling......Page 479
12.4.5 Flow of Control When Exceptions Occur......Page 480
12.5.1 Classes ApplicationException and SystemException......Page 481
12.6 finally Block......Page 482
12.7 Exception Properties......Page 490
12.8 User-Defined Exception Classes......Page 495
12.9 Wrap-Up......Page 498
13 Graphical User Interface Concepts: Part 1......Page 499
13.1 Introduction......Page 500
13.2 Windows Forms......Page 502
13.3.1 A Simple Event-Driven GUI......Page 504
13.3.2 Another Look at the Visual Studio Generated Code......Page 506
13.3.3 Delegates and the Event-Handling Mechanism......Page 508
13.3.4 Other Ways to Create Event Handlers......Page 509
13.3.5 Locating Event Information......Page 510
13.4 Control Properties and Layout......Page 511
13.5 Labels, TextBoxes and Buttons......Page 515
13.6 GroupBoxes and Panels......Page 518
13.7 CheckBoxes and RadioButtons......Page 521
13.8 PictureBoxes......Page 529
13.9 ToolTips......Page 531
13.10 NumericUpDown Control......Page 534
13.11 Mouse-Event Handling......Page 536
13.12 Keyboard-Event Handling......Page 539
13.13 Wrap-Up......Page 542
14 Graphical User Interface Concepts: Part 2......Page 543
14.2 Menus......Page 544
14.4 DateTimePicker Control......Page 554
14.5 LinkLabel Control......Page 558
14.6 ListBox Control......Page 562
14.7 CheckedListBox Control......Page 566
14.8 ComboBox Control......Page 569
14.9 TreeView Control......Page 573
14.10 ListView Control......Page 579
14.11 TabControl Control......Page 585
14.12 Multiple Document Interface (MDI) Windows......Page 590
14.13 Visual Inheritance......Page 598
14.14 User-Defined Controls......Page 601
14.15 Wrap-Up......Page 604
15 Multithreading......Page 606
15.1 Introduction......Page 607
15.2 Thread States: Life Cycle of a Thread......Page 608
15.3 Thread Priorities and Thread Scheduling......Page 610
15.4 Creating and Executing Threads......Page 612
15.5 Thread Synchronization and Class Monitor......Page 615
15.6 Producer/Consumer Relationship without Thread Synchronization......Page 617
15.7 Producer/Consumer Relationship with Thread Synchronization......Page 624
15.8 Producer/Consumer Relationship: Circular Buffer......Page 632
15.9 Multithreading with GUIs......Page 640
15.10 Wrap-Up......Page 645
16 Strings, Characters and Regular Expressions......Page 646
16.1 Introduction......Page 647
16.2 Fundamentals of Characters and Strings......Page 648
16.3 string Constructors......Page 649
16.4 string Indexer, Length Property and CopyTo Method......Page 650
16.5 Comparing strings......Page 652
16.6 Locating Characters and Substrings in strings......Page 655
16.7 Extracting Substrings from strings......Page 657
16.9 Miscellaneous string Methods......Page 658
16.10 Class StringBuilder......Page 660
16.11 Length and Capacity Properties, EnsureCapacity Method and Indexer of Class StringBuilder......Page 662
16.12 Append and AppendFormat Methods of Class StringBuilder......Page 664
16.13 Insert, Remove and Replace Methods of Class StringBuilder......Page 666
16.14 Char Methods......Page 669
16.15 Card Shuffling and Dealing Simulation......Page 671
16.16 Regular Expressions and Class Regex......Page 675
16.16.1 Regular Expression Example......Page 676
16.16.2 Validating User Input with Regular Expressions......Page 678
16.16.3 Regex methods Replace and Split......Page 683
16.17 Wrap-Up......Page 685
17 Graphics and Multimedia......Page 686
17.2 Drawing Classes and the Coordinate System......Page 687
17.3 Graphics Contexts and Graphics Objects......Page 689
17.4 Color Control......Page 690
17.5 Font Control......Page 697
17.6 Drawing Lines, Rectangles and Ovals......Page 702
17.7 Drawing Arcs......Page 705
17.8 Drawing Polygons and Polylines......Page 708
17.9 Advanced Graphics Capabilities......Page 711
17.10 Introduction to Multimedia......Page 716
17.11 Loading, Displaying and Scaling Images......Page 717
17.12 Animating a Series of Images......Page 719
17.13 Windows Media Player......Page 730
17.14 Microsoft Agent......Page 731
17.15 Wrap-Up......Page 745
18 Files and Streams......Page 746
18.2 Data Hierarchy......Page 747
18.3 Files and Streams......Page 749
18.4 Classes File and Directory......Page 750
18.5 Creating a Sequential-Access Text File......Page 759
18.6 Reading Data from a Sequential-Access Text File......Page 770
18.7 Serialization......Page 780
18.8 Creating a Sequential-Access File Using Object Serialization......Page 781
18.9 Reading and Deserializing Data from a Sequential-Access Text File......Page 787
18.10 Wrap-Up......Page 791
19 Extensible Markup Language (XML)......Page 792
19.2 XML Basics......Page 793
19.3 Structuring Data......Page 796
19.4 XML Namespaces......Page 803
19.5 Document Type Definitions (DTDs)......Page 806
19.6 W3C XML Schema Documents......Page 809
19.7 (Optional) Extensible Stylesheet Language and XSL Transformations......Page 816
19.8 (Optional) Document Object Model (DOM)......Page 825
19.9 (Optional) Schema Validation with Class XmlReader......Page 839
19.10 (Optional) XSLT with Class XslCompiledTransform......Page 842
19.12 Web Resources......Page 845
20 Database, SQL and ADO.NET......Page 847
20.1 Introduction......Page 848
20.2 Relational Databases......Page 849
20.3 Relational Database Overview: Books Database......Page 850
20.4 SQL......Page 854
20.4.2 WHERE Clause......Page 855
20.4.3 ORDER BY Clause......Page 857
20.4.4 Merging Data from Multiple Tables: INNER JOIN......Page 858
20.4.5 INSERT Statement......Page 860
20.4.6 UPDATE Statement......Page 861
20.4.7 DELETE Statement......Page 862
20.5 ADO.NET Object Model......Page 863
20.6.1 Displaying a Database Table in a DataGridView......Page 864
20.6.2 How Data Binding Works......Page 872
20.7 Querying the Books Database......Page 876
20.8 Programming with ADO.NET: Address Book Case Study......Page 885
20.9 Using a DataSet to Read and Write XML......Page 893
20.11 Web Resources......Page 896
21 ASP.NET 2.0, Web Forms and Web Controls......Page 898
21.1 Introduction......Page 899
21.2 Simple HTTP Transactions......Page 900
21.3 Multitier Application Architecture......Page 902
21.4 Creating and Running a Simple Web-Form Example......Page 903
21.4.1 Examining an ASPX File......Page 904
21.4.2 Examining a Code-Behind File......Page 906
21.4.3 Relationship Between an ASPX File and a Code-Behind File......Page 907
21.4.5 Examining the XHTML Generated by an ASP.NET Application......Page 908
21.4.6 Building an ASP.NET Web Application......Page 910
21.5 Web Controls......Page 918
21.5.1 Text and Graphics Controls......Page 919
21.5.2 AdRotator Control......Page 923
21.5.3 Validation Controls......Page 928
21.6 Session Tracking......Page 940
21.6.1 Cookies......Page 941
21.6.2 Session Tracking with HttpSessionState......Page 950
21.7 Case Study: Connecting to a Database in ASP.NET......Page 958
21.7.1 Building a Web Form That Displays Data from a Database......Page 959
21.7.2 Modifying the Code-Behind File for the Guestbook Application......Page 968
21.8.1 Examining the Completed Secure Books Database Application......Page 970
21.8.2 Creating the Secure Books Database Application......Page 973
21.9 Wrap-Up......Page 999
21.10 Web Resources......Page 1000
22 Web Services......Page 1001
22.1 Introduction......Page 1002
22.2 .NET Web Services Basics......Page 1003
22.2.1 Creating a Web Service in Visual Web Developer......Page 1004
22.2.2 Discovering Web Services......Page 1005
22.2.3 Determining a Web Service’s Functionality......Page 1006
22.2.4 Testing a Web Service’s Methods......Page 1007
22.2.5 Building a Client to Use a Web Service......Page 1009
22.3 Simple Object Access Protocol (SOAP)......Page 1010
22.4.1 Defining the HugeInteger Web Service......Page 1012
22.4.2 Building a Web Service in Visual Web Developer......Page 1017
22.4.3 Deploying the HugeInteger Web Service......Page 1019
22.4.4 Creating a Client to Consume the HugeInteger Web Service......Page 1020
22.4.5 Consuming the HugeInteger Web Service......Page 1024
22.5 Session Tracking in Web Services......Page 1028
22.5.1 Creating a Blackjack Web Service......Page 1029
22.5.2 Consuming the Blackjack Web Service......Page 1033
22.6 Using Web Forms and Web Services......Page 1042
22.6.1 Adding Data Components to a Web Service......Page 1044
22.6.2 Creating a Web Form to Interact with the Airline Reservation Web Service......Page 1046
22.7 User-Defined Types in Web Services......Page 1050
22.9 Web Resources......Page 1060
23 Networking: Streams-Based Sockets and Datagrams......Page 1061
23.1 Introduction......Page 1062
23.3 Protocols for Transporting Data......Page 1063
23.4 Establishing a Simple TCP Server (Using Stream Sockets)......Page 1064
23.6 Client/Server Interaction with Stream-Socket Connections......Page 1066
23.7 Connectionless Client/Server Interaction with Datagrams......Page 1077
23.8 Client/Server Tic-Tac-Toe Using a Multithreaded Server......Page 1082
23.9 WebBrowser Control......Page 1097
23.10 .NET Remoting......Page 1100
23.11 Wrap-Up......Page 1112
24 Data Structures......Page 1113
24.2 Simple-Type structs, Boxing and Unboxing......Page 1114
24.3 Self-Referential Classes......Page 1115
24.4 Linked Lists......Page 1117
24.5 Stacks......Page 1129
24.6 Queues......Page 1133
24.7 Trees......Page 1137
24.7.1 Binary Search Tree of Integer Values......Page 1138
24.7.2 Binary Search Tree of IComparable Objects......Page 1145
24.8 Wrap-Up......Page 1151
25 Generics......Page 1153
25.1 Introduction......Page 1154
25.2 Motivation for Generic Methods......Page 1155
25.3 Generic Method Implementation......Page 1157
25.4 Type Constraints......Page 1159
25.5 Overloading Generic Methods......Page 1162
25.6 Generic Classes......Page 1163
25.8 Wrap-Up......Page 1172
26 Collections......Page 1173
26.1 Introduction......Page 1174
26.2 Collections Overview......Page 1175
26.3 Class Array and Enumerators......Page 1177
26.4.1 Class ArrayList......Page 1181
26.4.2 Class Stack......Page 1185
26.4.3 Class Hashtable......Page 1188
26.5.1 Generic Class SortedDictionary......Page 1192
26.5.2 Generic Class LinkedList......Page 1195
26.6 Synchronized Collections......Page 1199
26.7 Wrap-Up......Page 1200
A: Operator Precedence Chart......Page 1201
B: Number Systems......Page 1203
B.1 Introduction......Page 1204
B.2 Abbreviating Binary Numbers as Octal and Hexadecimal Numbers......Page 1207
B.4 Converting from Binary, Octal or Hexadecimal to Decimal......Page 1208
B.5 Converting from Decimal to Binary, Octal or Hexadecimal......Page 1209
B.6 Negative Binary Numbers: Two’s Complement Notation......Page 1211
C: Using the Visual Studio; 2005 Debugger......Page 1213
C.2 Breakpoints and the Continue Command......Page 1214
C.3 The Locals and Watch Windows......Page 1219
C.4 Controlling Execution Using the Step Into, Step Over, Step Out and Continue Commands......Page 1222
C.5.1 Edit and Continue......Page 1225
C.5.3 Just My Code Debugging......Page 1228
C.6 Wrap-Up......Page 1229
D: ASCII Character Set......Page 1230
E: Unicode......Page 1231
E.1 Introduction......Page 1232
E.2 Unicode Transformation Formats......Page 1233
E.4 Advantages/Disadvantages of Unicode......Page 1234
E.5 Using Unicode......Page 1235
E.6 Character Ranges......Page 1237
F: Introduction to XHTML: Part 1......Page 1239
F.2 Editing XHTML......Page 1240
F.3 First XHTML Example......Page 1241
F.4 W3C XHTML Validation Service......Page 1244
F.5 Headers......Page 1245
F.6 Linking......Page 1247
F.7 Images......Page 1249
F.8 Special Characters and More Line Breaks......Page 1253
F.9 Unordered Lists......Page 1255
F.10 Nested and Ordered Lists......Page 1257
F.11 Web Resources......Page 1259
G: Introduction to XHTML: Part 2......Page 1260
G.2 Basic XHTMLTables......Page 1261
G.3 Intermediate XHTML Tables and Formatting......Page 1264
G.4 Basic XHTML Forms......Page 1266
G.5 More Complex XHTML Forms......Page 1269
G.6 Internal Linking......Page 1276
G.7 Creating and Using Image Maps......Page 1279
G.8 meta Elements......Page 1282
G.9 frameset Element......Page 1284
G.10 Nested framesets......Page 1288
G.11 Web Resources......Page 1290
H: HTML/XHTML Special Characters......Page 1291
I: HTML/XHTML Colors......Page 1292
J.1 ATM Case Study Implementation......Page 1295
J.2 Class ATM......Page 1296
J.3 Class Screen......Page 1302
J.5 Class CashDispenser......Page 1303
J.7 Class Account......Page 1305
J.8 Class BankDatabase......Page 1308
J.9 Class Transaction......Page 1310
J.10 Class BalanceInquiry......Page 1312
J.11 Class Withdrawal......Page 1313
J.12 Class Deposit......Page 1317
J.14 Wrap-Up......Page 1320
K.2 Additional Diagram Types......Page 1322
L: Simple Types......Page 1324
A......Page 1326
B......Page 1328
C......Page 1329
D......Page 1332
E......Page 1333
F......Page 1337
G......Page 1338
I......Page 1339
L......Page 1341
M......Page 1342
N......Page 1344
O......Page 1345
P......Page 1346
R......Page 1347
S......Page 1348
T......Page 1351
U......Page 1353
W......Page 1354
X......Page 1355
Z......Page 1356