Yapıcı metod kullanman gerek. Instance variable a metod dışından erişemezsin.
class Tureyen : Temel { new int a;
public Tureyen() { base.a = 15; } }
bersgurs
kullanıcısına yanıt
instance bir sınıftan nesne üretirken diyoruz variable ise değişken demek ama bunları birleştirince bir anlam çıkaramadım yani instance variable ne demek ?
su an yazdigin kod suna benziyor:
class A { int asd; asd = 12; }
base'e ozel bir durum yok.
bak mesela ustteki yerine sunu yazsaydin bunun adi instantiation int asd = 12; ve bunu classin icinde direkt yazabilirsin cunku ilk degeri vermissin
classin icinde declaration veya instantiation yapabilirsin ama declaration yapip sonra ayriyetten assignment yapamazsin (ustteki class A daki gibi.)
o yuzden constructor (yapici metod) kullanmalisin senin durumunda. veya classin icindeki herhangi bir metodda kullanabilirsin.
base.a dedigin de zaten base yokmus gibi gecerli bu dedigim.
-------------
terimlere de aciklik getireyim once senin sorduklarin:
instance demek o class turunde bir nesne, object. variable dedigin gibi degisken demek ornegin: int a = 12; burada a, int turunde bir degisken. int dedigimiz arka planda Int32 demek. yani bu a, aslinda Int32 class'inin bir instance'i. (Int32 aslinda class degil ama oyleymis gibi dusunebilirsin)
instance olusturma yani nesne olusturma new anahtar kelimesiyle yapilir. constructor yani yapici metod var ya hani public ClassIsmi() {} diye tanimlarsin. bunu su sekilde cagiriyorsun: new ClassIsmi() yani bu constructor metodunun ismi class ismi ile ayni gibi dusun, normal metod gibi cagir ama basina new ekle. bu sana o classin bir instance'ini verir, tabii constructor'da yapilacak islemler yapilmis oldu o nesne uzerinde.
ustte yazdigim seyler; declaration, tanimlama, int a; seklinde assignment, atama. a = 12; seklinde instantiation, olusturma. int a = 12; seklinde ki buna declaration + assignment da diyebilirsin ama instantiation daha dogru. burada int ornegi verdim ama istedigin class icin uygulayabilirsin bunu. tabii 12 yerine new ClassIsmi(); seklinde olur. dedigim gibi int de aslinda bir classtir bir nevi. class'lar reference type'tir. bu durumda Int32, Int16, Int64 (int, short, long), double ve float gibi olanlara Struct deniyor turkcesi Yapi seklinde gecer. Bunlar value type'tir yani deger tipi. reference vs value type arastirabilirsin onemli bir konu ve kafani belki karistirabilir. (string bir struct degildir classtir)
tam anlatamadiysam soyle daha iyi anlatmaya calisayim veya baskasi anlatir en azindan.
anladım çok sağ ol üstat :)
yeni mesaja git
Yeni mesajları sizin için sürekli kontrol ediyoruz, bir mesaj yazılırsa otomatik yükleyeceğiz.Bir Daha Gösterme