Amaçlar:
Nesne (object) ve sınıf (class) kavramlarını nesne tabanlı programlama (object oriented programming) kavramı olarak tanımlamak.
C#'da sınıfları tanımlamak ve kullanmak.
Class (sınıf) kavramının temelinde sınıflama gelir. Bazı nesneleri düşünelim; evler, arabalar, masalar, vb. Aslında "ev" deyince bütün evlerden söz ederiz. Böylece ortak davranış ve özelliklerin sınıflamasından söz edebiliriz.
Nesne tabanlı programlama kavramı içinde bu iki terim karşımıza çıkar: Nesneler (objects) ve sınıflar (classes). Burada en belirgin ayrımı şu şekilde yapabiliriz: Sınıflar nesnelerin kopyasıdır. Programcıları bir ev planının (nesnesinin) kopyasını çıkartarak kullandıkları gibi ev nesnesinin işlevlerini kullanılırlar.
Nesne tabanlı programlamada; nesneler bir sınıfı temel alarak oluşturulur. Bir sınıftan bir nesne oluşturma işlemine örnekleme (instantiating) denir.
Örnek:
Public static void Main()
{
PersonelClass PersonelNesne = New PersonelClass ();
}
Örnekte, PersonelNesne'si PersonelClass'dan örneklenerek (çoğaltılarak) oluşturulmuştur.
Public static void Main()
{
PersonelClass PersonelNesne1 = New PersonelClass ();
PersonelClass PersonelNesne2 = New PersonelClass ();
}
Yukarıdaki örnekte ise PersonelClass'ınden iki ayrı nesne örneklenmiştir.
Örnek:
class Hesap
{
public void miktar(decimal tutar)
{
borc += tutar;
}
private decimal borc;
}
C#'da sınıf tanımlamak için Class anahtar sözcüğü kullanılır. Ardından küme işaretiyle kodlar eklenir.
Tanımı:
class Sınıf_adı
{
üyeler;
}
Örnek:
class Personel
{
private int personelno;
}
Sınıfların başlıca üyeleri metotlar, özellikler (properties) ve olaylardır (events). Yöntemler nesneler üzerinde çalışan kodlardır. Nesne ile bir eylemiş birleştireceksek, metotlar hazırlamamız gerekir. Özellikler yine nesnelerin çeşitli özelliklerini yansıtırlar. Olaylar ise kullanıcı ve sistemden alınan çeşitli tetikleyicilerdir. Örneğin kullanıcının bir alana tıklaması bir olaydır.
Bu arada sınıf üyeleri belli bir kapsama sahiptir:
Kapsam Açıklama
public Üyeye sınıfının dışından da erişilmesini sağlar.
protected Üyenin sınıfının dışından görülmemesini sağlar. Ancak türetilen sınıflardan erişilebilir.
private Üyenin sınıfının dışından görülmemesini sağlar. Ancak türetilen sınıflardan bile bu üyeye erişilemez.
Nesne tabanlı programlama dillerinin temel özellikleri vardır. Bunlar:
Sarma özelliği çok genel bir özelliktir. Bir nesnenin içinde yetenekler içermesi ve onları sergilemesi bu özelliğe girer. Bir sınıfı örnekleyerek türetilen bir nesne üyelerine erişmek bu prensibin sağladığı olanaktır.
Kalıtım ise, var olan bir sınıfı temel alan yeni bir sınıf geliştirme tekniğidir. Türetilen yeni sınıf, temel sınıfın tüm üyelerini devralır. Ardından türetilen sınıf üzerinde istenilen değişiklikler yapılabilir.
Çok işlevlilik ise biraz daha soyut bir kavramdır. Aynı işlemi birçok kez yapabilmek anlamına gelir. Türetilmiş sınıflar devraldığı işlemleri kendi bildiği şekilde uygular.
Kalıtım izni olan bir taban sınıftan yeni bir sınıf türetmeye (derive) kalıtım denir. Türetilen sınıflar, taban sınıfın sergilediği bütün metot ve öznitelikleri kullanırlar. Ardından türetilen sınıf üzerinde istenilen değişiklikler yapılabilir.
Kalıtımın en önemli özelliği bir sınıf hiyerarşisi oluşturmaktır.
Tanımı:
class TuretilenSınıf: TabanSınıf
{
.....
}
Örnek:
class Ornek
{
private class
}
Örnek:
using System;
class Programlar
{
public Programlar()
{
OrtakOzellik = "Evet"
}
public string OrtakOzellik;
public void OrtakMetot()
{
Console.WriteLine("Programların ortak özellikleri");
}
}
class Cdili : Programlar
{
public void CdiliMetodu()
{
Console.WriteLine("Cdili metodu");
}
}
class Kalitimlar
{
public static void Main()
{
Cdili bizimdil = New Cdili();
bizimdil.CdiliMetodu();
bizimdil.OrtakMetot();
}
}
1. Örnekleme (instantiating) nedir? Örnek verin.