Zoom Outline PDF View  or  Email Back to Schedule for Wisconsin


Java Programming for OOP Programmers




SUMMARY:   This course provides an introduction to the Java programming language using a client-side application context. Java programming syntax, fundamental APIs and OO syntax and principles are covered. File I/O, Database processing, Thread, Networking and GUI packages are included.

AUDIENCE:   The material covered in this course is designed for students with previous C-based and OO programming experience who plan to develop programs using Java.

PREREQUISITES:   Students should have previous OO programming experience in languages such as C++, C#. A strong VB background is also sufficient. Students without a C/OO background should consider attending "Java Fundamentals for Non OOP and Cobol Programmers".

DURATION:   5 Days

APPROACH:   Instructor-led lecture and discussion with extensive demos and hands-on labs. Chapter appendices include optional/advanced material. Several optional closing topics are available to be included as time permits. Multiple labs for each chapter allow students with varied backgrounds to progress through the material.

OBJECTIVES:   At the end of this course, students will be able to:

  • Describe the evolution of Java releases and SE/EE API facilities.
  • Understand the JVM and its provision of application portability.
  • Develop console-based client-side applications using the full core Java syntax.
  • Understand and code for runtime exception handling.
  • Write programs using existing classes in the Lang and Util Java packages.
  • Write programs to access disk-based file sources using the Java IO package using byte, binary, character and object streams.
  • Write programs to manipulate relational databases using the Java SQL package including Basic/Advanced ResultSets, Stored Procedures and Transaction Management.
  • Develop desktop GUI programs including component event handling using the AWT and Swing packages
  • Understand the OO principles of abstraction, encapsulation, polymorphism and inheritance.
  • Develop and use individual custom application classes following the JavaBean design pattern.
  • Understand and utilize classes employing inheritance;
    Extend existing classes, provide constructors and override methods.
  • Understand the usage of Threads and develop Threaded applications.
  • Understand network programming and develop Socket-based client-server applications.

