Skip to main content
CF

Ultimate Java Part 2: Object-oriented Programming

3h 41m 47s
English
Paid

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!

About the Author: Mosh Hamedani (Code with Mosh)

Mosh Hamedani (Code with Mosh) thumbnail

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

This is a demo lesson (10:00 remaining)

You can watch up to 10 minutes for free. Subscribe to unlock all 63 lessons in this course and access 10,000+ hours of premium content across all courses.

View Pricing
0:00
/
#1: 1- Introduction
All Course Lessons (63)
#Lesson TitleDurationAccess
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
Unlock unlimited learning

Get instant access to all 62 lessons in this course, plus thousands of other premium courses. One subscription, unlimited knowledge.

Learn more about subscription

Related courses

Frequently asked questions

What are the prerequisites for this course?
The course assumes a basic understanding of Java. It builds on foundational concepts and covers object-oriented programming, which is a crucial skill for developers. Some familiarity with programming paradigms and basic Java syntax would be beneficial to follow along with the lessons effectively.
What kind of projects will I work on during this course?
The course includes a project where students will build a 'MyTube Video Platform'. This project allows learners to apply concepts like interfaces, dependency injection, and method injection, providing practical experience in creating a video platform using object-oriented programming principles.
Who is the target audience for this course?
This course is designed for developers who have a basic understanding of Java and wish to deepen their knowledge of object-oriented programming. It's suitable for those preparing for technical interviews or seeking to refine their programming skills by debunking myths and misconceptions about OOP.
How does this course compare to other Java programming courses?
Unlike courses that provide only a broad overview, this course delves specifically into object-oriented programming in Java. It addresses common misconceptions and offers detailed lessons on encapsulation, inheritance, polymorphism, and interfaces, providing a focused exploration of OOP principles.
What specific tools or platforms are covered in the course?
The course primarily focuses on Java, exploring object-oriented concepts using the Java programming language. It covers classes, objects, interfaces, and various OOP principles, as well as practical application through the MyTube Video Platform project.
What topics are not covered in this course?
While the course provides an in-depth look at object-oriented programming, it does not cover advanced Java topics such as concurrent programming, JavaFX, or database integration. The focus remains on mastering OOP principles in Java.
What is the expected time commitment for this course?
The course includes 63 lessons, designed to be completed at the learner's own pace. Depending on individual learning speeds and prior experience with Java, students may spend several weeks completing the course, especially if they engage deeply with the exercises and projects.