Heard about object-oriented programming, but not sure what it is? Object-oriented programming (OOP) is a popular style of programming. It comes up in technical interviews often and it's an essential skill for every developer. The problem is that there’s lots of bad info out there about OOP. Lots of myths, misconceptions, bad advice and downright poor tutorials and books. It took me a long time to really get it!
Ultimate Java Part 2: Object-oriented Programming
About the Author: codewithmosh (Mosh Hamedani)
Mosh Hamedani is the Iranian-Australian instructor behind Code with Mosh, one of the highest-grossing online programming education brands. Mosh started teaching on Udemy in 2014 with C# and ASP.NET courses, accumulating over 4 million students across platforms before launching his own academy in 2019.
His courses are known for clean delivery, structured pacing, and a deliberate beginner-friendly tone — the opposite of the firehose approach common on YouTube. The catalog covers Python, JavaScript, React, Angular, Node.js, C#, Java, SQL, and ML fundamentals. The Complete Python Mastery and The Ultimate React Course are usually the first recommendations from people who started self-taught careers with Mosh's material.
Watch Online 63 lessons
| # | Lesson Title | Duration | Access |
|---|---|---|---|
| 1 | 1- Introduction Demo | 00:35 | |
| 2 | 2- Programming Paradigms | 03:41 | |
| 3 | 3- Benefits of Object-oriented Programming | 02:13 | |
| 4 | 4- Course Structure | 01:49 | |
| 5 | 1- Introduction | 00:43 | |
| 6 | 2- Classes and Objects | 03:14 | |
| 7 | 3- Creating Classes | 04:25 | |
| 8 | 4- Creating Objects | 04:31 | |
| 9 | 5- Memory Allocation | 03:54 | |
| 10 | 6- Procedural Programming | 05:38 | |
| 11 | 7- Encapsulation | 04:38 | |
| 12 | 8- Getters and Setters - Title | 07:28 | |
| 13 | 9- Abstraction | 02:25 | |
| 14 | 10- Coupling | 04:19 | |
| 15 | 11- Reducing Coupling | 07:18 | |
| 16 | 12- Constructors | 05:14 | |
| 17 | 13- Method Overloading | 02:53 | |
| 18 | 14- Constructor Overloading | 02:45 | |
| 19 | 15- Static Members | 04:23 | |
| 20 | 17- Summary | 00:51 | |
| 21 | 1- Introduction | 00:55 | |
| 22 | 2- The Problem | 02:41 | |
| 23 | 3- What Classes Do We Need? | 03:42 | |
| 24 | 4- Extracting the Console Class | 02:59 | |
| 25 | 5- Overloading Methods | 02:40 | |
| 26 | 6- Extracting the MortgageReport Class | 01:26 | |
| 27 | 7- Extracting the MortgageCalculator Class | 06:18 | |
| 28 | 8- Moving Away from Static Members | 05:56 | |
| 29 | 9- Moving Static Fields | 02:19 | |
| 30 | 10- Extracting Duplicate Logic | 04:57 | |
| 31 | 11- Extracting getRemainingBalances - Title | 06:14 | |
| 32 | 12- One Last Touch | 02:02 | |
| 33 | 1- Introduction | 00:26 | |
| 34 | 2- Inheritance | 03:50 | |
| 35 | 3- The Object Class | 05:00 | |
| 36 | 4- Constructors and Inheritance | 02:42 | |
| 37 | 5- Access Modifiers | 03:57 | |
| 38 | 6- Overriding Methods | 02:51 | |
| 39 | 7- Upcasting and Downcasting | 05:21 | |
| 40 | 8- Comparing Objects | 09:49 | |
| 41 | 9- Polymorphism | 05:24 | |
| 42 | 10- Abstract Classes and Methods | 02:23 | |
| 43 | 11- Final Classes and Methods | 02:49 | |
| 44 | 12- Deep Inheritance Hierarchies | 02:49 | |
| 45 | 13- Multiple Inheritance | 02:04 | |
| 46 | 15- Summary | 01:11 | |
| 47 | 1- Introduction | 00:37 | |
| 48 | 2- What are Interfaces | 06:05 | |
| 49 | 3- Tightly-coupled Code | 03:57 | |
| 50 | 4- Creating an Interface | 05:24 | |
| 51 | 5- Dependency Injection | 01:30 | |
| 52 | 6- Constructor Injection | 03:21 | |
| 53 | 7- Setter Injection | 02:40 | |
| 54 | 8- Method Injection | 02:28 | |
| 55 | 9- Interface Segregation Principle | 07:11 | |
| 56 | 10- Project- MyTube Video Platform | 03:34 | |
| 57 | 11- Solution | 05:09 | |
| 58 | 12- Fields | 03:14 | |
| 59 | 13- Static Methods | 02:53 | |
| 60 | 14- Private Methods | 02:04 | |
| 61 | 15- Interfaces and Abstract Classes | 02:11 | |
| 62 | 16- When to Use Interfaces | 03:14 | |
| 63 | 18- Course Wrap Up | 00:33 |
Get instant access to all 62 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.
Learn more about subscriptionRelated courses
-

Java Foundations: The Complete Course with Java 21 Updates
Sources: udemyThis course is designed for absolute beginners in programming and for those who don't mind learning Java at a slower pace. If you need an accelerated...88 hours 37 minutes 5 seconds -
FreeMaster Spring 6 Spring Boot 3 REST JPA Hibernate
Sources: udemy'Master Spring framework, Spring Boot, REST, JPA, Hibernate' course will help in understanding about Spring framework and how to build web applications, Rest Services using…36 hours 15 minutes 18 seconds 5 / 5 -

Experience Design Patterns In Java
Sources: udemyBoost your software designs by taking this content-rich and hands on fully featured training course. This course will give you insight in the more than 20+ desi7 hours 19 minutes 58 seconds -

Java Messaging Service - Spring MVC, Spring Boot, ActiveMQ
Sources: udemyApache ActiveMQ is open source message broker developed in Java. Have you ever thought how WhatsApp works ? One to one messaging and one to many messaging tech1 hour 47 minutes 44 seconds -

The complete guide to running Java in Docker and Kubernetes
Sources: udemyIf you need to learn how to run, tune, and maintain JVM applications that run in Docker and/or Kubernetes then this is the course for you. This course is very d4 hours 39 minutes 16 seconds -

Master Microservices with Java, Spring, Docker, Kubernetes
Sources: udemy'Master Microservices with Spring, Docker, Kubernetes' course will help in understanding about microservices architecture and how to build it using SpringBoot23 hours 57 minutes 28 seconds