Booking options
Price on Enquiry
Price on Enquiry
Delivered Online
5 days
All levels
Duration
5 Days
30 CPD hours
This course is intended for
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.
Overview
This 'skills-centric' course is about 50% hands-on lab and 50% lecture, designed to train attendees in core OO coding and Java development skills, coupling the most current, effective techniques with the soundest industry practices. Our engaging instructors and mentors are highly experienced practitioners who bring years of current 'on-the-job' experience into every classroom.
Working in a hands-on learning environment, guided by our expert team, attendees will learn to:
Understand what OO programming is and what the advantages of OO are in today's world
Work with objects, classes, and OO implementations
Understand the basic concepts of OO such as encapsulation, inheritance, polymorphism, and abstraction
Understand not only the fundamentals of the Java language, but also its importance, uses, strengths and weaknesses
Understand the basics of the Java language and how?it relates to OO programming and the Object Model
Learn to use Java exception handling
Understand and use classes, inheritance and polymorphism
Understand and use collections, generics, autoboxing, and enumerations
Become familiar with the concept of functional programming using Lambda Expressions
Process large amounts of data using the Stream API introduced in Java 8
Discover the new Date/Time API
Use the JDBC API for database access
Work with annotations
Take advantage of the Java tooling that is available with the programming environment being used in the class
Java 8 Features: Lambda Expressions, Method and Constructor references, The Streams API, Collectors, The Optional class
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
The Java Platform
The Java Platform
Lifecycle of a Java Program
Responsibilities of JVM
Documentation and Code Reuse
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
The IntelliJ Paradigm
Introduce the IntelliJ IDE
The Basics of the IntelliJ interface
IntelliJ Projects and Modules
Creating and running Java applications
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
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
Object-Oriented Programming
Real-World Objects
Classes and Objects
Object Behavior
Methods and Messages
Inheritance, Abstraction, and Polymorphism
Encapsulation
Inheritance
Method Overriding
Polymorphism
Essential Java Programming
Essential Java Programming
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
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
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
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
Using Arrays
Declaring an array reference
Allocating an array
Initializing the entries in an array
Writing methods with a variable number of arguments
Records
Data Objects in Java
Introduce records as carrier of immutable data
Defining records
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
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
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
Sealed classes
Introduce Sealed classes
The sealed and permits modifiers
Sealed Interfaces Exception Handling
Introduction to Exception Handling
Introduce the Exception architecture
Defining a try/catch blocks Checked vs Unchecked exceptions
Exceptions
Defining your own application exceptions
Automatic closure of resources
Suppressed exceptions
Handling multiple exceptions in one catch
Helpful Nullpointers
Enhanced try-with-resources Java Developer's Toolbox
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 Advanced Java Programming
Introduction to Generics
Generics and Subtyping
Bounded Wildcards
Generic Methods
Legacy Calls To Generics
When Generics Should Be Used
Lambda Expressions and Functional Interface
Understanding the concept of functional programming
Writing lambda expressions
Understanding functional interfaces
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
Using Collections
Collection Sorting
Comparators
Using the Right Collection
Lambda expressions in Collections
Bonus Topics: Time Permitting
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
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
Nexus Human, established over 20 years ago, stands as a pillar of excellence in the realm of IT and Business Skills Training and education in Ireland and the UK....