• Sonuç bulunamadı

ÜNĠTE 3 NESNE TABANLI PROGRAMLAMA -I NESNE TABANLI PROGRAMLAMA ĠÇĠNDEKĠLER. HEDEFLER Bu üniteyi çalıģtıktan sonra; 3. NESNE TABANLI PROGRAMLAMA

N/A
N/A
Protected

Academic year: 2022

Share "ÜNĠTE 3 NESNE TABANLI PROGRAMLAMA -I NESNE TABANLI PROGRAMLAMA ĠÇĠNDEKĠLER. HEDEFLER Bu üniteyi çalıģtıktan sonra; 3. NESNE TABANLI PROGRAMLAMA"

Copied!
12
0
0

Yükleniyor.... (view fulltext now)

Tam metin

(1)

NESNE TABANLI PROGRAMLAMA -I

ÜNĠTE

3

NESNE TABANLI PROGRAMLAMA

ĠÇĠNDEKĠLER

3. NESNE TABANLI PROGRAMLAMA 3.1. Nesne Tabanlı Programlama Nedir?

3.1.1. Kapsülleme ( Encapsulation ) 3.1.2. Kalıtım (Inheritance

3.1.3. Çok Biçimlilik ( Polymorphism ) 3.2. Net Framework ve Yapısı

3.3. MSIL (Microsoft Intermediate Language) 3.4. Assembly Kavramı

3.5. JIT Derleyiciler ( Just in Time)

3.6. Temel Sınıf Kütüphaneleri ( The Base Class Library )

HEDEFLER

Bu üniteyi çalıĢtıktan sonra;

 Nesne Tabanlı Programlama Nedir? öğreneceksiniz,

 Net Framework ve Yapısını tanıyacaksınız,

 Temel Sınıf Kütüphanelerini kullanacaksınız.

(2)

NESNE TABANLI PROGRAMLAMA

3. NESNE TABANLI PROGRAMLAMA

Gün geçtikçe programların daha karmaĢık bir hal alması, program kodunun kurumsal uygulama projelerinde yüz binlerce satırı bulması ve yazılım geliĢtirme maliyetinin çok artması gibi nedenlerden dolayı bilim adamları, programcılara yeni bir yaklaĢımın kullanıla bilineceğini öğrettiler.

Bu yaklaĢımın ismi Nesne Tabanlı Programlama ( Object Oriented Programming ) dir.

Nesne tabanlı programlama tekniği, diğer yaklaĢımlara nazaran, yazılım geliĢtiren insanlara büyük avantajlar sağlamaktadır. Birincisi karmaĢık yazılım projelerinin üretilmesini ve bakımını kolaylaĢtırıyor olmasıdır. Diğeri ise program kodunun tekrar kullanılabilmesine (code - reusability) olanak sağlamasıdır. Bu noktada program kodunun tekrar kullanılabilmesi profesyonel yazılım Ģirketlerinin maliyetlerini azaltmıĢtır.

Dolayısı ile programların lisans ücretleri düĢmüĢ ve sektörün sürekli olarak canlı kalmasına ve rekabet içinde geliĢmesine yardımcı olmuĢtur.

Telefon sınıfı

Nesne

Nesne

Telefon

Telefon Kablolu

Kablosuz, kapaklı

Kablosuz

ġekil 3.1: Sınıf ve Nesne kavramının gösterilmesi

Bu bölümde günümüz programlarının bel kemiğini oluĢturduğuna inandığımız nesne tabanlı programlamadan bahsedilecektir.

3.1. Nesne Tabanlı Programlama Nedir?

Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaĢımdır. Klasik prosedürle programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her Ģey veri ve bu veriyi iĢleyen metotlar etrafında dönüyordu. Aslında nesne tabanlı programlamada da iki önemli birim; veri ve veriyi iĢleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır.

(3)

NESNE TABANLI PROGRAMLAMA

Problem Uzayı

Çözüm Uzayı

Bilgisayar Soyutlama

Modelleme

Programlama Dili

Gerçekleme

Programcı Gerçek Dünya

ġekil 3.2(a): Nesne tabanlı programlama modeli

Mesela elimizde bir bilgisayarımız olsun. Bilgisayarın markası, modeli, rengi, çalıĢtığı elektrik voltajı, hangi tür donanım özellikleri (veri). Aynı zamanda bilgisayarımız taĢıyabiliriz, ĠĢlerimizin hesaplanması içinde kullanabiliriz ve çalıĢtırabiliriz. Bunlar ise bilgisayarın fonksiyonlarıdır (metot).

Bilgisayar Sınıfı

Bilgisayar1

Bilgisayar2

Bilgisayar3 Bilgisayar4 Nesneler

ġekil 3.2(b): Sınıf (Class) ve nesne (Object) kavramı

Eğer bilgisayar ile ilgili bir program yapmıĢ olsak ve nesne tabanlı programlama tekniğini kullanırsak hemen bir bilgisayar sınıfı (class) oluĢtururduk. Bu sınıfta bilgisayara ait bilgiler (veriler) ve bilgisayar ile yapabileceğimiz iĢler (metot) bulunurdu.

O zaman nesne tabanlı programlamada bir sınıfta, sınıfa ait veriler ve bu verileri iĢleyip bir takım faydalı sonuçlar üreten fonksiyonlar / metotlar bulunur. Dahası, biz bir tane bilgisayar sınıfı tasarlarsak bu sınıftan istediğimiz sayıda değiĢik bilgisayarlar (Object veya instance) yapabiliriz. ġekil 3.2(b): bu Ģekilde bilgisayar sınıfı ve bu sınıftan

(4)

NESNE TABANLI PROGRAMLAMA

oluĢturduğumuz nesnelerin görsel olarak anlatımı bulunmaktadır. Nesne tabanlı programlamanın bazı temel kavramları vardır. ġimdi bu kavramlardan bahsedelim.

3.1.1. Kapsülleme (Encapsulation)

ĠĢlemlerin ve verilerin gizlenmesine veya bir grup içerisinde toplanmasına kapsülleme denir. Kapsülleme sayesinde, sınıfımız içinde kullandığımız alanların dıĢarıdan herhangi bir etki ile doğrudan değiĢtirilmelerini engellemiĢ oluyoruz. Bu durum bizim isteğimiz dıĢında oluĢabilecek atamaların önüne geçmemize ve ilerde de bu alanların değerleri değiĢecekse bizim belirlediğimiz bir çizgide olmasına neden olur.Bu da programcılıkta ve özellikle nesne tabanlı programlamada çok büyük bir yere sahip olan kontrolün elimizde olmasını sağlar.

Arabirim Uygulama

ġekil 3.3: Kapsülleme

Yukarıdaki resimde gördüğünüz saat içinde çok karmaĢık mekanizmalar bulunmaktadır.

Ama bu karmaĢık mekanizma saatin kullanıcısını ilgilendiren bir olay değildir. Kullanıcı için önemli olan saatin düzgün çalıĢmasıdır.

3.1.2. Kalıtım (Inheritance)

Normalde bu kavramı gerçek hayattan biliyoruz. En basit anlamda, örneğin “Ben, annemin saç rengini almıĢım.” dediğimde, tıp uzmanlarının buna getirdikleri yorum " siz annenizden kalıtımsal olarak Ģu özelikleri almıĢsınız." oluyor. Programlama dillerinde de kalıtımın rolünün aynı olduğunu söyleyebiliriz. Zaten nesne tabanlı programlama dillerini tasarlayan uzmanlar, gerçek hayat problemlerini, bilgisayar ortamına taĢıyabilmek amacıyla en etkili modelleri geliĢtirmiĢler, bu model içerisine kalıtımı da katarak çok önemli bir özelliğin kullanılabilmesini sağlamıĢlardır.

(5)

NESNE TABANLI PROGRAMLAMA

Düğme

Memeli

İnsan

Kedi

Balina

ġekil 3.4: Kalıtım (Inheritance) kavramı

Kalıtım kavramının programlama dilleri içerisinde bir tanımını yapmak gerekir. En genel tanımı ile kalıtım, "Bir sınıftan yeni sınıflar türetmektir" Her Ģey den önce kalıtım yolu ile bir sınıftan yeni sınıflar türetmenin, türetilen sınıflara etkisi nedir? Bu sorunun cevabı kalıtımın da özünü oluĢturmaktadır. Türetilen her bir sınıf, türediği sınıfın özelliklerini de devralır. Buradan, türetilmiĢ bir sınıf içerisinden, türediği sınıfa ait üyelere eriĢilebileceği sonucunu çıkartabiliriz. Elbette bu eriĢimin de bazı kuralları vardır.

Örneğin eriĢim belirleyicilerinin etkisi veya aynı üyelerin kullanılıĢı gibi durumlar.

Neden bir sınıftan baĢka sınıflar türetiriz? Bunun cevabı Ģudur: Tüm sınıflarda ortak olan özellikleri tek bir sınıf içerisinde toparlamak. Bu modellerimizi geliĢtirirken, her sınıf için ortak olan üyelerin tekrar yazılmasını engellemekle kalmayacak, sınıflar arasında düzenli bir hiyerarĢi yapısının oluĢmasını da sağlayacaktır.

ġekil 3.5: Kalıtım kavramına bir baĢka örnek

ġimdi güzel bir örnek verelim. Gerçek hayat modelleri bu iĢ için biçilmiĢ kaftandır.

Örneğin, otomobilleri bir temel sınıf olarak düĢünebiliriz. Bu sınıftan otomobillere ait değiĢik kategorileri türetebiliriz.(ġekil 3.5’e bakınız) Buradaki tüm sınıfların ortak bir takım özellikleri var. Bir motorlarının olması, tekerleklerinin olması, viteslerinin olması vb. ama aynı zamanda her ayrı sınıfın kendine has özellikleri de vardır. Örneğin ralli araçları için güvenlik bariyerlerinin olması, pilotlar için kaskların kullanılması gibi. Bu tabloyu inceleyince “Her ralli aracı bir otomobildir” diyebiliriz. Bu ralli araçlarının

(6)

NESNE TABANLI PROGRAMLAMA

otomobil sınıfından türediğini gösterir. Diğer yandan “Her WRC bir ralli aracıdır.” da diyebiliriz. Bu ise, WRC araçlarının ralli araçlarının birtakım ortak özelliklerine sahip olduğunu ayrıca otomobillerin de bir takım ortak özelliklerine sahip olduğunu gösterir.

Ġlk aĢamada ralli, ticari, özel ve spor sınıflarının otomobil sınıfından türediğini söyleyebiliriz. Bununla birlikte WRC ve GrupN sınıflarında otomobil sınıfından türeyen ralli sınıfından türemiĢtir. Yani burada Ģunu söyleyebilmek mümkündür. WRC sınıfı hem ralli sınıfının hem de otomobil sınıfının özelliklerine kalıtımsal olarak sahiptir.

1.1.3. Çok Biçimlilik (Polymorphism)

Bir metodun farklı nesnelerde veya farklı ortamlarda farklı sonuçlar üretmesidir. Mesela

“konuĢmak” insan sınıfına ait bir metottur. Ancak bu metot ait olduğu insan sınıfının örneğine göre farklı sonuçlar üretir. ArkadaĢımızla konuĢurken farklı bir tonda, patronumuzla konuĢurken farklı bir tonda konuĢuruz, diğer bir ifadeyle bu metodun birden fazla biçimi vardır.

ġekil 3.6: Çok biçimlilik (Polymorphism) Ģeması

3.2. Net Framework ve Yapısı

NET Framework, Microsoft tarafından geliĢtirilen, açık Ġnternet protokolleri ve standartları üzerine kurulmuĢ komple bir uygulama geliĢtirme platformudur. Buradaki uygulama kavramının kapsamı çok geniĢtir. Bir masaüstü uygulamasından tutun, bir web tarayıcı uygulamasına kadar her Ģey bu platform içinde düĢünülmüĢtür ve desteklenmiĢtir. Bu uygulamaların birbirleriyle ve geliĢtirildiği ortam fark etmeksizin dünyadaki tüm uygulamalarla iletiĢimi için kolayca Web Servisleri oluĢturulmasına imkân verilmiĢtir.

(7)

NESNE TABANLI PROGRAMLAMA

ġekil 3.7: .NET Framework’ün bileĢenleri

Bu platform, iĢletim sisteminden ve donanımdan daha üst seviyede taĢınabilir olarak tasarlanmıĢtır. Özet olarak bakıldığında önümüzde duran .NET Framework :

 Ġnterneti hedef alan bileĢen setiyle,

Ġnterneti hedef alan bileĢen setiyle,

 Programcıları özgürleĢtiren, diller arası etkileĢime olanak tanıyan bağımsız dil mimarisiyle,

 Donanım-bağımsız ara seviye derleme ve güvenli talimat icraatını güvence altına alan çalıĢma zamanı ortamıyla,

 Web uygulamalarına getirdiği özgün ve radikal yaklaĢımıyla,

 Zengin ve mükemmel organize edilmiĢ sınıf kütüphanesi ve dokümantasyonu ile Sınırları ortadan kaldıran web servisi desteğiyle,

ve daha da sayabileceğimiz birçok özelliğiyle benzetildiği teknolojileri geride bıraka inkâr edilemeyecek seviyede özgün bir platformdur.

.Net Framework’ün Yapısı

Java’dan önce, geliĢtirilen yazılımlar direkt olarak makine koduna çevrilirdi. Java ile program kodu önce byte code’a çevrilir. JVM (Java virtual machine) bu kodu iĢletim sisteminin istediği koda çevirir. .Net içinde çalıĢma mantığı benzerdir. NET kodu ilk önce IL’ ye (Intermediate Language-Ara dil-veya MSIL) derler, bu IL kodu çalıĢtırılmak istendiğinde CLR, JIT derleyicilerini kullanarak kodu makine diline çevirir.

(8)

NESNE TABANLI PROGRAMLAMA

ġekil 3.8: .NET Framework’ün bileĢenlerini gösteren bir baĢka resim 3.3. MSIL (Microsoft Intermediate Language)

Normalde bir program derlendiğinde doğrudan makine koduna çevrilirken, .NET uyumlu bir dil ile derleme yapıldığında program kodu makine koduna değil de MSIL (Microsoft Intermediate Language)'e çevrilir. MSIL iĢlemciden bağımsız komut setinden oluĢmaktadır. Bu komut seti içerisinde nesnelerin yüklenmesi, depolanması baĢlatılması sağlayan komutların yanı sıra aynı zamanda nesneler üzerinde metot çağrımını sağlayan komutlar da yer almaktadır. .NET Framework ile yazılmıĢ bir kaynak kodun derlenmesi sonucu MSIL kodu oluĢmaktadır. MSIL, NET dilleri arasında bir bütünleĢme sağlamaktadır. MSIL kodun çalıĢtırılmasından önce var olan MSIL kodu, doğal makine koduna (native code) dönüĢtürülmektedir. Burada interpretation dediğimiz yorumlama iĢlemi yapılmaz.

ġekil 3.9: .Net tabanlı bir programın çalıĢtırılma evreleri

CLR (Common Language Runtime): Ortak Dil ÇalıĢma Platformu olarak da adlandırılan CLR, makine diline çevrilmiĢ bu kodu önbellekte tutar, bu performans artıĢına sebep olurken diğer taraftan sistem hafızasında küçümsenmeyecek yer iĢgal eder.

CLR, .NET altyapısında programların çalıĢmasını kontrol eden ve iĢletim sistemi ile programımız arasında yer alan arabirimdir. Normalde yazılan kodlar makine diline

(9)

NESNE TABANLI PROGRAMLAMA

çevrilir ve iĢletim sistemi ile direkt bağlantı kurup çalıĢırdı. Eğer platformdan bağımsız bir ortam istiyorsak, ihtiyaç duyulan Ģey CLR dir, hangi platformda iseniz (Linux, Mac, Windows) CLR bu noktada devreye girer ve. NET programlarını farklı platformlarda iĢletim sistemine göre çalıĢtırır.

3.4. Assembly Kavramı

Assembly; pek çok programcı tarafından yanlıĢ anlaĢılmıĢ bir kavramdır. Her Ģeyden önce, .NET 'teki Assembly kavramı ile herhangi bir mikroiĢlemciye ait sembolik makine dili birbirlerinden çok farklı Ģeyleri ifade eder. .Net'te derlenen sınıf kütüphaneleri (class library 'ler) ismine Assembly denilen dll dosyalarını oluĢturur. Bu anlamda bir Assembly, bir ya da daha fazla fiziksel dosyayı barındıran bir koleksiyondur. Bu dosyalar; assembly içerisindeki derlenmiĢ sınıfların kodları, resimler, resource dosyaları ve diğer binary dosyalardır. Assembly dosyaları .dll ya da .exe uzantılı olabilir. Assembly'ler kabaca COM bileĢenlerine (dll'lerine) benzetilebilir. Ancak bildiğimiz COM dll 'lerinden oldukça farklı bir yapıya sahiptir. Bu farklılığın en önemli sebebi assembly’lerin registry'i kullanmamasıdır. Oysa bildiğiniz gibi, COM dll'leri kendilerine ait bir takım kimlik bilgilerini saklamak için registry'i yoğun olarak kullanmaktadır. BileĢenlerin registry kullanımı beraberinde bazı dezavantajlar getirmektedir. Bir an için Visual Basic ile bileĢen tabanlı uygulamalar geliĢtirdiğimiz günlere dönersek, kendi makinemizde yazdığımız ve derlediğimiz bir uygulamayı, dosya kopyalaması ile baĢka bir makineye taĢıdığımızda uygulamanın çalıĢmadığını görürüz. Bunun nedeni; uygulamayı taĢıdığımız makinedeki iĢletim sisteminin, uygulamamızın kullandığı bileĢenler hakkında herhangi bir bilgiye sahip olmamasıdır.

3.5. JIT Derleyiciler (Just in Time)

C# ile IL’ ye derlediğimiz programı çalıĢtırırken JIT derleyicileri devreye girer. Bu derleyiciler programın çalıĢtırıldığı sistemin ve iĢlemcinin anlayabileceği makine kodunu oluĢturur.

Windows ortamı için 3 çeĢit JIT mevcuttur.

Normal JIT: IL kodu makine koduna çevrilirken default (varsayılan) olarak kullanılan derleyicidir. IL kodunu orijinal makine koduna çevirir ve önbellekte tutar.

Örneğin ; program içindeki derlenmiĢ bir metot program akıĢı içinde tekrar çağrılırsa önbellekten çekilir.

Pre-JIT: Tüm program kodunu makine koduna çevirip sonra çalıĢtıran JIT. fazla hafıza gerektirir. Programın daha hızlı çalıĢmasını sağlar.

Eco JIT: Kısıtlı hafıza ve ön bellekli sistemlerde. NET programlarının daha iyi çalıĢmalarını sağlamak için kullanılan derleyicidir.

(10)

NESNE TABANLI PROGRAMLAMA

3.6. Temel Sınıf Kütüphaneleri ( The Base Class Library )

.NET Framework’te programcıların iĢlerini kolaylaĢtırmak için birtakım hazır kütüphaneler vardır fakat C# dilinde hazır kütüphaneler mevcut değildir. Bunun yerine Framework dediğimiz altyapıda Base Class Library adı verilen temel sınıf kütüphaneleri mevcuttur. Temel sınıf kütüphaneleri, uygulamalarınızı geliĢtirirken size lazım olabilecek birçok servisi ve nesneyi içinde barındıran bir sistemdir.

Temel sınıf kütüphaneleri, namespaces (isim alanları)’ler içinde organize edilmiĢlerdir.

System isim alanı: .NET çalıĢırken gerekli temel sınıfları içerir. Ayrıca diğer_tüm sınıf kütüphaneleri de bunun içinde kümelenmiĢtir. System hiyerarĢinin tepesinde bulunur.

Örneğin tüm veri tabanı iĢlemleri için kullanılacak sınıf kütüphanesi “System.Data” dır.

Bu sınıf kütüphanesi içindeki SQL ile iĢlemler için “System.Data.SqlClient isim alanı mevcuttur.

 System.Net : HTTP ve ağ protokolleri için kullanılır.

 System.Xml : XML verileri ile çalıĢmak için kullanılır.

 System.IO : Dosyalara bilgi giriĢi, dosyadan bilgi okuma, I/O iĢlemleri için kullanılır.

 System.Windows.Forms: Windows tabanlı uygulamalarda kullanılan zengin grafik arabirimi kontrollerini içerir.

ÖZET

Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaĢımdır. Klasik prosedür el programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her Ģey veri ve bu veriyi iĢleyen metotlar etrafında dönüyordu. Aslında nesne tabanlı programlamada da iki önemli birim; veri ve veriyi iĢleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır.

ĠĢlemlerin ve verilerin gizlenmesine veya bir grup içerisinde toplanmasına kapsülleme denir. Kapsüllleme sayesinde, sınıfımız içinde kullandığımız alanların dıĢarıdan herhangi bir etki ile doğrudan değiĢtirilmelerini engellemiĢ oluyoruz. Bu durum bizim isteğimiz dıĢında oluĢabilecek atamaların önüne geçmemize ve ille de bu alanların değerleri değiĢecekse bizim belirlediğimiz bir çizgide olmasına neden olur.

Kalıtım, "Bir sınıftan yeni sınıflar türetmektir". Türetilen her bir sınıf, türediği sınıfın özelliklerini de devralır. Buradan, türetilmiĢ bir sınıf içerisinden, türediği sınıfa ait üyelere eriĢilebileceği sonucunu çıkartabiliriz.

NET Framework, Microsoft tarafından geliĢtirilen, açık Ġnternet protokolleri ve standartları üzerine kurulmuĢ komple bir uygulama geliĢtirme platformudur. Buradaki uygulama kavramının kapsamı çok geniĢtir. Bir masaüstü uygulamasından tutun, bir web tarayıcı uygulamasına kadar her Ģey bu platform içinde düĢünülmüĢtür ve desteklenmiĢtir.

(11)

NESNE TABANLI PROGRAMLAMA

Java’dan önce, geliĢtirilen yazılımlar direkt olarak makine koduna çevrilirdi. Java ile program kodu önce byte code’a çevrilir. JVM (Java virtual machine) bu kodu iĢletim sisteminin istediği koda çevirir. .Net içinde çalıĢma mantığı benzerdir. NET kodu ilk önce IL’ ye (Intermediate Language-Ara dil-veya MSIL) derler, bu IL kodu çalıĢtırılmak istendiğinde CLR, JIT derleyicilerini kullanarak kodu makine diline çevirir ve çalıĢtırılır.

DEĞERLENDĠRME SORULARI

1. IL ne demektir?

a) Interchangeable Library b) Interoperable Languages c) Intermediate Language d) Interchangeable languages e) Interaktif Languages

