This comprehensive course is designed to prepare you for a successful career in Java programming and software development, with a strong focus on object-oriented programming (OOP) principles. By leveraging Java, one of the most popular and versatile programming languages, you will gain a solid foundation in both Java programming and object-oriented concepts.

Saving $160 on access to 10,000+ programs is a holiday treat. Save now.


Recommended experience
What you'll learn
Apply the concepts of OOP including abstraction, encapsulation, inheritance, and polymorphism to implement efficient and modular Java applications.
Create robust and maintainable code through Java classes, objects, and constructors using access modifiers, variable types, and control structures.
Apply static, final, overloading, abstract classes, interfaces, and object parameters to extend and enhance the functionality of Java applications.
Explain the use of generics and how to handle exceptions, perform file input/output operations, and implement multithreading concepts.
Skills you'll gain
Details to know

Add to your LinkedIn profile
November 2025
143 assignments
See how employees at top companies are mastering in-demand skills

There are 10 modules in this course
In this module, you will be introduced to the fundamentals of object-oriented programming (OOP) and the Java programming language. You will learn about the basic principles of OOP, such as objects, classes, abstraction, encapsulation, inheritance, and polymorphism. Additionally, you will explore the structure of a Java program, primitive types, variables, and control statements. By the end of this module, you will have a solid foundation in OOP and Java programming concepts.
What's included
14 videos18 readings14 assignments1 plugin
In this module, you will learn about defining classes, objects, and constructors in Java. You will explore access modifiers, object creation, constructors, instance fields and methods, the difference between class and instance variables, mutable and immutable objects, command-line arguments, and use the Scanner class to read input.
What's included
13 videos16 readings14 assignments2 ungraded labs1 plugin
In this module, you will explore the static and final keywords in Java, method and constructor overloading, working with objects as method parameters, and handling arrays. You will learn about static variables and methods, final variables and methods, various overloading techniques, and objects as parameters and return type methods, and implement one-dimensional and two-dimensional arrays using the Arrays class.
What's included
14 videos17 readings15 assignments1 ungraded lab
This module covers the essential concepts of inheritance, abstract classes, and interfaces in Java. You will learn about extending classes, method overriding, polymorphism, and the use of interfaces to implement multiple inheritance. The module also introduces nested, inner, and anonymous classes, as well as the comparable and comparator interfaces for comparing objects.
What's included
13 videos16 readings14 assignments1 ungraded lab1 plugin
In this module, you will explore the concept of generic programming in Java, which allows you to create classes and methods that work with different types of objects. You will learn about generic classes, interfaces, bounded types, and wildcards. Additionally, this module will introduce you to the Java Collections Framework, covering essential classes like ArrayList, LinkedList, Set, and Map. You will also learn about wrapper classes, autoboxing, and unboxing, which help you work with primitive types and objects seamlessly.
What's included
13 videos16 readings14 assignments1 ungraded lab
In this module, you will delve into the crucial aspect of Java programming, which is exception handling. Exception handling allows programmers to manage errors and unexpected situations that may arise during program execution. The module also covers file handling in Java, which enables reading and writing data to and from files. Key concepts covered in this module include exception types, try-catch blocks, finally block, throw and throws keywords, custom exceptions, and various file handling classes.
What's included
13 videos16 readings14 assignments3 ungraded labs1 plugin
In this module, you will dive deeper into file handling and explore the Java Object Model. This module covers advanced file handling concepts like buffered streams, appending to files, and manipulating file properties. You will also learn about Java’s type system, object casting, the Object class, cloning, serialization, and Java’s Reflection API.
What's included
14 videos17 readings15 assignments1 ungraded lab
This module focuses on the fundamental concepts of multithreading in Java, including the differences between multithreading and multitasking. It introduces the Thread class and the Runnable interface for creating and managing threads. Students will learn about thread states, life cycles, priorities, daemon threads, and synchronization. The module also covers the prevention and handling of deadlocks and methods for inter-thread communication.
What's included
14 videos17 readings15 assignments1 ungraded lab
This module explores various best practices, additional concepts, and advanced techniques for Java programming. The key concepts covered in this module include coding standards, code review, refactoring, debugging, unit testing, memory management, garbage collection, common libraries and frameworks, JavaFX, networking, performance optimization, monitoring, and security best practices.
What's included
13 videos15 readings14 assignments1 plugin
In this final module, we will recap the key concepts covered throughout the course and explore various real-world applications of Java and object-oriented programming (OOP). You will learn about the different domains where Java is widely used, such as web development, mobile app development, desktop applications, big data, machine learning, enterprise applications, and the Internet of Things (IoT). Additionally, we will discuss the importance of continuous learning, staying updated in Java and OOP, advanced Java topics, and resources to help you pursue a career in Java development.
What's included
14 videos14 readings14 assignments1 plugin
Instructor

Explore more from Software Development
Status: Free Trial
Status: Free Trial
Status: Free TrialBoard Infinity
Status: Free TrialUniversity of London
Why people choose Coursera for their career





Open new doors with Coursera Plus
Unlimited access to 10,000+ world-class courses, hands-on projects, and job-ready certificate programs - all included in your subscription
Advance your career with an online degree
Earn a degree from world-class universities - 100% online
Join over 3,400 global companies that choose Coursera for Business
Upskill your employees to excel in the digital economy
Frequently asked questions
To access the course materials, assignments and to earn a Certificate, you will need to purchase the Certificate experience when you enroll in a course. You can try a Free Trial instead, or apply for Financial Aid. The course may offer 'Full Course, No Certificate' instead. This option lets you see all course materials, submit required assessments, and get a final grade. This also means that you will not be able to purchase a Certificate experience.
When you enroll in the course, you get access to all of the courses in the Specialization, and you earn a certificate when you complete the work. Your electronic Certificate will be added to your Accomplishments page - from there, you can print your Certificate or add it to your LinkedIn profile.
Yes. In select learning programs, you can apply for financial aid or a scholarship if you can’t afford the enrollment fee. If fin aid or scholarship is available for your learning program selection, you’ll find a link to apply on the description page.
More questions
Financial aid available,


