Java Programmer

If you're ready to learn Java, this training course is the perfect place to start. Taking an introductory approach, this Java training course covers most Java syntax elements, concentrating on fundamental and universally useful elements, while providing an overview of many more advanced elements. You will learn to write useful Java classes, applying Object-Oriented concepts such as inheritance, and create Java programs that work with these classes. Early in the course, the concept of objects is...

6 Months / 100 Course Hrs
Open Enrollment
Offered in partnership with your preferred school

George Mason University

Change School
Learning method

for additional information

Course code: GES337

What you will learn

  • Understand the "write once, run anywhere" concept
  • Understand and learn how to create basic Java objects
  • Learn how to implement flow-control concepts in Java
  • Understand Java's package concept and create packages of Java classes
  • Understand Java arrays and write code to create and use arrays
  • Learn how to write Java classes using inheritance
  • Understand and use the concept of polymorphism in an application
  • Understand how Java's exception-handling mechanism works and learn how to apply exception-handling to Java applications
  • Learn how to use elements from the Java API library, including the Collections classes

How you will benefit

  • Prepare yourself for an entry-level position as a Java programmer
  • Further your career in coding by learning a new programming language
  • Set yourself apart from competitors by refining your skills in a regulated environment
  • Create Java programs that can be shown to prospective employers or used as a portfolio piece

How the course is taught

  • Self-paced, online course
  • 6 Months to complete
  • Open enrollment, begin anytime
  • 100 course hours
  1. Java Introduction
    1. Conventions in These Notes
    2. The Java Environment - Overview
    3. Writing a Java Program
    4. Obtaining The Java Environment
    5. Setting Up Your Java Environment
    6. Creating a Class that Can Run as a Program
    7. Useful Stuff Necessary to Go Further
    8. Using an Integrated Development Environment
    9. Running a Simple Java Program
    10. Using the Java Documentation
  2. Java Basics
    1. Basic Java Syntax
    2. Variables
    3. Data
    4. Constants and the final Keyword
    5. Mathematics in Java
    6. Creating and Using Methods
    7. Variable Scope
    8. Method Exercise
  3. Java Objects
    1. Objects
    2. Object-oriented Languages
    3. Object Definition
    4. References
    5. Defining a Class
    6. More on Access Terms
    7. Adding Data Members to a Class
    8. Standard Practices for Fields and Methods
    9. Java Beans
    10. Bean Properties
    11. Constructors
    12. Instantiating Objects Revisited
    13. Important Note on Constructors
    14. Method Overloading
    15. The this Keyword
    16. Using this to Call Another Constructor
    17. static Elements
    18. The main Method
    19. Garbage Collection
    20. Java Packages
    21. Compiling with Packages
    22. Working with Packages
    23. Variable Argument Lists (varargs)
    24. Creating Documentation Comments and Using Javadoc
    25. Primitives and Wrapper Classes
    26. Java Objects
    27. Compiling and Executing with Packages
    28. String, String Buffer, and StringBuilder
    29. Encapsulation
    30. Object-oriented Programs
  4. Mid-term exam
  5. Comparisons and Flow Control Structures
    1. Boolean-valued Expressions
    2. Comparison Operators
    3. Comparing Objects
    4. Conditional Expression Examples
    5. Complex Boolean Expressions
    6. Simple Branching
    7. The if Statement
    8. if Statement Examples
    9. Two Mutually Exclusive Branches
    10. Comparing a Number of Mutually Exclusive Options - The switch Statement
    11. Comparing Two Objects
    12. Conditional Expression
    13. Additional Loop Control: break and continue
    14. Continuing a Loop
    15. Classpath, Code Libraries, and Jar Files
    16. Creating and Using an External Library
    17. Compiling to a Different Directory
  6. Arrays
    1. Defining and Declaring Arrays
    2. Instantiating Arrays
    3. Initializing Arrays
    4. Working with Arrays
    5. Enhanced for Loops - the For-Each Loop
    6. Array Variables
    7. Copying Arrays
    8. Using the args Array
    9. Arrays of Objects
    10. Multi-Dimensional Arrays
    11. Multidimensional Arrays in Memory
    12. Example - Printing a Picture
    13. Typecasting with Arrays of Primitives
  7. Inheritance
    1. Inheritance
    2. Payroll with Inheritance
    3. Polymorphism
    4. Creating a Subclass
    5. Inheritance and Access
    6. Inheritance and Constructors - the super Keyword
    7. Inheritance and Default Superclass Constructors
    8. Typecasting with Object References
    9. More on Overriding
    10. Other Inheritance-related Keywords
    11. Methods Inherited from Object
    12. Checking an Object's Type: Using instanceof
    13. The Instantiation Process at Runtime
    14. Derived Class Objects
    15. Derived Class Methods that Override Base Class Methods
    16. Object Typecasting Example
    17. Typecasting with Arrays of Objects
  8. Interfaces
    1. Interfaces
    2. Creating an Interface Definition
    3. Implementing Interfaces
    4. Reference Variables and Interfaces
    5. Interfaces and Inheritance
    6. Some Uses for Interfaces
    7. Annotations
    8. Using Annotations
    9. Interfaces
    10. Annotation Details
  9. Exceptions
    1. Exceptions
    2. Handling Exceptions
    3. Exception Objects
    4. Attempting Risky Code - try and catch
    5. Guaranteeing Execution of Code - The finally Block
    6. Letting an Exception be Thrown to the Method Caller
    7. Throwing an Exception
    8. Exceptions and Inheritance
    9. Creating and Using Your Own Exception Classes
    10. Rethrowing Exceptions
    11. Initializer Blocks
    12. Logging
    13. Log Properties
    14. Assertions
  10. Collections
    1. Collections
    2. Using the Collection Classes
    3. Using the Iterator Interface
    4. Creating Collectible Classes
    5. Generics
    6. Bounded Types
    7. Extending Generic Classes and Implementing Generic Interfaces
    8. Generic Methods
    9. Variations on Generics - Wildcards
    10. Type Erasure
    11. Multiple-bounded Type Parameters
    12. Working with Streams and Lambda expressions
  11. Inner Classes
    1. Inner Classes, aka Nested Classes
    2. Inner Class Syntax
    3. Instantiating an Inner Class Instance from within the Enclosing Class
    4. Inner Classes Referenced from Outside the Enclosing Class
    5. Referencing the Outer Class Instance from the Inner Class Code
    6. Better Practices for Working with Inner Classes
    7. Enums
    8. Method Inner Classes
    9. Anonymous Inner Classes
  12. Final Exam
  13. Final Project: Hotel Reservations Case Study


