Object yönlü proqramlaşdırma

Obyekt yönlü proqramlaşdırmanın əsas anlayışları: abstraksiya. nkapsulyasiya, varislik, polimorfızm- haqqında nə bilirsiniz?


Yadda saxlama
Kateqoriya: Proqramlaşdırma . . Qısa keçid.

Verilmiş cavablar və yazılan şərhlər (5 cavab var)

(17:47, 29/03/2011 ) #2136

OOP – in əsas anlayışları :
1. Encapsulation – proqramçıya obyektləri qorumaq imkanı verir. Yəni private təyin etdiyimiz dəyişkənləri istifadəçidən gizlətmək mənasına gəlir ki, onsuz da istifadəçinin bunu istifadə etməsinə gərək yoxdur ve hətta istifadə etməməlidir.

2. İnheritance – bir sinifin metodlarını istifadə edən başqa siniflər yaratmağa kömək edir deyə bilərik.Məsələn bir şirkət sizdən işçiləri haqqında şirkətə lazımi məlumatlarını(maaş, ad, soyad və s.) saxlayan bir proqram qurulması istəyir. Və deyək ki, şirkətdə 3 növ işçi var: Manager, SalesPerson və Laborer.
Onda proqramçı üçün ən uyğun yol budur: İşçilərin adlarını, soyadlarını yaşlarını və maaşlarını təyin edən dəyişənlərdən və əlavə bonus verən bir metoddan ibarət Employee sinifi düzəltsin. Ondan sonra yaradacağımız Manager, SalesPerson və Laborer sinifləri artıq Employee sinifinin alt sinifləri olacaq. Yəni bu 3 sinif Employee base sinifindən törəyəcəklər. BU 3 sinif “Derived class”, onların törəndikləri sinif isə “Base class” adlanır. Əgər biz İnheritance – dan istifadə etməsəydik onda Employee sinifində yaratdığımız dəyişənləri və metodları yenidən bu 3 sinifdə yaratmalıydıq. Əgər daha çox dəyişən və metod olardısa onda bu inheritance-dan istifadə etməyən proqramçının xeyli vaxt itirməsinə və çox səliqəsiz bir proqram yaratmasına səbəb olardı. (Siz İnheritancedan istifadə edə-edə onun burda yazdığım səbəblərdən daha çox xeyirli olduğunu görəcəksiniz.)
Deməli, derived class-lar avtomatik olaraq base class-ın bütün özəlliklərinə sahib olurlar.

Və İnheritance C#-da iki nöqtə ilə qeyd edilir.

 //Manager class-ı Employee class-ından miras   //alır
class Manager : Employee 
{ 
}

Amma Javada extends keyword – ü ilə :

//Manager class-ı Employee class-ından miras   //alır
class Manager extends Employee {
}

3. Polymorphism – Polymorphism bizə bunlari etməyə imkan verir:

Bu bizə runtime zamanı (Proqramı çalıştırdığımız zaman) derived class-dakı metodları base class-dakı metodlara referans etməklə çağırmağa şərait yaradır.

Bu bizə fərqli classlarda fərqli işləri görən metodları eyni adla adlandırmamıza imkan yaradır.

Bəs Polymorphismdən necə istifadə edilir:
Bunun üçün bir base classımız və ondan mirasla yaranan derived classlar olmalıdır. Base classda yaradılan bir metod digər siniflərin hamısında istifadə ediləcək ama bu metodların hamısının içi fərqli olacaq.

