DMCA.com Protection Status C# Sınıf Erişim Yöntemleri - Bilişim Eğitim Merkezi
Anasayfa / Yazılım 360 Eğitimleri / C# Sınıf Erişim Yöntemleri

C# Sınıf Erişim Yöntemleri

Nesne tabanlı programlama dillerinde bir class(sınıf), property, field yada metotlara erişmek için belli başlı kullandığımız belirteçler vardır.  Belki çoğumuz bunları anlamlarını ve görevlerini tam bilmeden de kullanmış olduğumuz bu belirteçler nesne tabanlı programlama dillerinde önemli bir yere sahiptir.

Bu belirteçler önlerine yazıldığı bir field’ı ya da bir metodu ya da bir property’ı yada bir sınıfa erişmek için yada erişimi kısıtlamak için kullanılır. Bu erişim belirteçlerin özelinden genele doğru gidecek olursak;

Private: Sadece bulunduğu class(sınıf) içerisinden erişilebilir anlamına gelir. Bir sınıf içerisinde istediğimiz yerden private ile belirlenmiş yapıya ulaşabiliriz. Sınıf dışından ulaşmak ise imkansızdır. Private ile belirttiğimiz nesneyi(field,property,method), sınıfın dışarısına çıkarmayı engellemek, korumak yada kapsüllemek (encapsulation) için kullanırız. Örnek olarak aşağıdaki resimdeki gibi Islemler adında class tanımadım. Burada class içinde sayi1, sayi2 field’ları ve topla metoduna erişilir. Fakat dışardan erişilemez.

Nesne tabanlı programlama dillerinde bir class(sınıf), property, field yada metotlara erişmek için belli başlı kullandığımız belirteçler vardır.  Belki çoğumuz bunları anlamlarını ve görevlerini tam bilmeden de kullanmış olduğumuz bu belirteçler nesne tabanlı programlama dillerinde önemli bir yere sahiptir.

Bu belirteçler önlerine yazıldığı bir field’ı ya da bir metodu ya da bir property’ı yada bir sınıfa erişmek için yada erişimi kısıtlamak için kullanılır. Bu erişim belirteçlerin özelinden genele doğru gidecek olursak;

Private: Sadece bulunduğu class(sınıf) içerisinden erişilebilir anlamına gelir. Bir sınıf içerisinde istediğimiz yerden private ile belirlenmiş yapıya ulaşabiliriz. Sınıf dışından ulaşmak ise imkansızdır. Private ile belirttiğimiz nesneyi(field,property,method), sınıfın dışarısına çıkarmayı engellemek, korumak yada kapsüllemek (encapsulation) için kullanırız. Örnek olarak aşağıdaki resimdeki gibi Islemler adında class tanımadım. Burada class içinde sayi1, sayi2 field’ları ve topla metoduna erişilir. Fakat dışardan erişilemez.

Internal: Aynı projede bulunan bütün sınıflar içerisinde erişmek için kullanılan belirteçtir.

Islemler sınıfındaki  fark metodunu internal tanımlıyorum. Ve Deneme adındaki başka bir class içerinden erişmek için işlemler sınıfından bir örnek alıp fark() metoduna erişebilmemiz mümkün.

Aynı proje içerinden bir de deneme adında bir sınıf oluşturuyorum. Ve sonuç yaz metodu içerisinde fark metoduna erişebiliyorum. Dikkat ederseniz yeniislem deyip noktaya bastıktan sonra sınıfa ait ortalama, topla gibi metotlar görünmüyor. Çünkü biz onları görünmesin ve ulaşılamasın diye sınıf içerisinde private tanımladık.

Not:Class isminde herhangi bir belirteç belirtilmez ise default olarak internaldir.

Not: Class belirteçleri private olamaz.Yanlış bir tanımlama olduğu için class isminin altını çizecektir. Class belirteçleri tanımlamada belirtildiği gibi private,protected yada protected internal olamaz. Sadece internal yada public olabilir.

 

Protected internal: bu şekilde tanımlanan class öğeleri hem farklı classlardan  erişilebilir (internal),  hem de oluşturulduğu class  miras alındığı sınıftan erişelebilir .(protected)

Public: public ile belirtilen field, metod , property  yada class nesnelerimize

Aynı sınıf içerisinde,

Farklı sınıf içerisinde,

Farklı projelerdeki sınıflar içerisinde bile erişebiliriz.

Örnek olarak Islemler sınıfımızı aşağıdaki gibi tasarlıyorum.

Şimdi farklısinif adında bir class tanımlayalım.

Ve aşağıdaki gibi public ile tanımladığımız Sayi1 ve Sayi2 adındaki property’lere dışarıdan değerler set edilip public ile belirtilmiş topla() metodu çağrılır. Aynı şekilde istenirse public  ile tanımlanmış diğer metotlara da erişilip kullanılabilir.

 

Hakkında bilisimegitim

Ayrıca Kontrol Edin

Database First Yaklaşım ile Veri Tabanı İşlemleri

Entity FrameWork ORM aracı ile bizler yazmış olduğumuz class’ları veritabanı tablosu yada tam tersi işlemi …

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Eğitimler İçin Arayın!