Object-Oriented Programming Youssef Mohammed Abohaty Vice Head Technical at Microsoft Tech Club
Agenda : - • Introduction To OOP . • Classes . • Enumeration . • Structures . • Encapsulation . • Inheritance . • Polymorphism .
Introduction To OOP
Traditional Programming = Spaghetti code
!OOP Programming (OOP Arch Code) Name Space Class Method Code
Why OOP ? • More Organized Code . • Debug Fast . • Fast to Find Errors . • More Flexible To use .
Classes : - • It’s A container to A Collection of Methods . • It’s Reference Type . • Constructors “is a Method With The Same Name Of The Class” . • Destructors “is a Method With The Same Name Of The Class With ~ Before the Name”. Ex : Class Persone { Public Persone() { //Code } ~ Persone() { //Code } }
Static And Non Static Class • Non Static Class To Us It Must Make Instance . Ex : Person p = new Person(); p.Speak(); • Static Class You Can Us It Direct . Ex : Console.WriteLine(“Hello MVA”); • How To Make A static Class . Ex : Static Class Person { Private Void Speak() { } }
OverLoading : - • Over Loading Is A Group Of Methods Have The Same Name ! Ex : Public Void Speak (int Num); Public Void Speak (int Num ,String Txt); Ex : MessageBox.Show(String Text); MessageBox.Show(String Text,String Caption); MessageBox.Show(String Text , String Caption , Message BoxButtons Button);
Access Modifier : - • Public : “ Calling From Any Place “ . • Private : “ Only Calling From The Same Class “ . • Protected : “ Only Calling From The Inherit Class “ . • Internal : “ Only Calling From The Current Assembly File Only “ . • Protected Intenal : “ Can Calling From The Inherit Class And From The Current Assembly File “ .
Enumeration : - • It’s a Group Of Element’s To Represent Cases and Different Values Inside The Program . EX : enum Human { Male=0; Female=1; } • Using Name Of enum Only But Real Value stored as a byte So We Can Use It at (Windows API) .
Structures : - • Is a special Types To Upload any Properties and Behaviors as variables Or Methods . Stuct Human { Public String JobTitle; Public int Age; Public int Year; }; Human Mahmoud =new Human(); Mahmoud.JobTitle=“Developer”; Mahmoud.Age=22; Mahmoud.Year=2015; • Struct Can Have an Item Is Another Struct . • Struct Is a Value Type .
Encapsulation : - • Is Hide Our Code And Use It As a Black Box From The Final Method . • using Access Modifier . EX : Human Ahmed =new Ahmed(); Ahmed.Age=6723896349; • We Can Use Get(Accessor) And Set (Mutator). EX : Person { Private int Age; Public Get Age (int age) { If(age <=100 $$ age>=1) { Age=age; } else{console.WriteLine(“We Can’t store This Age”);} } }
Encapsulation (Type Property) : - Class Person { Public int Age { get{return Age ; } set{if (Age<=100 $$ Age>1) Age=Value;} } }
Inheritance : - • What Is Inheritance Mean ?! . • Is-a Relation . • Has-a Relation . • When I can Use Inheritance ?! . • Multi Inheritance ! . EX : Class Developer : Human { // Implementation }
Inheritance (Saled“Not Inheritable”) : - Saled Class Human { } This Way Is Wrong ! Class Teacher : Human × {} • You Can Only Use From Object’s . • Human Teacher =new Human();
Abstract Classes (MustInherit) :- • Is A class Must Inherit To Use his attributes From The Inherited Class . EX : abstract class Human { Public int Age; } EX : class Doctor :Hman { }
Interface : - • Is abstract Class With Out Any Implementation . Interface Human { int Age ; String JobTitle; int Year; } • More Than Once Inherit .
Polymorphism : - • You Can Create Class With Out Any Implementation . • You Can Change Methods Implementation by Overriding between two Different Classes. Public Virtual void Speak() { Console,Beep(); } Public Override void Speak() { Console.WriteLine(“Speak”); }
Abstract Methods : - • Is a Kind Of Polymorphism but abstract Key Word Forcing The Developer To Make Override . Public abstract void Speak() { Console,Beep(); } Public Override void Speak() { Console.WriteLine(“Speak”); }
Thank You ! jozeif_abdelkader70@yahoo.com jozeif_abdelkader70@outlook.com en9.youssef@gmail.com twitter.com/Dev_Youssef

Object oriented programming With C#

  • 1.
    Object-Oriented Programming Youssef MohammedAbohaty Vice Head Technical at Microsoft Tech Club
  • 2.
    Agenda : - •Introduction To OOP . • Classes . • Enumeration . • Structures . • Encapsulation . • Inheritance . • Polymorphism .
  • 3.
  • 4.
  • 5.
    !OOP Programming (OOPArch Code) Name Space Class Method Code
  • 6.
    Why OOP ? •More Organized Code . • Debug Fast . • Fast to Find Errors . • More Flexible To use .
  • 7.
    Classes : - •It’s A container to A Collection of Methods . • It’s Reference Type . • Constructors “is a Method With The Same Name Of The Class” . • Destructors “is a Method With The Same Name Of The Class With ~ Before the Name”. Ex : Class Persone { Public Persone() { //Code } ~ Persone() { //Code } }
  • 8.
    Static And NonStatic Class • Non Static Class To Us It Must Make Instance . Ex : Person p = new Person(); p.Speak(); • Static Class You Can Us It Direct . Ex : Console.WriteLine(“Hello MVA”); • How To Make A static Class . Ex : Static Class Person { Private Void Speak() { } }
  • 9.
    OverLoading : - •Over Loading Is A Group Of Methods Have The Same Name ! Ex : Public Void Speak (int Num); Public Void Speak (int Num ,String Txt); Ex : MessageBox.Show(String Text); MessageBox.Show(String Text,String Caption); MessageBox.Show(String Text , String Caption , Message BoxButtons Button);
  • 10.
    Access Modifier :- • Public : “ Calling From Any Place “ . • Private : “ Only Calling From The Same Class “ . • Protected : “ Only Calling From The Inherit Class “ . • Internal : “ Only Calling From The Current Assembly File Only “ . • Protected Intenal : “ Can Calling From The Inherit Class And From The Current Assembly File “ .
  • 11.
    Enumeration : - •It’s a Group Of Element’s To Represent Cases and Different Values Inside The Program . EX : enum Human { Male=0; Female=1; } • Using Name Of enum Only But Real Value stored as a byte So We Can Use It at (Windows API) .
  • 12.
    Structures : - •Is a special Types To Upload any Properties and Behaviors as variables Or Methods . Stuct Human { Public String JobTitle; Public int Age; Public int Year; }; Human Mahmoud =new Human(); Mahmoud.JobTitle=“Developer”; Mahmoud.Age=22; Mahmoud.Year=2015; • Struct Can Have an Item Is Another Struct . • Struct Is a Value Type .
  • 13.
    Encapsulation : - •Is Hide Our Code And Use It As a Black Box From The Final Method . • using Access Modifier . EX : Human Ahmed =new Ahmed(); Ahmed.Age=6723896349; • We Can Use Get(Accessor) And Set (Mutator). EX : Person { Private int Age; Public Get Age (int age) { If(age <=100 $$ age>=1) { Age=age; } else{console.WriteLine(“We Can’t store This Age”);} } }
  • 14.
    Encapsulation (Type Property): - Class Person { Public int Age { get{return Age ; } set{if (Age<=100 $$ Age>1) Age=Value;} } }
  • 15.
    Inheritance : - •What Is Inheritance Mean ?! . • Is-a Relation . • Has-a Relation . • When I can Use Inheritance ?! . • Multi Inheritance ! . EX : Class Developer : Human { // Implementation }
  • 16.
    Inheritance (Saled“Not Inheritable”): - Saled Class Human { } This Way Is Wrong ! Class Teacher : Human × {} • You Can Only Use From Object’s . • Human Teacher =new Human();
  • 17.
    Abstract Classes (MustInherit):- • Is A class Must Inherit To Use his attributes From The Inherited Class . EX : abstract class Human { Public int Age; } EX : class Doctor :Hman { }
  • 18.
    Interface : - •Is abstract Class With Out Any Implementation . Interface Human { int Age ; String JobTitle; int Year; } • More Than Once Inherit .
  • 19.
    Polymorphism : - •You Can Create Class With Out Any Implementation . • You Can Change Methods Implementation by Overriding between two Different Classes. Public Virtual void Speak() { Console,Beep(); } Public Override void Speak() { Console.WriteLine(“Speak”); }
  • 20.
    Abstract Methods :- • Is a Kind Of Polymorphism but abstract Key Word Forcing The Developer To Make Override . Public abstract void Speak() { Console,Beep(); } Public Override void Speak() { Console.WriteLine(“Speak”); }
  • 21.