C# Intermediate - Part I (Mastering Oop)

Posted By: ELK1nG

C# Intermediate - Part I (Mastering Oop)
Published 9/2022
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz
Language: English | Size: 7.53 GB | Duration: 14h 48m

Encapsulation, Inheritance, Abstraction, Polymorphism, Interfaces, Virtual and Abstract Methods, Real-life examples

What you'll learn
How the mankind developed the idea of OOP paradigm
What data modeling is and how to improve your abstract and logical thinking
Create the business/domain layer of a multi tier application with real-life examples
Understand the four fundamental pillars of OOP – Encapsulation, Inheritance, Abstraction and Polymorphism
Increase your software engineering skills with the knowledge of the SOLID principles
Be prepared for interviews knowing the similarities and differences between abstract classes and interfaces
Become aware of the intricacies behind the virtual, abstract, new, and sealed keywords
Understand when and why to use static classes and methods
Requirements
Students should know about the basic data types, the creation of variables and methods
Finishing my course " C# Fundamentals For Complete Beginners" will be of great help
Description
Object-oriented Programming can develop your abstract, associative and logical thinking, change your perspective of how you perceive processes, events, objects, subjects and immaterial concepts that you want to replicate in your applications. Creating an accurate model of complex business, ecological, biological, chemical, physical, philosophical or personal problems filled with appropriate interactions (methods) will produce reasonable solutions that can eventually change the world or improve your skills and virtues.The course is mostly based on practical examples (you can see some of them in the first video that has a free preview) and that is understandable because OOP is allowing us to take any object/subject, investigate its meaning and interconnectedness to other objects and create virtual models of the existing concept(s). There could be more than one viable solution and the more intricacies and concepts you know, the better your programming architecture will be.Knowing about encapsulation for example will make it impossible for unwanted side effects to take place in your application. Understanding when to use composition and inheritance is a vital skill towards creating your set of objects and their relations. Recognizing when to create one or two levels of abstraction and how to implement polymorphism are advanced skills that has to be integrated by the students. Differentiating between the advantages and disadvantages of using abstract classes and interfaces is another crucial point for the students. Deliberate thinking about SOLID principles, strong cohesion, loose coupling and dependency injections before finishing your architecture of classes is necessary to be done if the students want to develop adaptive applications.Before we start making multi-tier applications a strong foundation of knowledge, skills and experience with solving simple tasks are necessary. This course is the second stepping stone towards achieving that goal.I hope that my students will be benevolent toward each other in the Q&A section of the courses and be successful in their future career as a software developer (and engineer).

Overview

Section 1: Classes and Objects

Lecture 1 Excerpts

Lecture 2 Object Oriented Programming

Lecture 3 Classes and Instances

Lecture 4 Variables and Properties - Part I

Lecture 5 Variables and Properties - Part II

Lecture 6 Constructors and Methods - Part I

Lecture 7 Constructors and Methods - Part II

Lecture 8 Exercises I

Lecture 9 Solutions to Ex. I - Part I

Lecture 10 Solutions to Ex. I - Part II

Lecture 11 Solutions to Ex. I - Part III

Lecture 12 Solutions to Ex. I - Part IV

Section 2: Encapsulation, Inheritance, Composition, Interfaces

Lecture 13 Access Modifiers

Lecture 14 Encapsulation

Lecture 15 Inheritance and Composition - Part I

Lecture 16 Inheritance and Composition - Part II

Lecture 17 Exercises II

Lecture 18 Solutions to Ex. II - Part I

Lecture 19 Solutions to Ex. II - Part II

Lecture 20 Interfaces

Lecture 21 Exercises III

Lecture 22 Solutions to Ex. III - Part I

Lecture 23 Solutions to Ex. III - Part II

Section 3: Abstraction, Polymorphism, SOLID Principles

Lecture 24 Abstraction - Part I

Lecture 25 Abstraction - Part II

Lecture 26 Virtual, Abstract, New and Sealed Keywords

Lecture 27 Abstract Classes vs Interfaces

Lecture 28 Polymorphism

Lecture 29 Exercises IV

Lecture 30 Solutions to Ex. IV - Part I

Lecture 31 Solutions to Ex. IV - Part II

Lecture 32 Solutions to Ex. IV - Part III

Lecture 33 SOLID Principles

Lecture 34 Static Keyword

Lecture 35 Fixing The Broken Encapsulation Problem (Bonus Content)

Lecture 36 End

Anyone who has an interest in software development and particularly object oriented programming,Students that finished my course "C# Fundamentals For Complete Beginners"