SlideShare a Scribd company logo
1 of 37
Software Development
Fundamentals
Abbasov Ceyhun ( abbasovceyhunn@gmail.com )
Əvvəlki dərs aid suallar
 İkilik say sistemindəki 11 ədədini onluq say sistemində göstər.
 Onluq say sistemindəki 11 ədədini ikilik say sistemində göstər.
 Bitvari operatorlara misal de.
 & (|) və && (||) fərqi nədir?
 Komputer yanandan sonra hazırki vaxtı necə bilir?
Mündəricat
 OYP (Obyekt-yönlü proqramlaşdırma) nədir?
 Sinif və Obyekt anlayışı
 Xüsusiyyətlər və Metodlar
 Obyektin yaradılması
 new açar sözü
 Sinif və Obyekt fərqləri anlayışlardır
 Obyektin xüsusiyyət və funksiyalarını çağırmaq
 Hüquq təyinedicilər
 Konstruktor
 Statik və statik olmayan siniflər, xüsusiyyətlər, metodlar. ( static açar sözü )
 Proqram: Kalkulyator proqramı
 Visual Studio-da Console, Convert siniflərinə baxış
 Dərsdə yazılan tapşırıqların mənbə kodları
 Ev Tapşırığı
OYP nədir?
OYP (Obyekt-Yönlü Proqramlaşdırma)
OOP (Object Oriented Programming)
OYP – “obyekt” anlayışına əsaslanan proqramlaşdırma paradiqmasıdır.
Paradiqma - bir problemin həllinin öyrənilməsi üsulu
Sinif və Obyekt anlayışı
Sinif – xüsusiyyətlər (properties) və metodlardan (methods) ibarət şablondur. Siniflər proqram
işlədiyi müddətdə heç bir dəyişikliyə məruz qalmırlar.
Sinif və Obyekt anlayışı
Obyekt – sinifin bir nüsxəsidir. Sinifdən fərqli olaraq obyektlər yalnız proqram işləyən müddətdə
mövcud olurlar və dəyişikliyə məruz qalırlar.
Burada insan və insan2 obyektlərdir.
Obyekt yaratmaq
Obyekt yaratmaq dəyişən yaratmağa bənzəyir. Əvvəlcə tip göstərilir, sonra ad, sonra isə qiymət.
new açar sözü
Obyekt yaradarkən new açar sözündən istifadə edirik.
new açar sözü
new açar sözü yeni gələ bilər, lakin o, dəyişən yaradarkən də istifadə olunur.
new açar sözü
Aşağıdakı ifadələrin heç bir fərqi yoxdur. Hər ikisində də i dəyişəninin qiyməti 0
olacaqdır.
Proqram yazarkən dəyişənlər həddindən artıq çox istifadə olunduğuna görə
sadə olsun deyə 1ci üsul yaradılmışdır və istifadə olunur.
Obyekt yaradarkən isə biz öz tipimizdən (məs, Insan tipini biz yaratmışıq)
istifadə edirik deyə yuxarıdakı 2ci üsuldan istifadə etməli oluruq:
Sinif və Obyektlərin fərqləri
Başa düşmək lazımdır ki, sinif və obyekt fərqli anlayışlardır. Sinif şablondur, obyektin hansı xüsusiyyətləri
(və ya metodları) olacağını göstərir. Biz bir sinifdən bir neçə obyekt yarada bilərik. (Obyektlərin tipi sinifin adı ilə
eyni olacaqdır.)
SİNİF
OBYEKTLƏR
Obyektin xüsusiyyət və funksiyalarını çağırmaq
Obyektin xüsusiyyət və ya metodlarını çağırmaq üçün obyektin adından sonra nöqtə qoyub
xüsusiyyətinin və ya metodunun adını yazmaq lazımdır. Məsələn:
SİNİF
OBYEKT yaratmaq və xüsusiyyətlərini,
metodlarını çağırmaq
QEYD: Bu kodu icra etdikdə error baş verəcək.
Səbəbi növbəti slaydda.
Hüquq Təyinedicilər (Access Modifiers)
Hüquq Təyinedicilər bir xüsusiyyət və ya metodun hansı səviyyədə çağrıla biləcəyini göstərir. Hüquq
Təyinedicilər aşağıdakılardır:
1. public – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod istənilən yerdə çağrıla bilər.
2. protected – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod yalnız törənmiş sinif
daxilindən çağrıla bilər. (Qeyd: Bu hüquq təyinedici haqqında Varislik mövzusunda danışılacaq.)
3. private – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod yalnız öz sinfi daxilində çağrıla bilər.
QEYD: Xüsusiyyət və ya metodun qarşısında heç bir hüquq təyinedici göstərmədikdə o avtomatik
private təyin olunur.
Hüquq Təyinedicilər (Access Modifiers)
Xüsusiyyətin(və ya metodun) public, protected və ya private olduğunu göstərmək üçün xüsusiyyətin
(və ya metodun) tipindən əvvəl bu açar sözlərdən birini yazmaq lazımdır:
Hüquq Təyinedicilər (Access Modifiers)
Hüquq Təyinedicilər (Access Modifiers)
Hüquq Təyinedicilər (Access Modifiers)
SİNİF OBYEKT yaratmaq və xüsusiyyətlərini, metodlarını çağırmaq
QEYD: Bu kodu icra etdikdə ona görə error baş verəcək ki,
“ad”, “soyad” xüsusiyyətləri və “Qacmaq”, “Danismaq”
metodları qarşısında heç bir hüquq təyinedici
göstərilməmişdir. Xüsusiyyət və ya metodun qarşısında
heç bir hüquq təyinedici göstərmədikdə o, avtomatik
private təyin olunur və private təyin olunmuş xüsusiyyət
və ya metod yalnız öz sinfi daxilində çağrıla bilər.
Konstruktorlar (Constructors)
Konstruktorlar – obyekt yaradılarkən çağrılan metodlardır. Konstruktorlar ilə metodların aşağıdakı
fərqləri var:
1. Konstruktorlar yalnız obyekt yaradılarkən çağrılır.
Metodlar isə yalnız obyekt yaradılandan sonra çağrıla bilər.
2. Konstruktorların tipi olmur. Metodların isə tipi olur. (Məs, void, int və s.)
3. Konstruktorların adı sinifin adı ilə eyni olmalıdır.
Metodlara isə istədiyimiz adı verə bilərik.
Konstruktorlar (Constructors)
Dedik ki, konstruktorlar yalnız obyekt yaradılarkən çağrılır. Gəlin baxaq:
Yuxarıdakı nümunədə obyekt yaradırıq və şərtimizə görə konstruktorlar yalnız obyekt
yaradılarkən çağrılır. Bəs bu nümunədə konstuktor hanı?
Obyektin qiyməti elə onun konstruktorudur. Yəni, new açar sözündən sonra yazılan “Insan()”
konstruktordur.
Konstruktorlar (Constructors)
Obyektin qiyməti elə onun konstruktorudur. Yəni, new açar sözündən sonra yazılan “Insan()”
konstruktordur.
Konstruktorlar (Constructors)
Konstruktorların metodlardan fərqli cəhətləri olduğu kimi oxşar cəhədləri də var. Məsələn,
konstruktorlar da metodlar kimi sinifin içərisində göstərilməlidir.
Konstruktorlar (Constructors)
Bəs konstruktor hanı?!
Konstruktorlar (Constructors)
Sinif daxilində heç bir konstruktor göstərilmədik də o avtomatik təyin
edilir.
Konstruktorlar (Constructors)
Lakin istəsək biz onu özümüz də yaza bilərik:
Konstruktorlar (Constructors)
Metodlara oxşarlıqlarından biri də odur ki, konstruktorlar overload ola
bilir:
Konstruktorlar (Constructors)
Əgər obyekt yaradılan anda onun adını və soyadını təyin etmək
istiyirəmsə, bu zaman konstruktordan istifadə etmək olar:
Konstruktorlar (Constructors)
Konstruktorlar (Constructors)
Konstruktorlar (Constructors)
Konstruktorlar (Constructors)
Sinif daxilində parametrli konstruktor təyin etdikdə default konstruktoru
çağıra bilmərik:
Konstruktorlar (Constructors)
Konstruktorlar (Constructors)
Statik və statik olmayan siniflər, xüsusiyyətlər, metodlar
C#-da siniflər, xüsusiyyətlər, metodlar statik olub-olmamağına görə iki
yerə bölünür:
1. statik olanlar
2. statik olmayanlar
Bura kimi baxdığımız nümunələr statik olmayanlara aid idi. Əgər sinfin,
xüsusiyyətin və metodun statik olduğunu göstərmək istiyiriksə qarşısında
static açar sözünü yazmalıyıq.
Statik siniflər
Statik sinif yaradarkən aşağıdakıları nəzərə almaq lazımdır:
1) Onun obyektini yaratmaq mümkün olmur.
Üzvlərinə müraciət etmək üçün: Sinfin_Adı.Üzvün_Adı
2) Bütün üzvləri (xüsusiyyət və metodları) statik olmalıdır.
3) Konstruktoru parametrsiz olmalıdır, static olmalıdır və heç bir hüquq
təyinedici ilə nişanlanmamalıdır.
4) Ondan törəmək olmur. (Qeyd: Bu haqda Varislik mövzusunda danışılacaq.)
Statik siniflər
Dərsdə edilən tapşırıqların mənbə kodları
Proqram: Kalkulyator proqramı
Ev Tapşırığı
Dərsdə yazılan Kalkulyator proqramına faktorial hesablamaq funksionallığını
əlavə etmək.

