|
Provided by: Boston University Corporate Education Center Object-Oriented Programming with JavaUnfiled |
![]() |
Object-Oriented Programming with Java (ITP862)
|
|
||||||||||
ITP862 - Object-Oriented Programming with Java
Course description
This comprehensive course covers programming and development in the Java language and environment. It supports the Java 2 platform, JRE version 1.3. It is intended for programmers with experience in languages other than Java, who may or may not have any previous Java experience. The course includes a detailed study of the object oriented aspects of Java, with a case study that is carried from analysis and design (presented in UML) to implementation in Java. The course incorporates treatment of the major Java tools including javac, javajar, and javadoc. There are numerous example programs and lab exercises, all of which are fully documented using javadoc. The course is entirely platform independent and targets the Java 2 platform. (Almost all the material applies well to Java 1.1, and differences between the platform versions are highlighted.)
This flexible course design relies on self-contained modules, which are summarized below, and on a careful attention to several possible flows of presentation based on the full course materials. The instructors’ guide provides several suggested timelines for various groups, to help organize a course delivery that will best suit the needs of a given class.
The first module introduces the Java software architecture, including the Java Virtual Machine, Java Runtime Environment, Core API, and the Java Developer’s Kit. Learn to configure a Java development and runtime environment and to use the JDK command-line tools, and learn the basic software development process for Java.
The second module covers the fundamentals of the Java language, focusing on its grammar, data types, and procedural aspects such as flow control (including exception handling) and threads. By the end of the module you are building simple, practical Java classes and applications.
The third module covers Java as an object oriented language. The module includes an optional primer on object oriented methodology and concepts, and then looks at Java as an object oriented implementation language, including classes, construction, visibility, inheritance, polymorphism, interfaces, abstract classes, and type identification. Lab work moves from analysis and design of a case study to implementation as a Java package of several classes including an application class that implements a command-line interface.
The fourth module introduces GUI programming in Java, starting with the Abstract Windowing Toolkit and moving through chapters on layout management, event handling, and Java Applets. The case study introduced in the previous module is expanded considerably, as a GUI interface is connected to the model, custom events and handlers are added to the model, and the resulting application-driven GUI is rewrapped and delivered via JAR file as an applet.
The fifth and final module of the course introduces the Java Streams model. First the delegation-based stream model itself is covered, and successive chapters look at use of this model in raw file I/O operations and finally at Java Serialization. The case study is again expanded, finally to include dump and load of the entire application dataset through serialization.
Who should attend
Students come to the Java language from a wide variety of backgrounds. This course is designed with the flexibility to meet the needs of these different groups:
- Experienced object oriented programmers, i.e. languages such as C++
- Experienced non-object-oriented programmers, i.e. languages such as C
- Programmers who want to learn Java with GUI-building in mind
- Programmers who want to use Java in server-side or middleware development
Prerequisites
Experience with some programming language other than Java, on any current operating system for which a JVM is available (including all Windows flavors and most Unix flavors). No Java programming experience or reading is required. If you are a C or C++ programmer, you will may find that your natural pace through the course is a little faster than other students'.
What you will achieve
- Primarily, how to program effectively in the Java language
- An understanding of the Java software architecture, and the design decisions which make Java software portable, efficient, secure, and robust
- The ability to configure a simple Java development environment
- The grammar, data types, and flow control constructs of the Java language
- An understanding of Java as a purely object oriented language
- The ability to program GUIs using Java, including using event handling to connect the GUI to an underlying data model
- An understanding of the structure of streams in Java, plus how to use streams to manage file I/O
- The ability to use Java Serialization to internalize and externalize potentially complex graphs of objects
What you will learn
- Module 1: The Java Software Architecture
- The Java Virtual Machine
- Overview of Architecture
- Java Virtual Machine
- Java Runtime Environment
- The Core API
- Java Developer’s Kit
- Portability and Efficiency
- Security
- Robustness - Language Features
- Building Java Software
- Packages
- Tools
- JARs
- Security Model
- The Java Virtual Machine
- Module 2: The Java Language
- Fundamentals
- Source File Format
- Intro to Classes
- Fields and Methods
- Code Grammar and Expressions
- Identifiers
- Operators
- System Class
- Data Types
- Primitive Types
- Type Conversion
- Object References
- Comparing and Assigning References
- Garbage Collection
- Strings
- Arrays
- Flow Control
- Call and return
- Conditional Constructs
- Looping Constructs
- Exceptions
- Threads
- Java Thread Model
- Creating and Running Threads
- Manipulating Thread State
- Creating Thread Classes
- Thread Synchronization
- Fundamentals
- Module 3: Object-Oriented Java Programming
- Object-Oriented Analysis and Design
- Complex Systems
- Abstraction
- Classes
- Responsibilities and Collaborators
- Relationships
- Visibility
- Simple UML
- Polymorphism
- Encapsulation in Java
- Java Classes
- Member Visibility
- Static Members
- Constructors and Finalizers
- Overloading Methods
- Collection Classes
- Inheritance and Polymorphism in Java
- Extending Classes
- Superclass Reference
- Overriding Methods and Polymorphism
- Defining and Implementing Interfaces
- Abstract Classes
- Type Identification
- Inner Classes
- Motivation
- Named Inner Classes
- Outer Object Reference
- Anonymous Inner Classes
- Object-Oriented Analysis and Design
- Module 4. Java Graphical User Interfaces
- The Abstract Windowing Toolkit
- Components
- Containers
- Frames
- Controls
- Menus
- Dialogs
- Layout Management
- LayoutManager Interface
- Implicit Use of LayoutManager
- Standard Layout Managers
- Custom Layout Managers
- Events
- Java Event Model
- Event Types
- Listeners
- Sources
- Connections
- Custom Event Types
- Applets
- Applet Class
- Applet Context
- Applet Security
- Distribution Using JARs
- The Abstract Windowing Toolkit
- Module 5. Java Streams
- The Java Streams Model
- InputStream and OutputStream
- Delegation-Based Stream Model
- Media-Based Streams
- Filtering Streams
- Working with File Systems
- File Class
- Modeling Files and Directories
- Chaining Streams to Files
- Input and Output
- Java Serialization
- Serializable Interface
- ObjectInputStream and ObjectOutputStream
- Introduction to Reflection
- The Serialization Engine
- Transients and Initialization Hooks
- The Java Streams Model
|
Boston University Corporate Education Center, operated by TechSkills LLC 72 Tyng Road | Tyngsboro, MA 01879 | 1.800.288.7246 Copyright © 1997 - 2007 Boston University Corporate Education Center |

