Mastering Java Object Oriented Programming

A complete and easy guide to Java Object Oriented Programming.
3.0 (6 ratings)
Instead of using a simple lifetime average, Udemy calculates a
course's star rating by considering a number of different factors
such as the number of ratings, the age of ratings, and the
likelihood of fraudulent ratings.
55 students enrolled
Sale Ends Today!
70% off
Take This Course
  • Lectures 24
  • Length 2 hours
  • Skill Level All Levels
  • Languages English, captions
  • Includes Lifetime access
    30 day money back guarantee!
    Available on iOS and Android
    Certificate of Completion
Wishlisted Wishlist

How taking a course works


Find online courses made by experts from around the world.


Take your courses with you and learn anywhere, anytime.


Learn and practice real-world skills and achieve your goals.

About This Course

Published 12/2014 English Closed captions available

Course Description

Java is an Object Oriented Programming (OOP) language. Mastering OOP concepts and know how to apply those concepts into programming is trivial skills if you want to be a Java professional.

In this course you will not only learn all the core OOP concepts, but you will also learn how and when to transfer those concepts into Java language.

Also, I will use real life examples with images to demonstrate and elaborate on those concepts so that you can get the best understanding of OOP model.

Not only OOP concepts will be demonstrated fully in this course, you will also learning many other useful techniques such as static members, inner class, anonymous class, final modifiers, and effectively final.

I will also show you some new features in Java 8 including static and default methods in interface, and the omitting of the final keyword with the effectively final variable.

Also, I will show you with example of one of the most important principles in OOP: the open_closed principle so that you can see the power of OOP paradigm.

And most importantly, I will walk you through step by step in building a complete and working application called Book Management System. The application includes common features such as add a new book, update a book based on its ISBN, remove a book based on its ISBN, and list all the book information.

How to get the most benefits of the course?

To get the most benefits of the course, before starting the first lecture, I would recommend you to take the 50 question quiz first. Don't worry if you never learned Object Oriented Programming before or you just have a little bit skills. Just do the quiz, if you don't know, just guess.

After finishing the quiz, don't worry about the results then, just take all lectures one by one to learn all the fundamentals as well as advanced techniques.

After completing all the lectures, take the quiz again to see if you make a progress. Each question in the quiz also has explanation for answers, and I would highly recommend you to read these explanations to revise what you have learned.

What are the requirements?

  • Students who take this course should already have some basic Java skills.
  • All the course source code are created in Netbeans IDE 8 running on Java 8. However, students can use any IDE they are familiar with because the source code is IDE-independent.
  • Netbeans and Java 8 can be freely downloaded

What am I going to get from this course?

  • Understand core concepts of Object Oriented Programming
  • Apply Object Oriented Programming concepts in Java
  • Build a complete and working application using Object Oriented Programming techniques

Who is the target audience?

  • Students who want to understand clearly Object Oriented Programming Concepts
  • Students who want to sharpen their OOP Skills
  • Students who want to be better in Object Oriented Programming in Java
  • Students who has some basic Java skills and want to advance their skills to be Java Professionals

What you get with this course?

Not for you? No problem.
30 day money back guarantee.

Forever yours.
Lifetime access.

Learn on the go.
Desktop, iOS and Android.

Get rewarded.
Certificate of completion.


50 questions

Test your OOP skills with 50 questions including answer explanations

Section 1: OOP Introduction

This lecture shows you general concepts about Objects and Classes, and how they are related to each other.


In this lecture, I will use real life examples to demonstrate the inheritance concepts and what it is used for in OOP.


At the end of this lecture, you will be able to:

  • Understand the Abstraction and Encapsulation concepts and how they are related in OOP world
  • Understand the concept of Interface and why it is used in OOP applications

One of the core concepts in OOP: polymorphism. This is also one of the ones that causes confused to beginners. I will use real life examples to explain this concepts.

Section 2: OOP Implementation