Nat Dunn

Nat Dunn founded Webucator in 2003 to combine his passion for technical training with his business expertise and to help companies benefit from both. His previous experience was in sales, business and technical training, and management. Nat has an MBA from Harvard Business School and a BA in International Relations from Pomona College.


There are no prerequisites for this course, however prior knowledge of any programming language is helpful.


Hardware Requirements:

  • This course can be taken on a PC or a Mac.
  • Dual monitors are helpful but not required.

Software Requirements:

  • PC: Windows 10 or later.
  • Mac: macOS 11.0 or later.
  • Browser: The latest version of Google Chrome or Mozilla Firefox are preferred. Microsoft Edge and Safari are also compatible.
  • Java (download and installation instructions are provided in course).
  • Visual Studio Code (download and installation instructions are provided in course).
  • Adobe Acrobat Reader.


  • Email capabilities and access to a personal email account.

Instructional Material Requirements:

The instructional materials required for this course are included in enrollment and will be available online.

Yes, ed2go courses are completely online. However, keep in mind that not all certifying bodies or industry-specific certifications are recognized internationally. Please review your country's regulations prior to enrolling in courses that prepare for certification.

This course does not prepare you for a certification but prepares you to enter the job market as an entry-level Java programmer or to continue your education learning other programming languages.

This course is open enrollment, so you can register and start the course as soon as you are ready. Access to your course can take 24-48 business hours.

This course is self-paced and open enrollment, so you can start when you want and finish at your own pace. When you register, you'll receive six (6) months to complete the course.

The time allotted for course completion has been calculated based on the number of course hours. However, if you are unable to complete the course, contact the student advising team to see what options you may have available to work out a suitable completion date. Please note that an extension fee may be charged.

The course instructor will be available by email to answer any questions and provide feedback on your performance. Occasionally, your course may be supported by a team of industry experts. You will also receive support from the student advising team.

Upon successful completion of the course, you will be awarded a Certificate of Completion.

This course will provide you with the skills you need to obtain an entry-level position in most cases. Potential students should always do research on the job market in their area before registering.

This course is non-credit, so it does not qualify for federal aid, FAFSA and Pell Grant. In some states, vocational rehab or workforce development boards will pay for qualified students to take our courses. Additionally, some students may qualify for financial assistance when they enroll, if they meet certain requirements. Financing is available from select schools. Learn more about financial assistance.

If you have questions that are not answered on our website, representatives are available via LIVE chat. You can also call us at 1-877-221-5151 during regular business hours to have your questions promptly answered. If you are visiting us during non-business hours, please send us a question using the "Contact Us" form.