MeslekForum Mesleki Gelişim Forumu

Go Back   MeslekForum Mesleki Gelişim Forumu > Bilgisayar Yazılım Donanım > Programlama > C#

Cevapla
 
LinkBack Seçenekler Stil
Alt 12-08-2009, 01:53   #1 (permalink)
Kullanıcı Profili
SITE ADMİN
Taner - ait Kullanıcı Resmi (Avatar)
Kullanıcı Bilgileri
Üyelik Tarihi: Oct 2009
Üye No : 2
Mesajlar: 94
Standart Sınıf, Üye ve Nesneleri Nelerdir ?

Sınıf bildirimi:

Sınıf bildirimi class anahtar kelimesi ile gerçekleştirilir. Sınıf isminden sonra sınıf
içindeki üye eleman ve metotlar tanımlanır.

Kod:
class sinif_ismi
{
erişim veri_tipi değişken; // Sınıf Üyeleri
erişim dönüş_değeri
metot_ismi(parametreler)
{}
}
Bu örnekte class anahtar sözcüğü kullanılarak kullanıcı tanımlı (user-defined) bir sınıf
(class) oluşturulmuştur. Class isminden sonra gelen sınıf üyeleri küme parantezleri ({ })
içinde yer almaktadır.

Sınıf Nesneleri Tanımlama

Örneğin ;
Kod:
using System;
namespace Siniflar
{
class Musteri
{
private string Isim;
public void IsimAl(string isim)
{
Isim = isim;
}
public void IsimYaz()
{
Console.WriteLine(Isim);
}
}
class Uygulama
{
static void Main ()
{
Musteri a = new Musteri();
a.IsimAl("Hakan B.");
a.IsimYaz();
}
}
}
Yukarıdaki örnekte Musteri isimli bir sınıf tanımlanmıştır. Bu sınıfın Isim adlı bir üye
değişkeni, IsimAl ve IsimYaz adında iki tane yöntemi bulunmaktadır. Müsteri sınıfı, bu
türden tanımlanacak bir nesnenin şemasıdır yani nesnenin verilerini ve davranışlarını
göstermektedir. Daha sonra müsteri sınıfı türünden bir nesnenin bildirimi için “new” anahtar
sözcüğü kullanılmakta ve nesnenin tanımlaması yapılmaktadır.
Bildirimler, derleyiciye değişkenler hakkında bilgi verir.
Tanımlama ise bellekte bir yer ayırma işlemidir.
New anahtar sözcüğü ile sınıf için heap bellek bölgesinde bir yer ayrılmaktadır. Bu
yerin adresi de yani referans değeri de stack bölgesinde saklanmaktadır. .NET Framework
içinde bellek temizleme görevini üstlenmiş olan çöp toplayıcısı ( garbage collector ) new
anahtar sözcüğü ile oluşturulmuş olan nesnelerin referansları yoksa bu alanları temizler ve
belleğe geri bırakır.

Sınıf Üyeleri

Sınıf üyeleri temelde iki kısma ayrılmaktadır. Veri üyeleri ( data members ) ve
fonksiyon üyeleri ( member functions, methods )
 Veri üyeleri; alanlar (fields), sabitler (constants) ve olaylar (events)dan oluşur.

Alanlar, nesneye ait bilgilerin tutulduğu üye değişkenlerdir.
Sabitler, nesnenin değiştirilemeyen alanlarıdır.

Olaylar, belirli bir tetiklemenin meydana gelmesi sonucunda çağrılacak olan fonksiyonların adres bilgilerini tutmakla sorumludur.

Sınıfın veri üyeleri değer türlerinde olabileceği gibi, referans türlerinde de olabilir.
Her nesnenin sahip olduğu data diğer nesnelerden ayrılmıştır yani her nesnenin datası
kendisine aittir, hiçbir şekilde karışmaz.

Fonksiyon üyeleri, yöntemler (methods), özellikler (properties), yapıcı
fonksiyonlar (constructors), sonlandırıcılar (destructor), operatörler (operators)
ve dizinleyiciler (indexer)den oluşur.

Yöntemler nesnenin davranış şekilleridir. Nesne kullanıcısına üye veriler üzerinde
işlem yapmasına izin verir ve nesnenin dışa kapalı üyelerine ulaşılmasını sağlar.
Özellikler alanlar gibidir. Hatta bunlara akıllı alanlar da denilmektedir. Nesnenin üye
verilerine değer atanmasının ve değer çekilmesinin kontrollü olarak yapılmasını sağlar.
Yapıcı ve sonlandırıcı yöntemler nesnenin özel yöntemleridir. Yapıcı yöntemler nesne
ilk oluşturulduğunda çağrılırken sonlandırıcı yöntemler nesnenin ömrü tamamlandığında
çağrılır.
Operatörler nesnelerin daha esnek kullanılmasına izin vermektedir.
Dizinleyiciler nesnenin bir dizi gibi kullanılmasına izin verir.

İç İçe Tipler :

Tipler bazen diğer tipleri de içerebilir. Bu tür kullanımlara İç İçe Tipler adı verilir.
Aşağıdaki program parçasında, bir sınıf içinde başka bir sınıf tanımlanmıştır.

Kod:
public class KrediModulu
{
   // KrediModulu kodları buraya yazılır
   private class KrediKartlari
   {
   // KrediKartlari kodları buraya yazılır.
   }
}
Kullanıcı Tanımlı Tipler

