Erişim Türleri

Erişim Belirleyicileri

Nesnelerin erişim belirleyicileri için şöyle bir örnek verirsek sanırım yanlış olmayacaktır. Ben özel eşyalarımı ailemden birisi ile paylaşabilirim ancak komşularım ile paylaşmam. Duruma nesne tabanlı programlama tarafından baktığımızda aile fetlerinden birisi benim özel datalarıma ulaşabilir ancak komşular ulaşamaz.

Erişim belirleyicileri ile nesne sahip olduğu üyelere kimin ve hangi şartla erişebileceğini belirtir. Örneğin televizyonumuzun kullanıcı olarak erişebildiğimiz ve erişemediğimiz kısımları vardır (sınıfın üye elemanları). Kanal değiştirmek için kanal düğmelerini kullanırız, çünkü bunların kullanılması tamamıyla bize serbesttir. Ancak kanal bilgisinin nasıl ve nerede tutulduğunu bilemez ve bu kısma erişemeyiz. Sadece kullanmaya iznimizin olduğu kısımları kullanabiliriz. Erişim belirleyicileri, nesne kullanıcısına nesneyi nasıl kullanacağını gösterir.

Erişim Türleri

Public: Public olarak tanımlanmış bir metot veya özelliğine herhangi bir yerden ulaşmak mümkündür. Herkese açık olarak tanımlayabiliriz.

Private: Bu sıfat ile tanımlanmış metot veya özelliklere sadece tanımlandığı sınıf içerisinden ulaşabiliriz.

Protected: Protected metotlara veya özelliklere tanımlandıkları sınıftan ve bu sınıftan üretilmiş alt sınıflardan ulaşabiliriz.

Internal: Internal metot veya özelliklere tanımlandıkları sınıftan veya tanımlandıkları sınıfla aynı assemblede olan sınıflardan erişebiliriz.

Protected Internal: Bu tip metot ve özellikler hem protected hem de Internal özelliğindedir. Diğer bir ifade ile bunlara ancak kendi sınıflarından veya aynı Assembly’deki alt sınıflardan ulaşabiliriz.

Yöntemler genelde public anahtar sözcüğü ile belirtilir. Böylece nesneni kullanıcısı bu yöntemleri kullanarak nesnenin private anahtar sözcüğü ile tanımlanmış ve dışa kapalı verilerine ulaşabilir.

C#’da tüm yöntemler sınıf içinde bildirilir ve tanımlanır, ancak C++’da sınıfın yöntemleri, sınıfın dışında da tanımlanır.

using System;
namespace Siniflar {
     class Stok {
          private int StokMik;
          
          public void SetStokMiktari(int miktar) {
               StokMik = miktar;
          }

          public int GetStokMiktari() {
               return StokMik;
          }
     }

     class Uygulama {
          static void Main(string[] args) {
               Stok st = new Stok();
               int fmiktar = 0;
               st.SetStokMiktari(10);
               fmiktar = st.GetStokMiktari();
               Console.WriteLine("Stok Miktari: {0}", fmiktar);
          }
     }
}

Bir Cevap Yazın

This site uses Akismet to reduce spam. Learn how your comment data is processed.