COURSE CONTENT:  
  1. Introduction
    • Origins, Bundles/Releases
    • Program architectures: Component, Application, Servlet, Applet
    • Java Development JDK vs Runtime JVM Environments
    • Major APIs, Packages
    • Language Features
    • Development Tools: Sun JDK, Open Source, Commercial
    • Running Applications: JVM/JDK Installation, Environment Setup
    • Source Code Examples
  2. Language Fundamentals
    • Program/Source File Structure/Design
    • Java Syntax Essentials
    • Identifiers, Reserved Words
    • Data Type Representations, Usage, Declarations
    • Constant Representations
    • Characters, MetaCharacters and Strings
    • Operators and Expressions: Arithmetic, Reflexive, Relational/Logical, Compound
    • Console Stream I/O
    • Conditionals, if/else, switch/case
    • Working with String Class Objects
      Declaring and Initializing
      Comparing Strings
      String Class Methods
  3. Additional Language Facilities
    • Looping Constructs
      Conditional Loops: while, do/while, conditions
      Iterative Loops: for, clauses
      Flow Control: break, continue
    • Array Processing
      Declaration & Dynamic Allocation
      Initialization & Reference
      Command Line Arguments
    • Wrapper Classes
      Overview and Usage
      String to primitive datatype conversion
      Character Classification
    • Appendix: Vectors, String Token Parsing
  4. Function Methods
    • Overview
    • Method Signatures: Arguments, Return Types, Access
    • Invocation: Internal vs External Methods, Classpath Issues
    • Variable Scope: Local vs Global
    • Overloaded Methods, Runtime Resolution/Conversions
    • Reference vs Value Argument Passing, Objects vs Primitive Types
    • Exception Handling
      Overview
      Checked vs Unchecked Runtime Exceptions
      try, catch, throw
    • Appendix: Static vs NonStatic Methods
  5. Classes and Objects
    • Overview: Abstraction, Encapsulation, Polymorphism and Inheritance
    • Declaring Classes and Objects
      Defining Data Member Properties
      Defining Methods
    • Accessing Class Data and Methods, Resolution
    • Object Creation and Constructors, Overloading Constructors
    • Assigning and Comparing Objects, References, equals/clone
    • Encapsulation: private, public and protected Access, Design Considerations
    • Static Data Properties and Methods
    • Subclassing and Inheritance
      Overview, Parent/Child Relationship, Capabilities
      Data and Method Inheritance
      Protected Access
      Child Constructors, Invoking Parent Constructors, Overloading
      Overriding Methods, Invoking Overriden Methods
    • Polymorphism
      Type Safety
      Casting
      instanceof Runtime Type Determination
      Object Class
    • Appendix
      Abstract Classes
      Interfaces
      Inner Classes
  6. Input/Output Streams
    • java.io Package Overview, Chaining
    • File class and host filesystem data
    • Byte Streams: FileInput/OutputStream Classes
    • Binary Data Streams: DataInput/OutputStream Classes, Chaining
    • Text Streams: BufferedReader/Writer Classes, Chaining, Unicode Conversion
    • Object Streams: Serialization, OubjectInput/OutputStream Classes
    • Appendix: URL Streams
  7. Using JDBC
    • Overview and Essential Package Classes/Interfaces
    • JDBC Programming Checklist
    • DriverManager: Making Connections
      Loading Drivers: Explicit vs CommandLine
      Driver Types 1-4
      Connection Strings
    • Statement and ResultSet Classes
      executeQuery and executeUpdate Methods, Return Types
      Processing ResultSets, Cursor Movement, Column Retrieval
      Mapping SQL-to-Java Types
      Handling NULLs
    • Catching/Handling SQL Exceptions, Messages
    • Special Statements
      PreparedStatement: precompiled queries/updates, Replaceable Parameters
      CallableStatement: using stored procedures, IN/OUT/INOUT Parameters
    • Advanced ResultSet Processing
      Scrollable Cursors
      Updateable ResultSets
    • Transactions: AutoCommit, Commit, Rollback, Transaction Isolation
    • Appendix
      DatabaseMetaData, ResultSetMetaData
  8. Threading Fundamentals (Optional)
    • Overview: Processes vs Threads, Java Threading Model
    • Thread Class: Virtual CPU Facilities, Methods, Priorities
    • Creating Threads: Implementing Runnable vs Extending Thread
    • Thread States: New, Running, Blocked, Dead; Related Thread class methods
    • Stopping and Suspending Threads, Locking Issues
    • Thread Synchronization
      Overview: Synchronous vs Asynchronous Data Sharing
      Locks and Monitors, synchronized Keyword
      wait/notify Concepts and Usage, Producer/Consumer Models
  9. Network Programming (Optional)
    • Overview
      Network Streams, IP Addresses
      Ports, Services and Protocols
    • Net Package Classes and Exceptions
    • InetAddress Class: Host/IP Translation
    • URL and URLConnection Classes: Reading HTTP Streams
    • Socket Programming
      Overview: Socket, ServerSocket Classes
      Socket Clients: Opening, Attaching Stream IO Classes, Exceptions
      Socket Servers: Starting, Accepting Clients, Attaching Stream IO Classes, Exceptions
    • Appendix: Datagram Sockets, UDP
  10. Developing GUI Applications using Swing (Optional)
    • Overview: AWT and Swing Packages
    • GUI Architecture: Components, Containers and Layout Managers
    • Swing Programming Checklist
    • Containers
      JWindow, JFrame, JDialog
      Root, Content and Glass Panes
      Close Operations
      Controlling Size, Position, Font and Color
    • Components
      Inherited Method Capabilities: Borders, ToolTips, Tab Order
      Labels and Buttons
      TextFields and TextAreas
      Checkboxes and RadioButtons/Groups
    • Layout Managers: Flow, Grid, Border, Box, null, Nested Containers
    • Dialogs: JDialog, JOptionPane, JFileChooser
    • Creating Menus: JMenuBar, JMenu, JMenuItem
    • Event Handling
      Overview: Event Delegation Model
      Sources, Objects and Listeners
      Event Listener Interfaces
      Registering Listeners
      Handling Events, EventObject Methods
    • Strategies for Implementing Event Handlers
      Directly Implementing Interfaces
      Subclasses Adapters, Inner Classes
      Anonymously Extending Adapters


    AJC/08

© 2007 Verhoef Training, Inc.

Schedule Dates

Course offered as
Inhouse or Public

Date Location State



Copyright © 2007 - Verhoef Group of Companies - All Rights Reserved