More Related Content

What's hot

ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...מורן אלקובי
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in javaHitesh Kumar
 
Object Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) IntroductionObject Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) IntroductionSamuelAnsong6
 
data types in C-Sharp (C#)
data types in C-Sharp (C#)data types in C-Sharp (C#)
data types in C-Sharp (C#)Abid Kohistani
 
Constructors in java
Constructors in javaConstructors in java
Constructors in javachauhankapil
 
شرح مقرر البرمجة 2 لغة جافا - مادة النهائي
شرح مقرر البرمجة 2   لغة جافا - مادة النهائيشرح مقرر البرمجة 2   لغة جافا - مادة النهائي
شرح مقرر البرمجة 2 لغة جافا - مادة النهائيجامعة القدس المفتوحة
 
Control Structures
Control StructuresControl Structures
Control StructuresGhaffar Khan
 
L9 wrapper classes
L9 wrapper classesL9 wrapper classes
L9 wrapper classesteach4uin
 
Typescript: Beginner to Advanced
Typescript: Beginner to AdvancedTypescript: Beginner to Advanced
Typescript: Beginner to AdvancedTalentica Software
 

What's hot (20)

Object oriented programming
Object oriented programmingObject oriented programming
Object oriented programming
 
ΑΕΠΠ - μάθημα 28
ΑΕΠΠ - μάθημα 28ΑΕΠΠ - μάθημα 28
ΑΕΠΠ - μάθημα 28
 
Chapter 1
Chapter 1Chapter 1
Chapter 1
 
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
ג'אווה - תכנות מונחה עצמים - מתודות - שליפה והכנסה, סטטיות, סופיות ומתודות שע...
 
Coa INTERUPT
Coa INTERUPTCoa INTERUPT
Coa INTERUPT
 
Final keyword in java
Final keyword in javaFinal keyword in java
Final keyword in java
 
Python Functions
Python   FunctionsPython   Functions
Python Functions
 
Java literals
Java literalsJava literals
Java literals
 
Object Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) IntroductionObject Oriented Programming (OOP) Introduction
Object Oriented Programming (OOP) Introduction
 
data types in C-Sharp (C#)
data types in C-Sharp (C#)data types in C-Sharp (C#)
data types in C-Sharp (C#)
 
Constructors in C++
Constructors in C++Constructors in C++
Constructors in C++
 
Constructors in java
Constructors in javaConstructors in java
Constructors in java
 
شرح مقرر البرمجة 2 لغة جافا - مادة النهائي
شرح مقرر البرمجة 2   لغة جافا - مادة النهائيشرح مقرر البرمجة 2   لغة جافا - مادة النهائي
شرح مقرر البرمجة 2 لغة جافا - مادة النهائي
 
Control Structures
Control StructuresControl Structures
Control Structures
 
Function overloading
Function overloadingFunction overloading
Function overloading
 
L9 wrapper classes
L9 wrapper classesL9 wrapper classes
L9 wrapper classes
 
C++ data types
C++ data typesC++ data types
C++ data types
 
Typescript: Beginner to Advanced
Typescript: Beginner to AdvancedTypescript: Beginner to Advanced
Typescript: Beginner to Advanced
 
polymorphism
polymorphism polymorphism
polymorphism
 
ΑΕΠΠ - Μάθημα 5
ΑΕΠΠ - Μάθημα 5ΑΕΠΠ - Μάθημα 5
ΑΕΠΠ - Μάθημα 5
 

More from Software Development Fundamentals (9)

12. Polimorfizm və Abstrakt siniflər
12. Polimorfizm və Abstrakt siniflər12. Polimorfizm və Abstrakt siniflər
12. Polimorfizm və Abstrakt siniflər
 
Say sistemləri
Say sistemləriSay sistemləri
Say sistemləri
 
8. Metodların Davamı
8. Metodların Davamı8. Metodların Davamı
8. Metodların Davamı
 
8. Əlavələr
8. Əlavələr8. Əlavələr
8. Əlavələr
 
5. İstisnaların Davamı
5. İstisnaların Davamı5. İstisnaların Davamı
5. İstisnaların Davamı
 
6. Metodlar
6. Metodlar6. Metodlar
6. Metodlar
 
Software Development Fundamentals Exam 98-361
Software Development Fundamentals Exam 98-361Software Development Fundamentals Exam 98-361
Software Development Fundamentals Exam 98-361
 
2. Proqramlaşdırmaya Giriş
2. Proqramlaşdırmaya Giriş2. Proqramlaşdırmaya Giriş
2. Proqramlaşdırmaya Giriş
 
3. İlk proqram və izahı
3. İlk proqram və izahı3. İlk proqram və izahı
3. İlk proqram və izahı
 

10. Obyekt-Yönümlü Proqramlaşdırmaya Giriş

  • 2. Əvvəlki dərs aid suallar  İkilik say sistemindəki 11 ədədini onluq say sistemində göstər.  Onluq say sistemindəki 11 ədədini ikilik say sistemində göstər.  Bitvari operatorlara misal de.  & (|) və && (||) fərqi nədir?  Komputer yanandan sonra hazırki vaxtı necə bilir?
  • 3. Mündəricat  OYP (Obyekt-yönlü proqramlaşdırma) nədir?  Sinif və Obyekt anlayışı  Xüsusiyyətlər və Metodlar  Obyektin yaradılması  new açar sözü  Sinif və Obyekt fərqləri anlayışlardır  Obyektin xüsusiyyət və funksiyalarını çağırmaq  Hüquq təyinedicilər  Konstruktor  Statik və statik olmayan siniflər, xüsusiyyətlər, metodlar. ( static açar sözü )  Proqram: Kalkulyator proqramı  Visual Studio-da Console, Convert siniflərinə baxış  Dərsdə yazılan tapşırıqların mənbə kodları  Ev Tapşırığı
  • 4. OYP nədir? OYP (Obyekt-Yönlü Proqramlaşdırma) OOP (Object Oriented Programming) OYP – “obyekt” anlayışına əsaslanan proqramlaşdırma paradiqmasıdır. Paradiqma - bir problemin həllinin öyrənilməsi üsulu
  • 5. Sinif və Obyekt anlayışı Sinif – xüsusiyyətlər (properties) və metodlardan (methods) ibarət şablondur. Siniflər proqram işlədiyi müddətdə heç bir dəyişikliyə məruz qalmırlar.
  • 6. Sinif və Obyekt anlayışı Obyekt – sinifin bir nüsxəsidir. Sinifdən fərqli olaraq obyektlər yalnız proqram işləyən müddətdə mövcud olurlar və dəyişikliyə məruz qalırlar. Burada insan və insan2 obyektlərdir.
  • 7. Obyekt yaratmaq Obyekt yaratmaq dəyişən yaratmağa bənzəyir. Əvvəlcə tip göstərilir, sonra ad, sonra isə qiymət.
  • 8. new açar sözü Obyekt yaradarkən new açar sözündən istifadə edirik.
  • 9. new açar sözü new açar sözü yeni gələ bilər, lakin o, dəyişən yaradarkən də istifadə olunur.
  • 10. new açar sözü Aşağıdakı ifadələrin heç bir fərqi yoxdur. Hər ikisində də i dəyişəninin qiyməti 0 olacaqdır. Proqram yazarkən dəyişənlər həddindən artıq çox istifadə olunduğuna görə sadə olsun deyə 1ci üsul yaradılmışdır və istifadə olunur. Obyekt yaradarkən isə biz öz tipimizdən (məs, Insan tipini biz yaratmışıq) istifadə edirik deyə yuxarıdakı 2ci üsuldan istifadə etməli oluruq:
  • 11. Sinif və Obyektlərin fərqləri Başa düşmək lazımdır ki, sinif və obyekt fərqli anlayışlardır. Sinif şablondur, obyektin hansı xüsusiyyətləri (və ya metodları) olacağını göstərir. Biz bir sinifdən bir neçə obyekt yarada bilərik. (Obyektlərin tipi sinifin adı ilə eyni olacaqdır.) SİNİF OBYEKTLƏR
  • 12. Obyektin xüsusiyyət və funksiyalarını çağırmaq Obyektin xüsusiyyət və ya metodlarını çağırmaq üçün obyektin adından sonra nöqtə qoyub xüsusiyyətinin və ya metodunun adını yazmaq lazımdır. Məsələn: SİNİF OBYEKT yaratmaq və xüsusiyyətlərini, metodlarını çağırmaq QEYD: Bu kodu icra etdikdə error baş verəcək. Səbəbi növbəti slaydda.
  • 13. Hüquq Təyinedicilər (Access Modifiers) Hüquq Təyinedicilər bir xüsusiyyət və ya metodun hansı səviyyədə çağrıla biləcəyini göstərir. Hüquq Təyinedicilər aşağıdakılardır: 1. public – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod istənilən yerdə çağrıla bilər. 2. protected – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod yalnız törənmiş sinif daxilindən çağrıla bilər. (Qeyd: Bu hüquq təyinedici haqqında Varislik mövzusunda danışılacaq.) 3. private – bu hüquq təyinedici ilə nişanlanmış xüsusiyyət və ya metod yalnız öz sinfi daxilində çağrıla bilər. QEYD: Xüsusiyyət və ya metodun qarşısında heç bir hüquq təyinedici göstərmədikdə o avtomatik private təyin olunur.
  • 14. Hüquq Təyinedicilər (Access Modifiers) Xüsusiyyətin(və ya metodun) public, protected və ya private olduğunu göstərmək üçün xüsusiyyətin (və ya metodun) tipindən əvvəl bu açar sözlərdən birini yazmaq lazımdır:
  • 17. Hüquq Təyinedicilər (Access Modifiers) SİNİF OBYEKT yaratmaq və xüsusiyyətlərini, metodlarını çağırmaq QEYD: Bu kodu icra etdikdə ona görə error baş verəcək ki, “ad”, “soyad” xüsusiyyətləri və “Qacmaq”, “Danismaq” metodları qarşısında heç bir hüquq təyinedici göstərilməmişdir. Xüsusiyyət və ya metodun qarşısında heç bir hüquq təyinedici göstərmədikdə o, avtomatik private təyin olunur və private təyin olunmuş xüsusiyyət və ya metod yalnız öz sinfi daxilində çağrıla bilər.
  • 18. Konstruktorlar (Constructors) Konstruktorlar – obyekt yaradılarkən çağrılan metodlardır. Konstruktorlar ilə metodların aşağıdakı fərqləri var: 1. Konstruktorlar yalnız obyekt yaradılarkən çağrılır. Metodlar isə yalnız obyekt yaradılandan sonra çağrıla bilər. 2. Konstruktorların tipi olmur. Metodların isə tipi olur. (Məs, void, int və s.) 3. Konstruktorların adı sinifin adı ilə eyni olmalıdır. Metodlara isə istədiyimiz adı verə bilərik.
  • 19. Konstruktorlar (Constructors) Dedik ki, konstruktorlar yalnız obyekt yaradılarkən çağrılır. Gəlin baxaq: Yuxarıdakı nümunədə obyekt yaradırıq və şərtimizə görə konstruktorlar yalnız obyekt yaradılarkən çağrılır. Bəs bu nümunədə konstuktor hanı? Obyektin qiyməti elə onun konstruktorudur. Yəni, new açar sözündən sonra yazılan “Insan()” konstruktordur.
  • 20. Konstruktorlar (Constructors) Obyektin qiyməti elə onun konstruktorudur. Yəni, new açar sözündən sonra yazılan “Insan()” konstruktordur.
  • 21. Konstruktorlar (Constructors) Konstruktorların metodlardan fərqli cəhətləri olduğu kimi oxşar cəhədləri də var. Məsələn, konstruktorlar da metodlar kimi sinifin içərisində göstərilməlidir.
  • 23. Konstruktorlar (Constructors) Sinif daxilində heç bir konstruktor göstərilmədik də o avtomatik təyin edilir.
  • 24. Konstruktorlar (Constructors) Lakin istəsək biz onu özümüz də yaza bilərik:
  • 25. Konstruktorlar (Constructors) Metodlara oxşarlıqlarından biri də odur ki, konstruktorlar overload ola bilir:
  • 26. Konstruktorlar (Constructors) Əgər obyekt yaradılan anda onun adını və soyadını təyin etmək istiyirəmsə, bu zaman konstruktordan istifadə etmək olar:
  • 30. Konstruktorlar (Constructors) Sinif daxilində parametrli konstruktor təyin etdikdə default konstruktoru çağıra bilmərik:
  • 33. Statik və statik olmayan siniflər, xüsusiyyətlər, metodlar C#-da siniflər, xüsusiyyətlər, metodlar statik olub-olmamağına görə iki yerə bölünür: 1. statik olanlar 2. statik olmayanlar Bura kimi baxdığımız nümunələr statik olmayanlara aid idi. Əgər sinfin, xüsusiyyətin və metodun statik olduğunu göstərmək istiyiriksə qarşısında static açar sözünü yazmalıyıq.
  • 34. Statik siniflər Statik sinif yaradarkən aşağıdakıları nəzərə almaq lazımdır: 1) Onun obyektini yaratmaq mümkün olmur. Üzvlərinə müraciət etmək üçün: Sinfin_Adı.Üzvün_Adı 2) Bütün üzvləri (xüsusiyyət və metodları) statik olmalıdır. 3) Konstruktoru parametrsiz olmalıdır, static olmalıdır və heç bir hüquq təyinedici ilə nişanlanmamalıdır. 4) Ondan törəmək olmur. (Qeyd: Bu haqda Varislik mövzusunda danışılacaq.)
  • 36. Dərsdə edilən tapşırıqların mənbə kodları Proqram: Kalkulyator proqramı
  • 37. Ev Tapşırığı Dərsdə yazılan Kalkulyator proqramına faktorial hesablamaq funksionallığını əlavə etmək.