Sınıflar bir veri yapısıdır. Sınıflar yardımıyla gerçek hayattaki bir nesneye yönelik
modelleme yapabiliriz. Örneğin bir kredi kartı hesabı için birçok özellik vardır, hesap nu,
limit, kart sahibi. Bu bizim için gerçek hayattaki bir modeli temsil eden bir yapıdır.

Kod:
class KrediHesabi
{
   public int HesapNo;
   public double Limit;
   public string KartSahibi;
}
Metotlar ve Dönüş Değeri Tipi

Programlarımızda iş yapan en temel parçalar metotlardır. Metotlar, sınıfların üye
fonksiyonlarıdır.

C, C++, Visual Basic gibi dillerde global fonksiyonlar bulunmaktaydı ancak C# da
tüm fonksiyonlar bir sınıfın üyesi olmak zorundadır.

Metot bildirimi ;

Kod:
[erişim] <dönüş değeri> metot ismi (parametre listesi)
{
metot gövdesi;
}
şeklinde yapılır.
Bildirimdeki [erişim] seçeneği metoda nasıl ulaşılacağını gösterir. Eğer bir ifade
yazılmazsa metot Private kabul edilir.
Yöntemler genelde public anahtar sözcüğü ile belirtilir. Böylece nesnenin kullanıcısı
bu yöntemleri kullanarak nesnenin private anahtar sözcüğü ile tanımlanmış ve dışa kapalı
verilerine ulaşılabilir.
C# da tüm yöntemler sınıf içinde bildirilir ve tanımlanır. C# %100 nesne tabanlı bir dil
olduğundan, bir metot kullanılırken bulunduğu sınıf türünden bir nesne tanımlanır ve “.”
operatörü ile metoda ulaşılır.

Geri dönüş değeri olmayan metotlar “void” olarak tanımlanır. “void” tanımlı bir
fonksiyon için “return” kullanılamaz.

Örneğin ;
Kod:
public void BenimVoidMetodum()
{
MessageBox.Show("Bu metot bir değer döndürmez");
}
public int Topla(int birinci, int ikinci)
{
int Sonuc;
Sonuc = birinci + ikinci;
return Sonuc;
}
Eğer giriş parametresi yoksa parantez içi boş bırakılır.
Kod:
void yaz()
{C
onsole.WriteLine(“Elazığ”);
return;
}
“static” olarak tanımlanan metotları çağırmak için bir nesne tanımlamaya gerek yoktur. Eğer
metot, içinde olduğu sınıftan çağrılacaksa metodun sadece ismi yazılarak çalıştırılabilir, eğer
sınıf dışından bir çağrım yapılacaksa “SınıfAdi.Metot()” şeklinde çağrılmalıdır. Static tanımı
ile oluşturulmuş metot için new operatörü ile yeni bir nesne tanımlamaya gerek yoktur.

Aşağıdaki örneği inceleyelim.

Kod:
using System;
class Class1
{
public static void Main()
   {
   Class1 fonk = new Class1();
   int deger = fonk.topla(3, 5);
   Console.WriteLine(deger);
   Console.Read();
   }
   public int topla(int sayi1, int sayi2)
   {
   int toplam = sayi1 + sayi2;
   return toplam;
   }
}
Bu örneğimizde "Class1" sınıfı için "fonk" isimli bir nesne oluşturduk ve bu nesne
sayesinde "topla" fonksiyonuna ulaştık. Nesnelerin mantığını şöyle özetleyebiliriz: Nesneleri
tanımlayarak sınıfların özelliklerini bir nesneye yükleriz. Ardından bu nesne ile sınıf içindeki
metot ve değişkenlere (Sadece özel izin verdiklerimize) ulaşabiliriz.
Örneği inceleyecek olursak, "fonk" isimli nesnemizi tanımlamak için
Kod:
Class1 fonk = new Class1() ;
kodunu yazdığımızı görürüz. Nesne tanımlamak için önce ilişki kurulacak sınıfın adı yazılır.
Ardından nesnenin adı yazılır. " = " işaretinden sonra "new" komutu ile sınıf adı tekrar
yazılır. Parantezlerin kullanım amacı fonksiyon ve metotlardakine benzer. Nesne
tanımlandıktan sonra sınıf içindeki metot ve değişkenlere "." işaretinden sonra metot veya
değişken ismini yazarak ulaşabiliriz.

Kaynak : MEGEP | Nesne Tabanlı Programlama 1
__________________
Beni Sevmek İçin Programlanma Devrelerini Yakarım !
Taner isimli Üye şimdilik offline konumundadır  
Digg this Post!Add Post to del.icio.usBookmark Post in TechnoratiFurl this Post!Spurl this Post!Reddit! Wong this Post!
Alıntı ile Cevapla
Cevapla

Seçenekler
Stil

Yetkileriniz
Konu Acma Yetkiniz Yok
Cevap Yazma Yetkiniz Yok
Eklenti Yükleme Yetkiniz Yok
Mesajınızı Değiştirme Yetkiniz Yok

BB code is Açık
Smileler Açık
[IMG] Kodları Açık
HTML-Kodu Kapalı
Trackbacks are Açık
Pingbacks are Açık
Refbacks are Açık


Benzer Konular
Konu Konuyu Başlatan Forum Cevaplar Son Mesaj
The Base Class Library - Temel Sınıf Kütüphaneleri Nelerdir ? Taner C# 0 12-08-2009 01:19


Tüm Zamanlar GMT +3 Olarak Ayarlanmış. Şuanki Zaman: 17:19.


Powered by vBulletin
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.3.2

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30