Cox sag olun. Minnetdaram. c#-dan maraqli linkler kitablar ve ya melumat tapanda paylasin zehmet olmasa. Haminiza ugurlar
Klass və Obyekt anlayışları müqaisə olunmamalıdırlar. Burda qeyri adi bir şey yoxdur. Ən sadə hala baxaq: tutaq ki, int tipindən hər-hansı x dəyişəni elan edirik aşağıdakı kimi:
[code] int x; [/code]
Bu zaman kompilyator başa düşür ki, biz [code] int [/code] tipindən olan
[code] x [/code] adlı dəyişən elan etmişik. Daha sonra biz bu dəyişənə hər hansı qiymət mənimsədə bilərik ([code] x=9; [/code]) v.s.
Klasslar isə [code] int , char, double [/code] kimi standart yox, proqramçının
yaratdığı tiplərdir. Misal üçün yuxarıda Toğrul [code] İnsanlar [/code] adlı yeni tip - klass yaratmışdır. Daha sonra isə bu yaratdığı tidən [code] Eli [/code] adlı
dəyişən elan etmişdir. Klass tipindən olan dəyişənlərə [code] obyekt [/code]
deyirlər. Başqa sözlə desək, Yuxarıdakı nümunədə İnsanlar klass tipindən Eli obyekt dəyişəni elan edilib, yaradılıb.
Bu haqda coxsayli yazilar vardir.
En sade ve qisa asagidaki link izah edir:
1. http://www.deknight.com/2010/10/difference-between-class-and-object-in.html
Lakin dahasi ucun bu linklere de baxmaginiz faydalidir, cunki bu sual artiq defelerle forumlarda verilib ve cavablandirilib :
1. http://docstore.mik.ua/orelly/java/javanut/ch03_01.htm
2. http://www.allinterview.com/showanswers/32551.html
3. http://forums.techarena.in/software-development/1131896.htm
4. http://www.codestyle.org/java/faq-Objects.shtml#classobjectdiff
5. http://en.wikipedia.org/wiki/Object_%28computer_science%29
6. http://en.wikipedia.org/wiki/Class_%28computer_science%29
7. http://answers.yahoo.com/question/index?qid=20081022052646AAtG6J3
8. http://mr-ponna.com/Question/343/What-is-the-difference-between-an-object-and-a-class-/
Yene nese sual olsa yazin.
Tesekkurler.
Salam. Belə başa düşdüm ki, siz class və object`in məntiqini başa düşə bilmirsiz. Əgər elədirsə onda bunu belə bir misalla başa salmağa çalışacam:
Məsələn "İnsanlar" deyəndə ağlımıza düşünən, danışan, öyrənən və s. bacarıqları olan bir canlı qrupu ağlıma gəlir. "Vəli" (və ya "Əli" :) ) deyəndə mən mən yenə də düşünən, danışan, öyrənən və. bir canlı fikirləşirəm. Amma bütün "İnsanlar" eyni deyil, Əlinin özünə məxsus xüsusiyyətləri də ola bilər , məsələn, boyu, yaşı, bildiyi dillər və s. Burada biz "İnsanları" bir Class`a bənzədə bilərik. Əlini isə həmin "İnsanlar" sinfinə mənsub olan bir Obyekt (insan) olacaq.
C#`də class`ın yaradılması nümunəsi:
[code]
public class İnsanlar
{
int boy;
int yas;
void danis(string soz)
{
//danis
Console.WriteLine( soz );
}
}
[/code]
Obyekti tanıtmaq üçün isə aşağıdakı koddan istifadə etməlisiniz:
[code] İnsanlar Eli = new İnsanlar() [/code]
gördüyünüz kimi əvvəl obyektin aid olduğu sinfin adını, sonra öz adını sonra =, sonra new sonra isə yenidən sinif adı və () yazırıq. (Bunun daha mürəkkəb formaları da var, hələlik bu bəs edər məncə)
Sonra yaratdığımız obyektin xüsusiyyətlərini dəyişə də bilərik, Məsələn əlinin boyu uzanacaq, Yaşı artacaq və s.
bu xüsusiyyətlərə çatmaq üçün nöqtə operatorundan istifadə etməliyik.
[code]
Əli.boy = 140;
Əli.yaş = 12;
[/code]
Əlinin aid olduğu sinifdə (İnsanlar) danışmaq bacarığı var. Yəni Əli də danışa bilər. Aşağıdakı kodla Əliyə "Salam" dedizdirsək:
[code] Əli.danış("Salam"); [/code]
Qeyd: yuxarıda yazdığım kodları olduğu kimi Visual C#`ə əlavə edib yoxlamağa çalışmayın. Çünki onları yalnız işləmə prinsipini başa salmaq üçün yazmışam, Compilerdən keirə bilməyə bilərsiniz.
Daha aydın başa düşmək üçün bir kitaba ya online resursa müraciət etsəniz yaxşı olar. Ümid edirəm bəzi şeyləri başa düşməkdə sizə kömək edə bildim.
Salam Togrul. class ve object haqqinda genis melulat vere bilersen? nese men yaxsi basa dusmurem onlari
Əslində Event elə özü bir Delegate növüdür (Multicasted Delegate). Gördükləri işə görə demək olar ki eynidirlər. Bir eventi tanıdarkən onun tipi kimi bir delegate qoymaq lazımdır.
[code]
// Delegatenin tanıdılması
public delegate void ToplamaDelegete(int eded1, int eded2, int eded3);
// Eventin tanıdılması
public event Hadise ToplamaHadisesi;
[/code]
Amma əsas fərqləri ondadır ki, bəzən Eventdən istifadə etmək Delegate`yə nisbətən daha təhlükəsiz ola bilər. Burda gözlənilən təhlükə proqramçının səhvən hansısa bir sinfin işinə müdaxilə edib onu korlamasıdır.
Biz bir delegatenin üzərində bu əməlləri apara bilərik: hər hansı method`a bərabərləşdirə, silə, üzərinə method gələ və Method`unu silə bilərik
Amma Eventdə isə bunlardan yalnız ikisini edə bilərik: Üzərinə method əlavə edə və çıxa bilərik.
Başqa bir fərqləri də ondadır ki biz delegateni proqramın islənilən yerində cağıra bilərik:
[code]Delegate() //şəklində[/code]
amma biz bunu Event üçün edə bilmərik, çünki event yalnız öz yerləşdiyi class daxilində çağırıla bilər. O da eyni şəkildə çağırılır. Buna gərə də təhlükəsizlik baxımından Event daha yaxşıdır məncə. Amma bu o demək deyil ki Delegateni bir qırağa qoyub ancaq Eventdən istifadə eləməl lazımdır :)
Deferred və İmmediate Execution
Playstation 3 ile playstation 4 arasındakı fərqlər?