2. C# derleyicisi hangi formatta çıktı verir?

a) Byte Code b) IL

c) Hex Dump d) Intel Assembler e) Mac Assembler

3. AĢağıdaki ortamlardan hangisi program kodunuzu çalıĢtırır?

a) MSIL b) CLS c) CLR d) VB e) C++

4. Nesne tabanlı programlamada gizleme ve açığa çıkarma kavramını hangisi ifade eder?

a) Polymorphism b) Encapsulation c) Overloading d) Static e) Vector

5. AĢağıdakilerden hangisi IL (Intermediate Language) kodunu platform tabanlı koda dönüĢtürür?

a) MSIL-Converter b) JIT

c) JTI d) Metadata e) Xml

CEVAP ANAHTARI 1.C 2. B 3. C 4. B 5. B

(12)

NESNE TABANLI PROGRAMLAMA

YARARLANILAN KAYNAKLAR

AKBUĞA Mustafa, Nesne Dayalı Programlama ders notları AYIK, Ziya , Görsel programlama –I, ATAUZEM

Mesleki Eğitim ve Öğretim Sisteminin Güçlendirilmesi Projesi MEGEP – Nesne Dayalı programlama-I. Modulleri

Referanslar

Benzer Belgeler

Sanal üst sınıf kullanıldığında ise en alt seviyedeki sınıfın (Asistan) dahi en üst seviyedeki sınıfın (Birey) yapıcı fonksiyonunu çağırması

Tablo 7.4. ProgressBar kontrolüne ait en çok kullanılan özellikler  Özellik  Açıklama .

Bir anahtar değerin HashTable sınıfı içerisinde daha önceden kullanılıp kullanılmadığını öğrenmek için ContainsKey() metodu kullanılır. •SortedList

Windows formlarına ilişkin sınıflar System. Windows. Forms isim alanında 

programlama dili, 2002 yılında diğer (VisualBasic.NET, Visual c++.NET vb) .NET 

Değişken ya da metoda sadece tanımlandığı sınıfın içinden değil de sınıfın dışından da erişilmek isteniyorsa erişim türü public (genel) olarak

 statik dahili üye sınıf içerisindeki statik bir yordamı çağırmak için ne statik dahili üye sınıfına ne de onu çevreleyen sınıfa ait nesne oluşturmak gerekmez.

 Tüm istisnaları yakalamak (Error, RuntimeException ve diğer Exception türleri) için Throwable istisna tipi kullanılabilir.  Ancak, oluşabilecek istisnalar için bu üç