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: Mosh Hamedani (Code with Mosh)
Mosh Hamedani is the founder of Code with Mosh, one of the highest-volume independent online instructors in software education. He has been publishing courses continuously since the early Udemy era and has taught over a million students across his Udemy catalog and his standalone Code with Mosh platform. His teaching style is patient, rigorously structured, and deliberately beginner-tolerant — the courses are widely cited as some of the most accessible introductions to their respective topics.
The Code with Mosh catalog covers an unusually wide span: web development with HTML / CSS / JavaScript / React / Angular / Node.js, Python and Django, C# and .NET, mobile development with React Native and Flutter, SQL and database fundamentals, and the algorithm / data-structure interview prep tracks. Few independent instructors maintain this much breadth at consistent quality.
The CourseFlix listing under this source carries over 35 Code with Mosh courses spanning that range. Material is paid; Code with Mosh runs on per-course pricing on the original platform. Courses are aimed primarily at developers picking up a new technology from a clean start through to working production proficiency.
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
-
Updated 2y agoTesting Java with JUnit 5 & Mockito
By: UdemyUnit Testing is a must-have skill and this video course is about unit testing. If you take this video course, you will learn how to test your Java code using JU7h 41m -
Updated 2y agoThe complete guide to running Java in Docker and Kubernetes
By: 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 d4h 39m -
Updated 2y agoLearn Java Unit Testing with Junit & Mockito in 30 Steps
By: UdemyLearn Mockito and JUnit - the most popular Java unit testing and mocking frameworks - with 25 Examples. Writing Great Unit Tests distinguishes Good Programmers4h 44m