Using class and objects are basic skills in order to work with any OOP languages. In this lecture, you will learn:

  • How to implement class in Java?
  • How to create objects from a class?
  • What is constructor and how it is used along with object creation process?
  • What and how is the this keyword used for?

Java source code files are organized into packages. Package is also related to other concepts that we will come across in other topics in this course. This lecture will show you how to create packages in Java and how to use classes that are in different packages with the import statement.


One of the fundamental concepts in OOP model is Inheritance. It is allowed code re-using. In this lecture, you will learn:

  • How to implement inheritance in Java using the extends keyword?
  • How inheritance implementation affects the object creation process?

This lecture will discuss:

What is method overriding and how it is used in Java?

What is method overloading and how it is used in Java class?

When to use method overriding and method overloading as well as the differences between the 2 techniques?


At the end of this lecture, you will be able to apply access modifiers to implement the Encapsulation concept. The four access modifiers will be discussed in this lectures include: public, protected, default, and private.


This lecture is a continuation of the Lecture 9. In this lecture, you will learn how to apply access modifiers into encapsulation implementation with getter and setter methods. You will also learns a tip in Netbeans that can be used to quickly generate getter and setter methods.


There are many ways to implement the polymorphism concept in Java. This lectures will show you how to use abstract class and how to achieve polymorphism using abstract class.


In the last lecture, you learned how to implement polymorphism using abstract class. This lecture will show you how to achieve polymorphism concept using interface. Also, you will learn how interface can inherit from other interfaces so that it can reduce the number of interfaces a class can implement.


Prior to Java 8, it is not allowed to have implementation methods in an interface. However, Java 8 now supports new features, in which it allows have implementation methods in interface: static and default methods.

This helps to add more methods to the interface without breaking the code in the implementing classes.


In this lecture, I will show the Open_Closed principle with examples. The principle can be used as a guide that helps developers to design OOP applications that are easy to extend, upgrade, and maintain.


To understand the differences between abstract class and interface, I will use an example of when to use abstract class and when to use interface. Those concepts usually confuse beginners


At the end of this lecture, you will be able to:

  • understand what are instance variables and what are reference variables.
  • understand what are static members, including variables and methods, and how they are different from instance variables.
  • understand different kinds of memory locations that are used to store instance and static variables

I will introduce the final modifier and how it is applied on variables, methods, and classes. I'll also introduce the Math class in this lecture.


In this lecture, we will discuss:

  • what are inner classes and how to use them?
  • what are local inner classes and what should be noticed when a local inner class assesses a local variable?
  • a new feature in Java 8: effectively final variables

This lecture will discuss of how to implement abstract methods in an interface or an abstract class using Anonymous class, which is a kind of local inner classes we have discussed in the last lecture.


In will introduce the 2 most commonly used methods in the Object class:

  • equals() method that can be used to compare 2 objects
  • toString() method that can be used to return a string representing for an object
Section 3: Implement Book Management System

In this lecture, you will:

  • analyze the requirements for our Book Management System
  • extract data and operations from the requirements
  • identity the constraints in our requirements
  • design necessary classes and methods for our application

I will walk you through step by step in building the BookInterface, Book class, and the Menu class.


We will implement the class BookListWithArray. This class contains all the implementations in our program.


This lecture will put everything into business logic to form a complete application.

At the end of this lecture, you should be able to get your application running with full features.

Students Who Viewed This Course Also Viewed

  • Loading
  • Loading
  • Loading

Instructor Biography

Sera Nguyen, Developer, Architect, Professor

Hi, my is Sera Nguyen and I have a big interest in Software Programming. After completing my Computer Science degree, I was employed as Embedded Software Engineer at Renesas Corporation, then Software Architect at CSC Corporation. After more than 6 years in the Software Industry and completing my Master degree, I became a full time University Professor specializing in Software Engineering Faculty. Currently, I am still working full time as Professor and contracting trainer for software companies and doing research for my PhD degree in software architecture design field.

Ready to start learning?
Take This Course