C# İle biLGİsayar programlama temelleri (C# Programlama Kitabı) Svetlin Nakov & Co



Yüklə 3,36 Mb.
səhifə27/31
tarix03.11.2017
ölçüsü3,36 Mb.
#28822
1   ...   23   24   25   26   27   28   29   30   31

11.5 Ad Kaplamı

Nesne yönelimli programlamada (NYP) ortak özellikleri olan yada ortak bir bağlamda kullanılan bir grup sınıfı içine alan paketler ad kaplamı (namespace) olarak adlandırılmaktadır. Ad kaplamları sınıfların semantik ayrımlarını kategoriler halinde oluşturarak kaynak kodun daha iyi ve mantıklı organizasyonuna katkıda bulunur ve kullanımını kolaylaştırır. Şimdi C# ad kaplamlarını göz önüne alacağız ve bunların nasıl kullanılacağını göreceğiz.



11.5.1 C# Ad Kaplamları

C# ad kaplamları herhangi bir gereksinime bağlı olmadan da mantıksal olarak dosya sistemine yerleştirilmesi konusunda ilgili olarak adlandırılmış sınıf gruplarıdır. Ancak klasör adının ad alanı ile eşleşmesi gerektiği düşünülmektedir ve sınıf adı tanımlanmış bulunduğu dosya adı ile eşleşmelidir. Bazı programlama dillerinde dikkat etmek zorundayız ki, verilen bir ad kaplamında kaynak kodun derlenmesi ad kaplamının elemanlarını klasörlere dağıtmakla ve dosyaları disk üzerine dağıtmakla ilgilidir. Örneğin Java’da, dosya organizasyonunun açıklandığı gibi olması gerekiyor. (uymadığınız takdirde, derleme hatası oluşacaktır). C# bu konuda harfi harfine kurallar getirmez.


Şimdi, ad kaplamlarını tanımlamak için bir mekanizma düşünelim.

11.5.2 Ad Kaplamlarının Tanımlanması

Visual Studio'da yeni bir ad kaplamı veya belirli bir ad alanına ait yeni bir sınıf oluşturulması Çözüm Gezgini'nin bağlam (context) menüsündeki komutlar tarafından otomatik olarak gerçekleşir (ilgili klasör üzerinde sağ tıklayarak). Çözüm Gezgini, varsayılan olarak, entegre ortamın sağ kısmında görüntülenmiştir. Visual Studio içindeki Çözüm Gezgini’nin bağlam menüsü üzerinden halihazırdaki MyNamespace ad kaplamına nasıl yeni bir sınıfı ekleyeceğimizi göreceğiz:


Proje MyConsoleApplication olarak adlandırılmaktadır ve yeni oluşturulan sınıf, onun MyNamespace klasörü içine ad kaplamı olarak aşağıdaki kodla eklenecektir:

namespace MyConsoleApplication.MyNamespace

Bir sınıfı kendi dosyası içinde tanımlamışsak, ve yeni yada halihazırdaki bir ad kaplamı içine bu sınıfı eklemek istiyorsanız, bunu manuel olarak elle yapmak zor olmayacaktır. Adlandırılmasını istediğiniz sınıf blok kodunu namespace anahtar sözcüğü ile çevrelemeniz yeterli olacaktır:




namespace

{



}



Sınıf tanımının başında namespace anahtar sözcüğünü, bunu takiben ad kaplamının tam adını kullanıyoruz. C# ad kaplamlarının büyük harfle başlaması gerektiği ve Pascal biçimine uygun yazılacağı varsayılır. Örneğin, dize işleme ile ilgili sınıfları içeren bir ad kaplamı yazmanız istendiğinde, StringUtil tercih edilir, ancak string_utils tercih edilmemelidir.

11.5.3 İç İçe Ad Kaplamları



Ad kaplamları, sınıf hariç, başka diğer ad kaplamlarını içerebilir (iç içe ad kaplamları). Bu yolla, sezgisel olarak bir ad kaplamı hiyerarşisi oluşturulabilir. Böylece sınıfları semantiklerine göre daha detaylı dağıtabilirsiniz.
Ad kaplamlarını hiyerarşi içinde adlandırırken . (nokta) karakterini kullanıyoruz. Örneğin, .NET Çerçevesi içinden System ad kaplamı kendi içinde Collections alt-ad kaplamını içerir. Böylece iç içe geçmiş ad kaplamının tam adı System.Collections olarak yazılır.

11.5.4 Sınıfların Tam Adları

Ad kaplamının anlamını mutlak şekilde anlayabilmek için, şunu bilmek önemlidir:





Sınıf adlarının sadece tanımlanmış oldukları ad kaplamı içerisinde benzersiz olması gerekir.

Belirli bir ad kaplamı dışındaysanız ad alanındaki sınıfların adları ile eşleşsin veya eşleşmesin, rasgele ada sahip olan sınıflar oluşturabilirsiniz. Bunun nedeni, ad alanının içinde kalan sınıfların benzersiz bağlamda tanımlanmış olmalarıdır. Sözdizimsel olarak bu benzersizliğin nasıl tanımlandığını anlamamız gerekiyor.


Sınıfın tam adı sınıfın ilk adıdır ve öncesinde tanımlanmış bulunduğu ad kaplamının adı bulunur. Her sınıfın tam adı benzersizdir. Yine nokta işaretini kullanırız:

.

Şimdi, örneğin, System.Globalization ad kaplamında tanımlı CultureInfo sistem sınıfını ele alalım. (“Konsol Giriş ve Çıkış” Bölümü’nde bu sınıfı kullanmıştık.) Bu tanıma göre, sınıfın tam adı System.Globalization.CultureInfo olarak yazılır.


.NET çerçevesi içinde bazen eşleşen adları bulunan fakat farklı ad kaplamlarında tanımlı sınıflar bulunabilir, örneğin:

System.Windows.Forms.Control

System.Web.UI.Control

System.Windows.Controls.Control




11.5.5 Ad Kaplamı Eklenmesi

Nesne yönelimli bir uygulamayı oluştururken, çok sıklıkla birden fazla sayıda belirli bir ad kaplamına ait sınıflar kullanılır. Programcıya kolaylık sağlamak amacıyla kaynak kodun bulunduğu geçerli dosyanın içine bir ad kaplamı eklenir. Verilen bir ad kaplamını ekledikten sonra, içinde tanımlı tüm sınıfları, tam isimlerine gerek kalmaksızın kullanabilirsiniz.


Mevcut kaynak kod dosyasında ad kaplamını eklemek using anahtar sözcüğüyle aşağıdaki gibi çalıştırılır:

using ;

Ad kaplamı eklemenin önemli bir özelliğine dikkat çekeceğiz. Doğrudan ad kaplamında tanımlanan bütün sınıflar dahil ve kullanılabilirdir, ama şunu bilmek zorundayız:





Ad kaplamı eklenmesi özyinelemeli değildir, yani bir ad kaplamını eklerken iç içe ad kaplamlardan gelen sınıflar dahil edilmez.

Örneğin, System.Collections ad kaplamının eklenmesi iç içe ad kaplamı olan System.Collections.Generic sınıflarını otomatik olarak dahil etmez. Kullanılmak istendiğinde, ya tam adlarını uygulamak zorundayız, yada onları içeren ad kaplamını eklemek zorundayız.




Yüklə 3,36 Mb.

Dostları ilə paylaş:
1   ...   23   24   25   26   27   28   29   30   31




Verilənlər bazası müəlliflik hüququ ilə müdafiə olunur ©muhaz.org 2024
rəhbərliyinə müraciət

gir | qeydiyyatdan keç
    Ana səhifə


yükləyin