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 agoJava Messaging Service - Spring MVC, Spring Boot, ActiveMQ
By: 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 tech1h 47m -
Updated 2y agoMastering Java 17
By: Java SpecialistsIn this course, we will thoroughly explore the key innovations in Java 12, 13, 14, 15, 16, and 17.8h 20m -
Updated 2y agoRecursion, Backtracking and Dynamic Programming in Java
By: UdemyThis course is about the fundamental concepts of algorithmic problems focusing on recursion, backtracking, dynamic programming and divide and conquer approaches9h 46m