Java Programming for OOP Programmers

Course:  JAVAOOP
Duration:  5 Days
Level:  I
Course 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.

« Hide The Details
Topics Covered In This Course

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

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

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

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

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

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

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

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

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

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
What You Can Expect

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.
Who Should Take This Course

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.

Recommended 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".

Training Style

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.

« Hide The Details
Related Courses
Code Course Title Duration Level
JAVARD
Introduction to Java Programming using RAD 7.5
5 Days
I
Details
JAVA101
Java Development for Non OOP & COBOL Programmers
5 Days
I
Details

Every student attending a Verhoef Training class will receive a certificate good for $100 toward their next public class taken within a year.

You can also buy "Verhoef Vouchers" to get a discounted rate for a single student in any of our public or web-based classes. Contact your account manager or our sales office for details.

Schedule For This Course
There are currently no public sessions scheduled for this course. We can schedule a private class for your organization just a couple of weeks from now. Or we can let you know the next time we do schedule a public session.
Notify me the next time this course is confirmed!
Can't find the course you want?
Call us at 800.533.3893, or
email us at info@verhoef.com