Mövzu üzrə bənzər suallara da baxa bilərsiniz.

Abstract class və method nədir?

Abstract class və method nədir və daha çox nə üçün istifadə olunur, program yazılımında istifadə etmək yararlıdır yoxsa yox, birdə daha bu method və classlardan nə vaxt istifadə olunur?


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

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

(00:41, 11/02/2012 ) #8547

Buradan çox faydalı cavablar oxuya bilərsiniz: http://cavablar.net/2011/03/29/object-yonlu-proqramlasdirma-2/
Qane etməsə yəqin yeni cavab verən ekspertlərimiz olacaq.

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

(02:39, 11/02/2012 ) #8552

Abstract method ele bir metoddur ki bu metoddan obyekt (instance) yaradabilmersen. Abstract metodu extend eliyende onun bütün abstract metodlarını override elemek mecburiyyetindesen. Bunu esasen bir anlaşma olaraq fikirleşsen daha yaxşı başa düşersen eğer bir abstract metoddan extend edirsense öz sinifivi sen razılıq verirsenki menim sinifim o metodun bütün abstract metodlarına sahib olacaq. Bunların nece işledileceğiyle bağlı bir yazı yazmışdım blogumda aşağdaki linklerden baxabilersen
http://developersland.net/index.php/interfaceabstractfark.html

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

(03:15, 11/02/2012 ) #8554

Verdiyim linkde interface ve abstract arasındaki ferq’e deyinerek başa salmağa çalışmışam her ikisini de teze öyrenmeye başlayırsansa bunların iksini de böyük ehtimalla sef salabilersen o nezerden de faydalı olabiler senin üçün. Bele bir misal elave edim fikirleş ki bir proyektde birden çox db işledirsen mysql, oracle, sql vs. istifadeçi bunlardan birini seçmelidi bu veziyette sen her bir database üçün ayrı ayrı if else yazmaq yerine Database adında bir abstract metod yazarsan onun içine de her database de işledilen ortaq funksiyalar üçün abstract bir metod yazarsan meselen connect() metodu. Butun db lerin connect metodu ferqli adlarda olabiler meselen biri baglan() metodu birisi con() metodu… sen bütün bu database siniflerini bizim evvelceden yarattığımız Database adlı metoddan extend elesen onda mysql, oracle vs. hamısının özüne aid bir connect metodu olacaq çükü hammısı bunu ferqli şekilde override edecek.

public class Mysql extends Database
{
    @override
    public void connection()
    {
            //Kod...
     }
}

public class Oracle extends Database
{
    @override
    public void connection()
    {
            //Kod...
     }
}

abstract class Database
{
    abstract public void connect();

    public String errorMesajı()
    {
            return "Error Çıxdı";
     }
}

Kodumuzda ise aşağdaki kimi olsun…

Database db;

if(istifadeci seçir MySql)
{
     db=new Mysql();
}
else if(istifadeçi seçir Oracle)
{
    db=new Oracle();
}

//bundan sonra yazacağın kodlar ise db ile elemek istediyin bütün emeliyyatlar üçün eyni olacaq heresi üçün ayrı ayrı uzun kodlar yazmalı olmayacaqsan.

db.connect();

if(nese problem varsa)
{
    db.errorMesajı();
}

Gördüyün kimi abstract metodun kömeyiynen yazmalı olduğumuz kodlar olduqça azalır. Bundan elave fikir verdinse errorMesajı adında abstract olmayan bir metod da yazdıq. Abstract sinifler abstract olmayan metodlara da sahip olabiler bu metodun içinde de bütün db ler üçün eyni olan error mesajını yazdırırıq. MySql ve Oracle siniflerimiz bu metodları override elemeden olduğu kimi işledebilerler bu da eyni kodları yazmaqdan qurtarır bizi kodumuzu sadeleştirmeye kömek edir.

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

    (12:56, 11/02/2012 ) #8571

    Əvvəla cavablandırdığınız üçün təşəkkür edirəm. Sizin izahınızdan onu başa düşdüm ki, abstract class və methodlar sadəcə kod hissəsini sadələşdirmək üçün istifadə edirik. Çəkdiyiniz misaldan da göründüü kimi bir db abstract class yaradır daha sonra isə ondan extendle vərəsə alırıq bəs bunu adi classlada edə bilmərikmi nəticədə yenədə ondan vərəsə götürə bilərik. Abstractı fərqli edən nədi?

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

(13:22, 11/02/2012 ) #8573

Abstract’ın adi sinifden ferqi odur ki sinifler abstract bir sinifden extends eliyende biz 100% emin olabilirik ki exttends eden sinif abstract sinifin bütün abstract metodlarının içini dolduracaq. Abstract metodlar override edilmemiş compiler icaze vermeyecek kodu run etmeye.

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

ibrahim085 cavab verdi - instagrama mahnı yüklüyən proqram. (5 saat əvvəl)

Şükür Hüseynov cavab verdi - sayt açmaq üçün müraciət edilməli yer (16 saat əvvəl)

Sahrab cavab verdi - Webmoney dən pul çıxartmaq (16 saat əvvəl)

Maqa cavab verdi - AMAZON DROPSHIPPING və AMAZON FBA (1 gün əvvəl)

Anar Melik cavab verdi - Webmoney dən pul çıxartmaq (1 gün əvvəl)

Sahrab cavab verdi - Webmoney dən pul çıxartmaq (1 gün əvvəl)

fuadrzayev999 cavab verdi - Aliexpress topdan üzük (1 gün əvvəl)

Maqa cavab verdi - Elaqe ucun komek etsez sevinerdim (2 gün əvvəl)

Ruhin Alizade cavab verdi - Azərpoçt telefon (2 gün əvvəl)

sadiq.ziyadov cavab verdi - İcloud dusme sebebi nedir? (3 gün əvvəl)

E. Hacı cavab verdi - Brend Markalar Codecanyonan Alış veriş edə bilərlərmi? (3 gün əvvəl)

OrkhanZade cavab verdi - İcloud dusme sebebi nedir? (3 gün əvvəl)

OrkhanZade cavab verdi - İcloud dusme sebebi nedir? (3 gün əvvəl)

Ramazan cavab verdi - Php saytımı Quraşdırdım Sayt Açılanda "Directory Listing" Çıxır (3 gün əvvəl)

Software Developer cavab verdi - İcloud dusme sebebi nedir? (3 gün əvvəl)

Software Developer - 609 xal

E. Hacı - 600 xal

Onar Alili - 526 xal

Dilsuz - 448 xal

Cabbarov Sübhan - 423 xal

Ruslan Butdayev - 328 xal

Maqa - 325 xal

Namiq Bəndəli - 297 xal

U.Tarlan - 244 xal

Meherremoff - 234 xal

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

Proyekt haqqında

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