Basic Java Programming for Developers New to OO (C, Mainframe, COBOL)

Hands-on Java Workshop: Gain the skills required to create efficient, scalable high-performance applications using Java.

TT2120

Basic

5 Days

Course Overview

Overview

Geared for experienced developers, Basic Java Programming for Developers New to OO, this hands-on, workshop-style course will provide you with an immersive learning experience that will expand your skillset and open doors to new opportunities within the ever-growing technology landscape. Mastering Java and its powerful capabilities will provide you with the competitive edge you need to stand out in today's fast-paced development world.

Working in a hands-on learning environment led by our expert coach, you’ll thoroughly explore the foundations of the Java platform, essential programming concepts, and advanced topics, ensuring you acquire a strong understanding of the language and its ecosystem. The object-oriented programming principles taught in this course promote code reusability and maintainability, enabling you to streamline development processes and reduce long-term costs.

As you progress through the course, you will also gain familiarity with using an IDE, enhancing your development workflow and collaboration with other Java developers, enabling you to integrate seamlessly into new projects and teams. You’ll also gain practical experience in applying the concepts and techniques learned, solidifying your newly acquired skills and facilitating their direct application in real-world scenarios. You’ll exit this course empowered to create robust, scalable, and efficient Java-based applications that drive innovation and growth for your organization.

NOTE: Developers new or newer to programming should consider the TT2000 Getting Started with Programming, OO and Java Basics as an alternative.

Learning Objectives

Working in an interactive learning environment, led by our expert facilitator, you’ll learn to:

  • Understand the fundamentals of the Java platform, its lifecycle, and the responsibilities of the Java Virtual Machine (JVM), enabling you to create efficient and reliable Java applications.
  • Gain proficiency in using the JDK, including navigating its file structure, utilizing the command-line compiler, and executing Java applications, ensuring a smooth development process.
  • Master the course IDE, including its interface, project management, and module creation, to enhance productivity, collaboration, and overall development workflow.
  • Develop solid skills in writing Java classes, defining instance variables, creating object instances, and implementing main methods, forming a strong foundation in Java programming.
  • Acquire expertise in adding methods to Java classes, writing constructors, and leveraging the 'this' keyword, allowing you to create more sophisticated and customizable Java applications.
  • Comprehend and apply core object-oriented programming concepts, such as encapsulation, inheritance, and polymorphism, to create modular, maintainable, and reusable code.
  • Enhance your knowledge of Java language statements, including arithmetic, comparison, and logical operators, as well as loops and switch expressions, to develop more complex and efficient Java applications.
  • Learn to effectively handle exceptions, create custom exception classes, and use try/catch blocks to ensure the robustness and reliability of your Java applications, minimizing potential runtime issues.
  • Work with specific Java 17 features that are covered in the course include: Switch Expressions, Text blocks, Pattern matching for instanceof, and introducing records as carrier of immutable data.

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  Our team will collaborate with you to understand your needs and will target the course to focus on your specific learning objectives and goals.

 

Course Objectives

Learning Objectives

Working in an interactive learning environment, led by our expert facilitator, you’ll learn to:

  • Understand the fundamentals of the Java platform, its lifecycle, and the responsibilities of the Java Virtual Machine (JVM), enabling you to create efficient and reliable Java applications.
  • Gain proficiency in using the JDK, including navigating its file structure, utilizing the command-line compiler, and executing Java applications, ensuring a smooth development process.
  • Master the course IDE, including its interface, project management, and module creation, to enhance productivity, collaboration, and overall development workflow.
  • Develop solid skills in writing Java classes, defining instance variables, creating object instances, and implementing main methods, forming a strong foundation in Java programming.
  • Acquire expertise in adding methods to Java classes, writing constructors, and leveraging the 'this' keyword, allowing you to create more sophisticated and customizable Java applications.
  • Comprehend and apply core object-oriented programming concepts, such as encapsulation, inheritance, and polymorphism, to create modular, maintainable, and reusable code.
  • Enhance your knowledge of Java language statements, including arithmetic, comparison, and logical operators, as well as loops and switch expressions, to develop more complex and efficient Java applications.
  • Learn to effectively handle exceptions, create custom exception classes, and use try/catch blocks to ensure the robustness and reliability of your Java applications, minimizing potential runtime issues.
  • Work with specific Java 17 features that are covered in the course include: Switch Expressions, Text blocks, Pattern matching for instanceof, and introducing records as carrier of immutable data.

