Master Java fundamentals through practical lessons on classes, inheritance, collections, and exceptions. Cement your knowledge by building a working hotel reservation system to showcase your new skills.
Overview
Syllabus
- Introduction to the Course
- Get an overview of the course structure, objectives, key topics, and expectations to prepare for a successful learning journey.
- Introduction to Java Development Environment
- Discover the Java platform, its components (JVM, JRE, JDK), and how Java code is compiled and run on any OS, including new Java 25 compact source file features.
- Set Up Java Development Environment with VSCode in Udacity Workspace
- Set up Java in Udacity Workspace, verify the environment, and write interactive Java programs with input, output, string variables, and terminal workflows using VSCode.
- Introduction to Variables and Data Types
- Learn how to declare, initialize, and use variables of different Java data types, handle type conversions, constants, variable scope, and follow naming conventions.
- Implement Variables and Data Types in Java Programs
- Practice declaring and using Java variables and data types, parsing input, mixing int and double, using constants, and avoiding integer division errors in real programs.
- Introduction to Operators and Control Flow
- Learn to use operators and control flow in Java, including if-else, switch, loops, break, and continue, to write dynamic, responsive programs that make decisions and repeat tasks.
- Implement Control Flow Structures in Java Applications
- Apply Java control flow structures (while loops, switch, if-else, for, continue) to build real programs: a grade classifier and a menu-driven smart calculator with input validation.
- Introduction to Classes, Objects, and Methods
- Explore Java classes, objects, constructors, methods, and encapsulation. Learn to design your own types, use access modifiers, and build robust, object-oriented code.
- Create Classes and Objects for Java Applications
- Learn to create Java classes in their own files, use constructors and methods, apply overloading and delegation, and manage object state for robust, reusable applications.
- Introduction to OOP Principles
- Learn the core principles of OOP, especially encapsulation, using private fields, public methods, getters, setters, validation, and composition for maintainable Java classes.
- Apply Encapsulation in Java Classes
- Practice Java encapsulation by hiding fields, creating validating getters/setters, delegating constructors, using boolean getter conventions, and linking objects via composition.
- Introduction to Inheritance and Interfaces
- Learn how Java inheritance and interfaces enable code reuse, abstraction, and polymorphism, and when to use extends, implements, or composition for clean, flexible designs.
- Implement Inheritance and Polymorphism in Java
- Learn how to implement inheritance, interfaces, and polymorphism in Java, using real-world class hierarchies, abstract classes, interfaces, and pattern matching instanceof.
- Introduction to Java Collections Framework
- Explore Java's Collections Framework: understand List, Set, and Map, their core implementations, and how to choose the best collection type for different programming needs.
- Work with Collections in Java Applications
- Master Java Collections by using List, Set, and Map to efficiently manage ordered items, unique elements, and key-value pairs in real applications.
- Introduction to Generics and Type Safety
- Discover Java generics to write reusable, type-safe code. Learn generic classes, methods, bounded type parameters, wildcards, and the PECS principle for safe flexibility.
- Apply Generics to Java Collections and Classes
- Learn to create type-safe, reusable Java classes and collections using generics, including bounded type parameters, the diamond operator, and nested generics with practical exercises.
- Introduction to Exception Handling
- Learn Java exception handling: organize errors, catch and throw exceptions, create custom types, and manage resources with try-catch, finally, and try-with-resources.
- Implement Exception Handling in Java Programs
- Learn to use Java's try-catch, multi-catch, custom checked exceptions, and try-with-resources to build robust, error-tolerant programs with reliable resource cleanup.
- Introduction to String and Date/Time Processing
- Learn to effectively process strings and date/time in Java: understand immutability, use StringBuilder and java.time API, and apply key methods for transformation and formatting.
- Manipulate Strings and Dates in Java Applications
- Master Java string manipulation and date/time handling with StringBuilder, substring, LocalDate, DateTimeFormatter, ChronoUnit, and .formatted() for real-world validation and formatting tasks.
- FreshBox Meal Order Kit
- You will build FreshBox, a console-based meal kit ordering system where customers can browse kits, place orders, and manage deliveries using core Java programming skills.
Taught by
Jeff Phillips