This course is paced to provide a solid foundation in Java™ for programmers without syntax experience in a C-based language. Intensive and hands-on, the course emphasizes becoming productive quickly as a Java programmer. Besides learning the basic structure and syntax of the language, students will also learn object-oriented principles and how they are applied in Java applications. The course then covers the I/O streams and collections API packages. This course is current to Java 7 and uses the Eclipse IDE.
Objectives
Write stand-alone applications using the Java language.
Accurately implement Object-Oriented concepts using Java features such as classes, interfaces and references.
Create well-scoped classes using packages.
Write programs which both handle and create exceptions.
Read and write data using input and output streams.
Use the Java Collections Framework to work with groups of objects.
Detailed Outline
- Course Introduction
- Course Objectives
- Course Overview
- Using the Workbook
- Suggested References
- Getting Started with Java
- What is Java?
- How to Get Java
- A First Java Program
- Compiling and Interpreting Applications
- The JDK Directory Structure
- Eclipse
- Introduction to Eclipse
- Installing Eclipse
- Running Eclipse for the First Time
- Editors Views, and Perspectives
- Setting up a Project
- Creating a New Java Application
- Running a Java Application
- Debugging a Java Application
- Importing Existing Java Code into Eclipse
- Datatypes and Variables
- Primitive Datatypes
- Declarations
- Variable Names
- Numeric Literals
- Character Literals
- String
- String Literals
- Arrays
- Non-Primitive Datatypes
- The Dot Operator
- Operators and Expressions
- Expressions
- Assignment Operator
- Arithmetic Operators
- Relational Operators
- Logical Operators
- Increment and Decrement Operators
- Operate-Assign Operators (+=, etc.)
- The Conditional Operator
- Operator Precedence
- Implicit Type Conversions
- The Cast Operator
- Control Flow
- Statements
- Conditional (if) Statements
- Adding an else if
- Conditional (switch) Statements
- while and do-while Loops
- for Loops
- A for Loop Diagram
- Enhanced for Loop
- The continue Statement
- The break Statement
- Methods
- Methods
- Calling Methods
- Defining Methods
- Method Parameters
- Scope
- So, Why All the static?
- Object-Oriented Programming
- Introduction to Object-Oriented Programming
- Classes and Objects
- Fields and Methods
- Encapsulation
- Access Control
- Inheritance
- Polymorphism
- Best Practices
- Objects and Classes
- Defining a Class
- Creating an Object
- Instance Data and Class Data
- Methods
- Constructors
- Access Modifiers
- Encapsulation
- Using Java Objects
- Printing to the Console
- printf Format Strings
- StringBuilder and StringBuffer
- Methods and Messages
- toString
- Parameter Passing
- Comparing and Identifying Objects
- Destroying Objects
- Using the Primitive-Type Wrapper Classes
- Enumerated Types
- Inheritance in Java
- Inheritance
- Inheritance in Java
- Casting
- Method Overriding
- Polymorphism
- super
- The Object Class
- Advanced Inheritance and Generics
- Abstract Classes
- Interfaces
- Using Interfaces
- Collections
- Generics
- Comparable
- Packages
- Packages
- The import Statement
- Static Imports
- CLASSPATH and Import
- Defining Packages
- Package Scope
- Exception Handling
- Exceptions Overview
- Catching Exceptions
- The finally Block
- Exception Methods
- Declaring Exceptions
- Defining and Throwing Exceptions
- Errors and RuntimeExceptions
- Input/Output Streams
- Overview of Streams
- Bytes vs. Characters
- Converting Byte Streams to Character Streams
- File Object
- Binary Input and Output
- PrintWriter Class
- Reading and Writing Objects
- Closing Streams
- Core Collection Classes
- The Collections Framework
- The Set Interface
- Set Implementation Classes
- The List Interface
- List Implementation Classes
- The Queue Interface
- Queue Implementation Classes
- The Map Interface
- Map Implementation Classes
- Appendix A – Collection Sorting and Tuning
- Sorting with Comparable
- Sorting with Comparator
- Sorting Lists and Arrays
- Collections Utility Methods
- Tuning ArrayList
- Tuning HashMap and HashSet
- Appendix B – Java EE Overview
- Introduction to Java EE
- Java SE Building Blocks
- Web Applications
- Web Services
- Enterprise JavaBeans
- Additional J2EE APIs
- POJO, Dependency Injection and Annotations
- The J2EE Platform
- Appendix C – Eclipse Shortcuts
- Shortcut Key Sequences
- More Shortcut key Sequences