Need different skills or topics?  If your team requires different topics or tools, additional skills or custom approach, this course may be further adjusted to accommodate.  Our team will collaborate with you to understand your needs and will target the course to focus on your specific learning objectives and goals.

Course Prerequisites

Audience & Pre-Requisites

In order to be successful in this course you should have incoming hands-on experience with another programming language. This course is not for non-developers or new developers. Possible roles that may attend this course include:

  • Software Developers: Professionals who have been working with other programming languages and want to expand their skillset by learning Java and its object-oriented features.
  • Web Developers: Those who work on web applications and want to enhance their back-end development capabilities with Java.
  • Mobile App Developers: Developers who wish to enter the world of Android app development, where Java is a widely-used language for creating mobile applications.
  • Full-Stack Developers: Professionals who have experience with front-end technologies and want to deepen their knowledge of back-end development using Java.
  • Game Developers: Developers who are interested in creating games for various platforms, including desktop, mobile, and web, using Java as their primary programming language.

Related Courses / Trivera's Java Developer Suite

This is subset list of some of the core courses in our catalog. Please visit the website for a complete list of offerings.

  • TT2000          Getting Started with Programming, OO and Java Basic for Non-Developers
  • TT2104          Fast Track to Core Java Programming for Experience OO Developers (such as C++, C#) (4 days)
  • TT2120          Basic Java Programming for Developers New to OO (such a C, Mainframe)
  • TT2133          Migrating to Java 11
  • TT2135          Migrating to Java 17
  • TT2211          Intermediate Java Developer Workshop
  • TT2023          Java Developer Journey – Career Experience Program (for core Java, full stack and more) (multi-week)

Next Steps / Follow-on Courses:

  • We offer a wide variety of follow-on courses and workshops for advanced Java skills, Spring, Java for Web / Full Stack, Jakarta / Java EE, REST, Microservices, Unit Testing / TDD, Java secure coding, mobile development and more. Please see our Java Developer Journey Courses & Learning Paths for options based on your specific role and goals. 

Enhanced Learning Services: Please also ask about our Pre-Training Class OnRamp & Prep / Primer offerings, Skills Gap Assessment Services, Case Studies, Knowledge Check Quizzes, Skills Immersion Programs & Camps, Collaborative Mentoring Services and Extended Learning Support & Post Training services.

Course Agenda

Java: A First Look

  1. The Java Platform
  • The Java Platform
  • Lifecycle of a Java Program
  • Responsibilities of JVM
  • Documentation and Code Reuse
  1. Using the JDK
  • Explain the JDK’s file structure
  • Use the command line compiler to compile a Java class
  • Use the command line Java interpreter to run a Java application class
  • Lab: Exploring MemoryViewer
  1. The IntelliJ Paradigm
  • Introduce the IntelliJ IDE
  • The Basics of the IntelliJ interface
  • IntelliJ Projects and Modules
  • Creating and running Java applications
  • Tutorial: Working with IntelliJ

Getting Started with Java

  1. Writing a Simple Class
  • Write a Java class that does not explicitly extend another class
  • Define instance variables for a Java class
  • Create object instances
  • Primitives vs Object References
  • Implement a main method to create an instance of the defined class
  • Lab: Create a Simple Class
  1. Adding Methods to the Class
  • Write a class with accessor methods to read and write instance variables
  • Write a constructor to initialize an instance with data
  • Write a constructor that calls other constructors of the class to benefit from code reuse
  • Use the this keyword to distinguish local variables from instance variables
  • Lab: Create a Class with Methods

OO Concepts

  1. Object-Oriented Programming
  • Real-World Objects
  • Classes and Objects
  • Object Behavior
  • Methods and Messages
  • Lab: Define and use a New Java class
  1. Inheritance, Abstraction, and Polymorphism
  • Encapsulation
  • Inheritance
  • Method Overriding
  • Polymorphism
  • Lab: Define and use Another Java Class
  1. Essential Java Programming
  2. Language Statements
  • Arithmetic operators
  • Operators to increment and decrement numbers
  • Comparison operators
  • Logical operators
  • Return type of comparison and logical operators
  • Use for loops
  • Switch Expressions
  • Switch Expressions and yield
  • Lab: Looping
  • Lab: Language Statements
  1. Using Strings and Text Blocks
  • Create an instance of the String class
  • Test if two strings are equal
  • Get the length of a string Parse a string for its token components
  • Perform a case-insensitive equality test
  • Build up a string using StringBuffer
  • Contrast String, StringBuffer, and StringBuilder
  • Compact Strings
  • Text Blocks
  • Lab: Fun with Strings
  • Lab: Using StringBuffers and StringBuilders
  1. Specializing in a Subclass
  • Constructing a class that extends another class
  • Implementing equals and toString
  • Writing constructors that pass initialization data to parent constructor
  • Using instanceof to verify type of an object reference
  • Pattern matching for instanceof
  • Overriding subclass methods
  • Safely casting references to a more refined type
  • Lab: Creating Subclasses
  1. Fields and Variables
  • Discuss Block Scoping Rules
  • Distinguish between instance variables and method variables within a method
  • Explain the difference between the terms field and variable
  • List the default values for instance variables
  • Final and Static fields and methods
  • Local Variable type inference
  • Lab: Field Test
  1. Using Arrays
  • Declaring an array reference
  • Allocating an array
  • Initializing the entries in an array
  • Writing methods with a variable number of arguments
  • Lab: Creating an Array
  1. Records
  • Data Objects in Java
  • Introduce records as carrier of immutable data
  • Defining records
  • Lab: Record
  1. Java Packages and Visibility
  • Use the package keyword to define a class within a specific package
  • Discuss levels of accessibility/visibility
  • Using the import keyword to declare references to classes in a specific package
  • Using the standard type naming conventions
  • Visibility in the Java Modular System
  • Correctly executing a Java application class
  • The Java modular system
  • Defining Modules
  • Lab: Defining Modules

Object Oriented Development

  1. Inheritance and Polymorphism
  • Write a subclass with a method that overrides a method in the superclass
  • Group objects by their common supertype
  • Utilize polymorphism
  • Cast a supertype reference to a valid subtype reference
  • Use the final keyword on methods and classes to prevent overriding
  • Lab: Salaries - Polymorphism
  1. Interfaces and Abstract Classes
  • Define supertype contracts using abstract classes
  • Implement concrete classes based on abstract classes
  • Define supertype contracts using interfaces
  • Implement concrete classes based on interfaces
  • Explain advantage of interfaces over abstract classes
  • Explain advantage of abstract classes over interfaces
  • Static, default and private methods in interfaces
  • Lab: Mailable - Interfaces
  1. Sealed classes
  • Introduce Sealed classes
  • The sealed and permits modifiers
  • Sealed Interfaces

Exception Handling

  1. Introduction to Exception Handling
  • Introduce the Exception architecture
  • Defining a try/catch blocks
  • Checked vs Unchecked exceptions
  • Lab: Exceptions
  1. Exceptions
  • Defining your own application exceptions
  • Automatic closure of resources
  • Suppressed exceptions
  • Handling multiple exceptions in one catch
  • Helpful Nullpointers
  • Enhanced try-with-resources
  • Lab: Exceptional

Java Developer's Toolbox

  1. Developing applications
  • Introduce the wrapper classes
  • Explain Autoboxing and Unboxing
  • Converting String representations of primitive numbers into their primitive types
  • Defining Enumerations
  • Using static imports
  • Deprecating methods
  • Lab: Using Primitive Wrappers
  • Lab: Enumerations (optional)

Advanced Java Programming

  1. Introduction to Generics
  • Generics and Subtyping
  • Bounded Wildcards
  • Generic Methods
  • Legacy Calls To Generics
  • When Generics Should Be Used
  • Lab: DynamicArray
  1. Lambda Expressions and Functional Interface
  • Understanding the concept of functional programming
  • Writing lambda expressions
  • Understanding functional interfaces
  • Lab: Using Lambda

Working with Collections

  1. Collections
  • Provide an overview of the Collection API
  • Review the different collection implementations (Set, List and Queue)
  • Explore how generics are used with collections
  • Examine iterators for working with collections
  • Lab: Create a simple Game using Collections
  1. Using Collections
  • Collection Sorting
  • Comparators
  • Using the Right Collection
  • Lambda expressions in Collections
  • Lab: Using Collections

Bonus Topics: Time Permitting

  1. Streams
  • Understanding the problem with collections in Java
  • Thinking of program solutions in a declarative way
  • Use the Stream API to process collections of data
  • Understand the difference between intermediate and terminal stream operations
  • Filtering elements from a Stream
  • Finding element(s) within a Stream
  • Collecting the elements from a Stream into a List
  • takeWhile and dropWhile intermediate operations
  • Lab: Working with Streams
  1. Collectors
  • Using different ways to collect the items from a Stream
  • Grouping elements within a stream
  • Gathering statistics about numeric property of elements in a stream
  • Lab: Collecting

Course Materials

Student Materials: Each participant will receive a digital Student Guide and/or Course Notes, code samples, software tutorials, step-by-step written lab instructions (as applicable), diagrams and related reference materials and resource links. Students will also receive the project files (or code, if applicable) and solutions required for the hands-on work.

Hands-On Setup Made Simple! Our dedicated tech team will work with you to ensure our ‘easy-access’ cloud-based course environment, or local installation, is accessible, fully-tested and verified as ready to go well in advance of the course start date, ensuring a smooth start to class and effective learning experience for all participants. In some cases we can also help you install this course locally if preferred. Please inquire for details and options.

Every-Course Extras = High-Value & Long-Term Learning Support! All Public Schedule courses include our unique EveryCourse Extras package (Course Recordings, Live Instructor Follow-on Support, Free *Live* Course Refresh Re-Takes, early access to Special Offers, Free Courses & more). Please inquire for details.

Raise the bar for advancing technology skills

Attend a Class!

Live scheduled classes are listed below or browse our full course catalog anytime

Special Offers

We regulary offer discounts for individuals, groups and corporate teams. Contact us

Custom Team Training

Check out custom training solutions planned around your unique needs and skills.

EveryCourse Extras

Exclusive materials, ongoing support and a free live course refresh with every class.

Attend a Course

Please see the current upcoming available open enrollment course dates posted below. Please feel free to Register Online below, or call 844-475-4559 toll free to connect with our Registrar for assistance. If you need additional date options, please contact us for scheduling.

Course Title Days Date Time Price
Basic Java Programming for Developers New to OO (C, Mainframe, COBOL) 5 Days Jun 12 to Jun 16 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Basic Java Programming for Developers New to OO (C, Mainframe, COBOL) 5 Days Jul 12 to Jul 13 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Basic Java Programming for Developers New to OO (C, Mainframe, COBOL) 5 Days Aug 14 to Aug 18 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Basic Java Programming for Developers New to OO (C, Mainframe, COBOL) 5 Days Aug 14 to Aug 18 10:00 AM to 06:00 PM EST $2,395.00 Enroll
Basic Java Programming for Developers New to OO (C, Mainframe, COBOL) 5 Days Sep 20 to Sep 21 10:00 AM to 06:00 PM EST $2,395.00 Enroll

Learning is Twice as Nice!
Buy One Get One Free!

Enroll by May 31 in any TWO public classes in 2023 for the price of ONE! 

Click for Details & Additional Offers

Learn. Explore. Advance!

Extend your training investment! Recorded sessions, free re-sits and after course support included with Every Course
Trivera MiniCamps
Gain the skills you need with less time in the classroom with our short course, live-online hands-on events
Trivera QuickSkills: Free Courses and Webinars
Training on us! Keep your skills current with free live events, courses & webinars
Trivera AfterCourse: Coaching and Support
Expert level after-training support to help organizations put new training skills into practice on the job

The voices of our customers speak volumes

Special Offers
Limited Offer for most courses.

SAVE 50%

Learn More