Log In
Or create an account -> 
Imperial Library
  • Home
  • About
  • News
  • Upload
  • Forum
  • Help
  • Login/SignUp

Index
Cover Title Page Brief Contents Contents About the Author Dedication Preface How to Use This Book and Web Resources 1. Object-oriented Programming Basics
1.1 Introduction 1.2 Programming Concepts 1.3 Programming Paradigms
1.3.1 Structured Programming Paradigm 1.3.2 C: A Workhorse that Works Well 1.3.3 Where is the Problem? 1.3.4 Object-oriented Programming Paradigm
1.4 History and Development of Object-oriented Languages
1.4.1 C++ 1.4.2 Java 1.4.3 C#
1.5 Software Development Methodologies 1.6 Need for Objects 1.7 Object-oriented Language Features
1.7.1 Object-based Programming 1.7.2 Object-oriented Programming
1.8 Definition of OOP Language Classes and Objects
1.8.1 Attributes and Behaviours of Objects 1.8.2 Class 1.8.3 Encapsulation 1.8.4 Data Hiding/Data Abstraction 1.8.5 Function Overloading 1.8.6 Operator Overloading
1.9 Extendibility and Reusability of OOP Paradigms 1.10 Extending/Deriving New Classes
1.10.1 Containment: Class Within a Class - Container Class 1.10.2 Inheritance and Class Hierarchy 1.10.3 Single and Multiple Inheritances
1.11 Virtual Functions 1.12 Run-time Polymorphism and Dynamic Data Binding 1.13 Class as Abstract Data Type (ADT) 1.14 Standard Template Library (STL) 1.15 OOPS - Object-oriented Programming and Systems 1.16 Object-oriented Analysis and Design (OOAD) 1.17 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Solutions to Objective Questions
2. Object Modelling
2.1 Introduction 2.2 Object Model 2.3 Object-oriented Design 2.4 Classes and Objects
2.4.1 Class 2.4.2 Notations and Meta Models 2.4.3 Mandatory Profile 2.4.4 Meta Data - Meta Class 2.4.5 Constraints 2.4.6 Object Creation 2.4.7 Garbage Collection
2.5 Object Properties 2.6 Links 2.7 Class Diagrams 2.8 Class Hierarchy
2.8.1 Associations 2.8.2 Hierarchies with Interdependent Classes 2.8.3 Hierarchies with Independent Classes
2.9 Object Diagrams 2.10 Communications and Message Passing 2.11 Polymorphism 2.12 Abstract Class 2.13 Concrete Class
2.13.1 OOPS - A Case Study in Object Modelling
2.14 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
3. Extensibility and Reusability - Inheritance at Work
3.1 Extendibility and Reusability of OOP Paradigm 3.2 Extending/Deriving New Classes
3.2.1 Containment: Class within a Class - Container Class 3.2.2 Inheritance and Class Hierarchy 3.2.3 Generalization vs Specialization
3.3 Overriding Base Class Functions 3.4 Overloading 3.5 Single and Multiple Inheritances 3.6 Virtual Inheritance 3.7 Problems with Multiple Inheritance 3.8 Interface 3.9 Access Specifiers in Inheritance 3.10 Run-time-type Information - RTTI 3.11 Virtual Functions 3.12 Pure Virtual Functions 3.13 Run-time Polymorphism and Dynamic Data Binding 3.14 Class as Abstract Data Type 3.15 Separation of Behaviour and Implementation 3.16 Decoupling 3.17 Standard Template Library 3.18 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
4. Dynamic Modelling
4.1 Introduction to Static and Dynamic Modelling 4.2 Lifetime of an Object 4.3 Unified Modelling Language - A Tool for OOAD
4.3.1 Overview of UML 4.3.2 Classification of UML Diagrams
4.4 User Requirements - Use Cases 4.5 Architecture and Domain: What Are They?
4.5.1 Architecture 4.5.2 Domain
4.6 Sequence Diagram 4.7 Collaboration (Communication) Diagram 4.8 Events and State
4.8.1 Activity/Action and Operations 4.8.2 Nested State Diagrams
4.9 Activity Diagram 4.10 Packages and Components – A Way to Organize Large and Complex Projects 4.11 Component and Deployment Diagram 4.12 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
5. Analysis and Design Methodologies
5.1 Introduction 5.2 Stages and Methodologies for Systems Development
5.2.1 Methodologies for Software Development 5.2.2 Systems Development Life Cycle (SDLC)
5.3 Structured Analysis and Design (SASD)
5.3.1 Conceptual Design - Functional Modelling and Data Modelling 5.3.2 Modular Design 5.3.3 Analysis and Design Techniques and Tools 5.3.4 Context Diagrams 5.3.5 Event List 5.3.6 Data Flow Diagrams 5.3.7 Data Dictionary 5.3.8 Multilevel DFDs 5.3.9 Entity Relationship Diagram 5.3.10 Process Specifications 5.3.11 Specifying Constraints
5.4 Case Study on Structured Analysis and Design
5.4.1 Example of Statement of Purpose 5.4.2 Context Diagram 5.4.3 Event List 5.4.4 Data Flow Diagrams 5.4.5 Data Dictionary 5.4.6 Entity Relationship Diagrams 5.4.7 Process Specifications - SSCS 5.4.8 Structured Analysis and Design – Advantages and Disadvantages
5.5 Object-oriented Software Analysis and Design (OOAD)
5.5.1 Different Models for Object Analysis 5.5.2 Identifying Classes 5.5.3 Identifying Attributes 5.5.4 Specifying Operations 5.5.5 Work Out Associations
5.6 OOAD: A Case Study 5.7 Design for Reuse 5.8 Comparison of SASD and OOAD Methodologies 5.9 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
6. C++ Fundamentals and Basic Programming
6.1 Introduction 6.2 History and Development of Object-oriented Languages like C++ 6.3 Object-oriented Language Features 6.4 Welcome to C++ Language
6.4.1 Setting Path 6.4.2 C++ Program Structure 6.4.3 C++ Development Environment
6.5 Further Sample Programs of C++
6.5.1 Execution of a Program in a Loop 6.5.2 Arrays Implementation 6.5.3 Use of Structure to Implement Problem 6.5.4 Class Implementation
6.6 Console IO Operations
6.6.1 Console IO Functions - Commands getchar() and putchar() 6.6.2 Console IO Functions - Commands gets and puts 6.6.3 Unformatted Stream IO Functions - get(), put(), getline() and write()
6.7 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
7. C++ Programming Basics and Control Loops
7.1 Introduction 7.2 Declaration of Variables 7.3 Data Types 7.4 Declaration and Assignment Values to Variables 7.5 Expressions 7.6 Operators
7.6.1 IO Operators << and >>, iostream objects cin and cout 7.6.2 Unary Operators 7.6.3 Size of Operator 7.6.4 Arithmetic Operators 7.6.5 Relational and Logical Operators 7.6.6 Logical Operators 7.6.7 Conditional Expressions: Question Mark Operator 7.6.8 Comma Operator 7.6.9 Bitwise Operators
7.7 Precedence and Association of Operators 7.8 Control Loops
7.8.1 Conditional and Branching Statements 7.8.2 Switch and Case Statements 7.8.3 While Loop 7.8.4 Do-while Loop 7.8.5 For Loop 7.8.6 When to Use For or While or Do-while
7.9 Break and Continue
7.9.1 Break 7.9.2 Continue Statement 7.9.3 Goto Statements 7.9.4 Exit Function
7.10 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
8. Functions, Storage Class Preprocessor Directives, and Arrays and Strings
8.1 Introduction 8.2 Why Use Function Templates? 8.3 Call by Value 8.4 Call by Reference 8.5 Call by Constant Reference 8.6 Recursion 8.7 Inline Functions 8.8 Function Overloading 8.9 Default Arguments 8.10 Memory Management of C++
8.10.1 Types of Storage Classes
8.11 Header Files and Standard Libraries 8.12 C++ Preprocessor
8.12.1 Macro Expansion 8.12.2 Macro Definition with Arguments 8.12.3 File Inclusion 8.12.4 Conditional Inclusion 8.12.5 Conditional Compilation #ifdef and #ifndef Statements 8.12.6 #undef 8.12.7 #error Macros
8.13 Arrays
8.13.1 How are Arrays Stored in the Memory? 8.13.2 Array Initialization 8.13.3 Multi-dimensional Arrays 8.13.4 Character Array - String Handling in C++ Language
8.14 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
9. Pointers and References
9.1 Introduction 9.2 What, Why and How of Pointers 9.3 Pointers Declaration and Usage 9.4 Call by Value and Call by Reference (Pointers) 9.5 Dynamic Memory New and Delete Functions
9.5.1 Memory Leak 9.5.2 Dangling Pointer 9.5.3 Pointers and Arrays 9.5.4 Pointers and Two-dimensional Arrays 9.5.5 Array Declaration on Heap Memory 9.5.6 Pointer to Pointer 9.5.7 Dynamic Memory for a Two-dimensional Array 9.5.8 Pointers and Three-dimensional Arrays 9.5.9 Array of Pointers 9.5.10 Pointers to Void 9.5.11 Pointer to a Constant vs const Pointer 9.5.12 Pointers to Function
9.6 What, Why and How of References
9.6.1 Which is Better - Pointer or Reference?
9.7 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Solutions to Objective Questions
10. Classes
10.1 Introduction 10.2 Classes and Objects
10.2.1 How to Create an Object to a Class? 10.2.2 How to Access Member Data and Member Functions? 10.2.3 Constructors and Destructors
10.3 Friend Function 10.4 Class Within a Class: Container Class 10.5 Objects and Data Members on Heap Memory 10.6 This Pointer 10.7 Pointers vs Objects: Use of Constant Declarations 10.8 Passing of Objects by Reference and Pointers to a Function 10.9 Constant Pointers and Constant References 10.10 Static Member Data 10.11 Static Member Functions 10.12 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Solutions to Objective Questions
11. C++ Special Features: Errors and Exceptions and Operator Overloading
11.1 Introduction 11.2 Errors and Exceptions 11.3 Try and Catch Blocks 11.4 Exception Classes 11.5 Stack Data Structure 11.6 Operator Overloading
11.6.1 Overloading of + Operator and * Operator 11.6.2 Operator << Overloading 11.6.3 What We Can Overload and What We Cannot Overload 11.6.4 Overloading Assignment Operator =
11.7 Pre- and Post-increment Operator Overloading 11.8 Overloading Operators New and Delete 11.9 Conversion (Casting) Operators 11.10 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
12. Inheritance
12.1 Introduction 12.2 Inheritance Hierarchy 12.3 Types of Inheritance 12.4 Constructors and Destructors 12.5 Base Class Function Overriding 12.6 Base Class Function Hiding 12.7 Virtual Functions 12.8 Multiple Virtual Functions 12.9 Virtual Destructors: Why and How? 12.10 Hybrid Inheritance with Multiple Inheritances 12.11 Virtual Inheritance 12.12 Run-time Polymorphism and Dynamic Binding 12.13 Abstract Data Types (ADTs) 12.14 Pure Virtual Functions 12.15 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
13. IO Streaming
13.1 Introduction 13.2 IO Streaming 13.3 IO Library Files Classification
13.3.1 Formatted IO 13.3.2 Unformatted IO 13.3.3 IO Stream State 13.3.4 IO Stream Library - Header Files
13.4 IO Manipulators 13.5 Flags 13.6 File I/O
13.6.1 File Types 13.6.2 Stream Operating Modes
13.7 Binary File 13.8 Seekg()/Seekp() and Tellg() and Tellp() Functionality of C++ 13.9 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
14. Generic Programming and Templates
14.1 Introduction 14.2 What is Generic Programming and Why Use Templates? 14.3 Template Classes 14.4 Function Templates and Passing of Arguments to a Function 14.5 Template Friends
14.5.1 Non-template Function 14.5.2 Template Friend Class or Function 14.5.3 Type-specific Friend Function in Class Templates
14.6 Templates and Static Member Functions and Member Data 14.7 Template Exceptions 14.8 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
15. Object-oriented Programming with Java
15.1 Introduction 15.2 Internet and the World Wide Web 15.3 C and C++ are Around - Then Why Java? 15.4 Java Story 15.5 Java Features
15.5.1 Portability or Platform Independent 15.5.2 Automatic Garbage Collection 15.5.3 Object-oriented Features 15.5.4 Easy to Learn and Excellent Documentation 15.5.5 Byte Code 15.5.6 Java Virtual Machine (JVM) 15.5.7 Comparison with C++
15.6 Developing First Java Application
15.6.1 Installing and Using Java Development Kit 15.6.2 Setting Path and Classpath 15.6.3 Java Program Structure 15.6.4 Java Documentation Comments 15.6.5 Java Development Environment 15.6.6 Our First Java Application 15.6.7 Application with Swing Components 15.6.8 Eclipse-integrated Development Environment 15.6.9 Command Line Arguments
15.7 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
16. Java Fundamentals and Control Loops
16.1 Introduction 16.2 Constants/Literal Constants
16.2.1 Integer Constants 16.2.2 Floating Point Constants/Real Constants 16.2.3 Character Constants 16.2.4 String Constants 16.2.5 Backlash Character Strings 16.2.6 Boolean Literals 16.2.7 Symbolic Constants
16.3 Variables and Assignment of Values to Variables 16.4 Data Types
16.4.1 Integer Data Types 16.4.2 Floating Point Data Types 16.4.3 Character Type 16.4.4 Boolean Data Type
16.5 Scope and Life Time of Variables 16.6 Arithmetic Operators 16.7 Type Conversion and Type Casting
16.7.1 Type Conversion 16.7.2 Type Cast
16.8 Unary Operators
16.8.1 Increment and Decrement Operators 16.8.2 Assignment Operator 16.8.3 Chained Assignment 16.8.4 Relational Operators
16.9 Logical Operators 16.10 Bit-wise Operators 16.11 Other Operators
16.11.1 Question Mark (?) Operator Conditional Expressions 16.11.2 Member Operator or Dot Operator 16.11.3 Instanceof Operator 16.11.4 New Operator 16.11.5 Operator Precedence and Associativity
16.12 Conditional and Branching Statements
16.12.1 If and If-Else Statements 16.12.2 Nested If Statements 16.12.3 If-Else-If Ladder 16.12.4 Switch and Case Statements
16.13 Control Loops
16.13.1 While Loop 16.13.2 Do-while Loop 16.13.3 For Loop
16.14 Break 16.15 Continue Statement 16.16 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
17. Simple IO and Arrays and Strings Vectors
17.1 Introduction 17.2 Input from Keyboard
17.2.1 System.in, System.out and System.err Commands 17.2.2 StringTokenizer to Receive Multiple Inputs in a Single Line 17.2.3 Obtaining Inputs Using Java's Scanner Class 17.2.4 Using Control Formats - System.out.printf() 17.2.5 Formatted Output with String Format
17.3 Arrays
17.3.1 Declaring and Creation of an Array 17.3.2 Initialization of Arrays 17.3.3 How Are Arrays Stored in the Memory? 17.3.4 Accessing and Modifying Array Elements 17.3.5 Passing Arrays as Arguments to Methods 17.3.6 Returning Arrays as Arguments to Methods 17.3.7 Multi-dimensional Arrays 17.3.8 Java.util. Arrays Class
17.4 String
17.4.1 Array of Strings 17.4.2 String Class Methods 17.4.3 StringBuffer Class 17.4.4 StringBuilder Class
17.5 Collection Framework
17.5.1 Vector Class 17.5.2 Vector Methods
17.6 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
18. Class Objects and Methods
18.1 Introduction 18.2 Classes and Objects 18.3 Declaring a Class and Creating of Instances of Class Variables 18.4 Constructors
18.4.1 Default Constructor 18.4.2 Parameterized Constructor and Overloading of Constructors
18.5 Specifying Private Access Specifiers and Use of Public Methods
18.5.1 Private Access Specifiers 18.5.2 Methods 18.5.3 Math Class of Java 18.5.4 Call by Value and Call by Reference 18.5.5 Passing and Returning of Objects To and From Methods 18.5.6 Method Overloading
18.6 Usage of this Keyword 18.7 Garbage Collection 18.8 Finalizer and Finalize() Methods 18.9 Final Variable 18.10 Access Control and Accessing Class Members 18.11 Static Members 18.12 Factory Methods 18.13 Nested Classes 18.14 Inner Classes 18.15 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
19. Inheritance: Packages: Interfaces
19.1 Introduction 19.2 Basic Concepts of Inheritance 19.3 Member Access Rules 19.4 Using Super Class 19.5 Methods Overriding 19.6 Multilevel Inheritance 19.7 Run-time Polymorphism 19.8 Abstract Classes 19.9 Using Final with Inheritance
19.9.1 Final Method 19.9.2 Final Classes
19.10 Object Class 19.11 Packages
19.11.1 Reusable Classes
19.12 Path and Classpath 19.13 Importing of Packages 19.14 Access Specifiers Revisited for Packages 19.15 Interfaces
19.15.1 What and Why of Interfaces 19.15.2 Defining and Implementing Interfaces
19.16 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
20. Errors and Exceptions in Java and Multithreaded Programming
20.1 Introduction 20.2 Errors and Exceptions
20.2.1 Errors 20.2.2 Exceptions
20.3 Try and Catch Blocks 20.4 Handling of Multiple Exceptions by Try and Catch Blocks 20.5 Using Finally Block 20.6 Throw Exceptions 20.7 Throws Exceptions 20.8 Re-throwing of an Exception 20.9 Defining Our Own Exception
20.9.1 Procedure for Throwing Our Own Exceptions
20.10 Concepts of Multithreading
20.10.1 Multithreaded Program
20.11 Process vs Threads
20.11.1 Process 20.11.2 Threads
20.12 How to Create and Run the Threads?
20.12.1 Which is Better: Extends Thread or Implements Runnable? 20.12.2 Use of isAlive() and join() Methods
20.13 Life Cycle of Thread 20.14 Thread Priorities 20.15 Synchronization 20.16 Inter-thread Communications 20.17 Deadlock in Multithreaded Programming 20.18 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
21. Java IO Files
21.1 Introduction 21.2 IO Streaming 21.3 Java IO Stream Classes
21.3.1 Classification of ByteStream Classes 21.3.2 Classification of CharacterStream Classes or Text Classes 21.3.3 DataInput and DataOutputStream FileInput and FileOutputStream 21.3.4 FileReader and FileWriter
21.4 IO Errors and Exceptions 21.5 FilterInputStream and FilterOutputStreams 21.6 Using BufferedInput and BufferedOutput Streams 21.7 Writing Primitive Data Types to File: DataInputStream/DataOutputStream 21.8 File Class 21.9 Random Access Files 21.10 Serialization of Objects and Object Streams
21.10.1 Serialization 21.10.2 De-serialization
21.11 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
22. Networking in Java
22.1 Introduction 22.2 Basics of Networking
22.2.1 TCP/IP 22.2.2 User Data Gram Protocol (UDP)
22.3 Internet Address 22.4 URL and URL Connection
22.4.1 URL Connection
22.5 TCP/IP Sockets
22.5.1 ServerSocket Class 22.5.2 Server and Socket for Communications: How to Set them to Work? 22.5.3 Client and Socket for Communications: How to Set them to Work?
22.6 Client Server Program
22.6.1 Client Server Two-way Communication Program 22.6.2 Multiple Clients and Server Programs Using Multithreads 22.6.3 Client Server Program for File Download from Server
22.7 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
23. Graphics Using Swing Components and Applets
23.1 Graphics Programming and Applets Introduction 23.2 Hierarchy of Graphics Software 23.3 Containers in Swing
23.3.1 JFrame Class 23.3.2 JPanel Class
23.4 Display Widgets in Swing
23.4.1 JLabel Class 23.4.2 JButton 23.4.3 JCheckBox 23.4.4 JComboBox 23.4.5 JMenu Class
23.5 Layout Managers
23.5.1 Border Layout 23.5.2 Grid Layout 23.5.3 Flow Layout
23.6 Event Types and Event Listeners
23.6.1 Action Event Listener 23.6.2 Item Event Listener 23.6.3 Keyboard Event Listener 23.6.4 Mouse Event Listener
23.7 Applets
23.7.1 Concepts of Applets 23.7.2 Life Cycle of an Applet 23.7.3 Creating an Applet - HelloWorld Applet 23.7.4 JApplets - Applets with Swing Components: Better Look and Feel 23.7.5 Applets vs. Stand-alone Applications 23.7.6 Passing Arguments to Applets
23.8 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
24. Collections and Software Development Using Java
24.1 Introduction 24.2 Collection Framework of Java 24.3 Collection Interface 24.4 Set Interface 24.5 Iterators 24.6 List Interface 24.7 Collection Algorithms 24.8 Map Interface 24.9 Collection View of Map 24.10 JDBC Database Connectivity 24.11 Access Database Records Using MS Access Database 24.12 Access Database Records Using MySql Open Source Database 24.13 Access Database Records Using Oracle Database 24.14 Prepared Statement and Callable Statements
24.14.1 PreparedStatement 24.14.2 Callable Statements
24.15 Servlets
24.15.1 Servlets API and javax.servlet Package 24.15.2 HttpServletRequest 24.15.3 HttpServletResponse 24.15.4 HttpServlet Class-Get Request with Data from Client 24.15.5 HTTP Post Requests
24.16 Java Beans 24.17 Summary
Exercise Questions
Objective Questions Short-answer Questions Long-answer Questions Assignment Questions Solutions to Objective Questions
Appendix A Appendix B Appendix C Acknowledgements Copyright
  • ← Prev
  • Back
  • Next →
  • ← Prev
  • Back
  • Next →

Chief Librarian: Las Zenow <zenow@riseup.net>
Fork the source code from gitlab
.

This is a mirror of the Tor onion service:
http://kx5thpx2olielkihfyo4jgjqfb7zx7wxr3sd4xzt26ochei4m6f7tayd.onion