Base classda təyin etdiyimiz ve bütün classlar üçün ortaq istifadə etmək istediyimiz metodu base classda yazarkən bunu “virtual” olaraq təyin edib, istifadə etməliyik. Derived classlarda ise metodu “Override”keyword -ü ilə qeyd edməliyik (C#-da).

Base classda: public virtual string MaashinTeyinEdilmesi()

Derived classda: public override string MaashinTeyinEdilmesi()

Mən bu mövzuları bilirdim amma, sizə daha yaxşı anlatmaq üçün internetdə yaxşıca araşdırdım. İnşallah yazdıqlarımın azda olsa köməyi olar.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(19:07, 29/03/2011 ) #2138

Abstract class-dan da mən yazım. Bəzən bunu OOP-in əsas cəhətlərindən biri kimi göstərirlər. Amma əsasən, yuxarıdakı trio keçərlidir.

Abstract class yarımçıq class da adlandırırlar. Çünki bu classlardan object yaratmaq olmur, sealed özəlliyi əlavə edə bilmirik(başqa classlar inherit edə bilmir sealed classlardan) və bu classlardan inherit(miras alan) edən classlar da ya abstract olmalıdır, yada abstract methodları override edilməlidir.

Abstract method necə olur?

Əvvəlcə abstract bir class tanımlayaq, abstract bir methodu olsun(VergiHesabla).
abstract class VergiHesablayici
{

public abstract double VergiHesabla();

}
İkinci bir class tanımlayaq. Həmin VergiHesablayici classından inherit etsin.
Bu zaman biz VergiHesabla methodunu override edəcəyik və override edərkən içini (body) dolduracağıq(abstract methodda body hissəsi olmur, prototype olur yalnız-içi doldurulmur).

class ElaveGelirVergisi: VergiHesablayici
{
public override double VergiHesablayici()
{
double vergi=maash*0.12;
return vergi;
}

}

p.s. İnterfacelər bütün methodları public və abstract olan istifadəçinin yaratdığı xüsusi typelardır.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(19:11, 29/03/2011 ) #2139

İkinci bir class tanımlayaq. Həmin VergiHesablayici classından inherit etsin.
Bu zaman biz VergiHesabla methodunu override edəcəyik və override edərkən içini (body) dolduracağıq(abstract methodda body hissəsi olmur, prototype olur yalnız-içi doldurulmur).

class ElaveGelirVergisi: VergiHesablayici
{
public override double VergiHesabla()
// method adını səhv yazmışdım, override etdiyi(absract) ilə adı eyni olmalı
{
double vergi=maash*0.12;
return vergi;
}

}

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(13:57, 30/03/2011 ) #2142

Cox sag olun. Ela yazmisiniz. minnetdaram.

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

(13:24, 26/03/2012 ) #11521

çox gözəl yazmısınız Maşallah… cpp-in azərb. dilində kitabı cıxsa zehmet olmasa mənə xəbər verin…yəniki təzəsi…

Cavablamaq üçün sağ sütundan hesaba daxil olmaq lazımdır

Bu suala aid öz sualım var:
Sual verin
Bu suala cavab vermək istəyirəm:
Cavab verin

Cavab verin


Cavab yazmaq üçün lütfən sağ sütundan və ya buradan hesaba daxil olun.

Üzvlər üçün giriş

Qeydiyyat

Elan qutusu

Son cavablar və şərhlər

MiMov cavab verdi - Özəl ip tv qurmaq (4 gün əvvəl)

MiMov cavab verdi - iptv onlayn paket almaq (4 gün əvvəl)

E. Hacı cavab verdi - 300$ Gömrük Limitini keçdim (10 gün əvvəl)

Software Developer cavab verdi - Aliexpress gömrük rüsumu nəyə görə hesablanır? (12 gün əvvəl)

AliyevYT cavab verdi - Honeygain, passiv gelir (13 gün əvvəl)

Sıradan biri cavab verdi - IMEI qeydiyyatı (15 gün əvvəl)

Fariz Huseynli cavab verdi - cerimenin öyrənilməsi (18 gün əvvəl)

Software Developer cavab verdi - cerimenin öyrənilməsi (19 gün əvvəl)

Software Developer cavab verdi - Kapital bank rekvizit payoneer (19 gün əvvəl)

Software Developer cavab verdi - Hər hansı kompyuter proqramının (EXE faylı) etibarlı olub olmaması yəni qanuni və ya saxta olduğunu necə bilmək olar ? (19 gün əvvəl)

txmn cavab verdi - Hərbi biletsiz, möhlətsiz iş (21 gün əvvəl)

Galaxy cavab verdi - X-də (Twitter) premium abunəliklə bağlı çətinlik (22 gün əvvəl)

Rsad Ncfli cavab verdi - Payonner 2024 ilə bağlı sual (28 gün əvvəl)

Software Developer cavab verdi - Payonner 2024 ilə bağlı sual (28 gün əvvəl)

Rsad Ncfli cavab verdi - Payonner 2024 ilə bağlı sual (28 gün əvvəl)

Software Developer - 615 xal

E. Hacı - 607 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 434 xal

Maqa - 346 xal

Ruslan Butdayev - 328 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

Sistemə daxil olmuş 23229 sualdan 92%-dən çoxu cavablandırılmışdır.

Proyekt haqqında

E-Haci.net istehsalı. © 2010-2024