Sınıf (programlama) - Vikipedi
İçeriğe atla
Ana menü
Gezinti
  • Anasayfa
  • Hakkımızda
  • İçindekiler
  • Rastgele madde
  • Seçkin içerik
  • Yakınımdakiler
Katılım
  • Deneme tahtası
  • Köy çeşmesi
  • Son değişiklikler
  • Dosya yükle
  • Topluluk portalı
  • Wikimedia dükkânı
  • Yardım
  • Özel sayfalar
Vikipedi Özgür Ansiklopedi
Ara
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç
  • Bağış yapın
  • Hesap oluştur
  • Oturum aç

İçindekiler

  • Giriş
  • 1 Sınıf kullanılmasının başlıca nedenleri
  • 2 Sınıf yapısı
    • 2.1 Metotlar
    • 2.2 Veriler
    • 2.3 Yapıcı ve yıkıcı metotlar
  • 3 Arayüz ve metotlar
  • 4 Bilgi gizleme ve kapsülleme
  • 5 Sınıflararası ilişkiler
  • 6 Sınıflarda kullanılan diğer kavramlar
  • 7 Örnekler
    • 7.1 C#
    • 7.2 Java
    • 7.3 PHP
  • 8 Dış bağlantılar

Sınıf (programlama)

  • Afrikaans
  • العربية
  • Azərbaycanca
  • Беларуская
  • Беларуская (тарашкевіца)
  • Български
  • Bosanski
  • Català
  • Čeština
  • Dansk
  • Deutsch
  • English
  • Esperanto
  • Español
  • Eesti
  • فارسی
  • Suomi
  • Français
  • Galego
  • עברית
  • हिन्दी
  • Hrvatski
  • Հայերեն
  • Bahasa Indonesia
  • Ido
  • Íslenska
  • İtaliano
  • 日本語
  • Қазақша
  • 한국어
  • Lietuvių
  • Latgaļu
  • മലയാളം
  • မြန်မာဘာသာ
  • Nederlands
  • Polski
  • Português
  • ရခိုင်
  • Română
  • Русский
  • Srpskohrvatski / српскохрватски
  • Simple English
  • Slovenčina
  • Српски / srpski
  • Sunda
  • Svenska
  • தமிழ்
  • ไทย
  • Українська
  • Tiếng Việt
  • 中文
  • 粵語
Bağlantıları değiştir
  • Madde
  • Tartışma
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Araçlar
Eylemler
  • Oku
  • Değiştir
  • Kaynağı değiştir
  • Geçmişi gör
Genel
  • Sayfaya bağlantılar
  • İlgili değişiklikler
  • Kalıcı bağlantı
  • Sayfa bilgisi
  • Bu sayfayı kaynak göster
  • Kısaltılmış URL'yi al
  • Karekodu indir
Yazdır/dışa aktar
  • Bir kitap oluştur
  • PDF olarak indir
  • Basılmaya uygun görünüm
Diğer projelerde
  • Vikiveri ögesi
Görünüm
Vikipedi, özgür ansiklopedi
Sınıfların UML diyagramı üstünde gösterilişi

Sınıf, nesne yönelimli programlama dillerinde nesnelerin özelliklerini, davranışlarını ve başlangıç durumlarını tanımlamak için kullanılan şablonlara verilen addır. Bir sınıftan türetilmiş bir nesne ise o sınıfın örneği olarak tanımlanır. Sınıflar genelde şahıs, yer ya da bir nesnenin ismini temsil ederler. Sınıflar metotları ile nesnelerin davranışlarını, değişkenleri ile ise nesnelerin durumlarını kapsül ederler. Sınıflar hem veri yapısına hem de bir arayüze sahiptirler. Sınıflar ile nasıl etkileşime girileceği bu arayüzler sayesinde sağlanır. Örneğin bir sınıf şablonu ile renk özelliğine, tekerleklere ve sür metoduna sahip olan bir araba temsil edebilir.

Sınıf kullanılmasının başlıca nedenleri

[değiştir | kaynağı değiştir]

Gerçek hayat problemleri sınıf şablonları kullanılarak bilgisayar ortamına daha kolay ve anlaşılabilir bir biçimde aktarılabilir.

Sınıflar ve kodlar düzenli bir biçimde saklanarak zaman kaybı yaşanmaz.

Nesne yönelimli programlamada herhangi bir projede kullanılmak üzere yaratılan bir sınıf başka projelerde tekrar kullanılabilir.

Düzgün arabirimlerle birleşen sınıflar yaratabilir ve bu sınıfların birbirlerini minimum düzeyde etkileyecek şekilde programlar tasarlanarak birimsellik özelliğinden faydalanılabilir.

Sınıf yapısı

[değiştir | kaynağı değiştir]
Sınıfların UML diyagramı üstünde gösterilişi

Metotlar

[değiştir | kaynağı değiştir]

Metotlar üç ayri erisim kuralına göre tanımlanabilir. Bunlar public, protected ve private olarak adlandırılmıştır. Metotların bir geri dönüş değeri de vardır. Bir metodun geri dönüş değerinin boş olması istendiğinde bir prosedür ya da bunun mümküm olmadığı dillerde boş veri türü olan void kullanılmaktadır.

Veriler

[değiştir | kaynağı değiştir]

Verileri de metotlar da olduğu gibi üç erişim kuralı ile tanımlanabilir.

Yapıcı ve yıkıcı metotlar

[değiştir | kaynağı değiştir]

Yapıcı ve yıkıcı metotlar (constructor, destructor) otomatik olarak sistem tarafından çağrılır. Yıkıcı metotlar, nesnelerin bellekten silinmesi sırasında çağrılır. Böylece işi biten nesne için bellekte ayrılmış olan kısım, yeni nesneler için tekrar kullanılabilir. Yıkıcı metotlar hiçbir parametre almaz ve değer döndürmez.

Arayüz ve metotlar

[değiştir | kaynağı değiştir]

Nesneler, dış dünya ile etkileşimlerini metotlar aracılığı ile tanımlarlar. Metotların içinde bulundukları nesnenin verilerine özel erişim hakları vardır. Nesnenin verilerini işleyen ve görevlerini yerine getiren bu metotlar, o nesnenin davranışı olarak kabul edilir. Metotlar, dış dünya ile nesnenin arayüzünü oluşturur. Örneğin televizyonun önündeki düğmeler, televizyonun içinde bulunan elektrik tesisatı ve kullanıcı arasındaki arayüz olarak kabul edilir. Bu düğmeye basarak televizyonu açıp kapatabilir veya başka bir işlev yerine getirilebilir. Bu örnekteki her metot bir düğme tarafından temsil edilmektedir ve birlikte bütün butonlar televizyon nesnesinin arayüzünü içerirler.

Arayüzlerin yardımcı metodu olarak bilinen statik metot (İngilizce: static method) ise içinde tanımlanmış olduğu sınıfa aittir. Statik metot, nesnelere ait olan bir metot (İngilizce: instance method) ile aynı erişim hakkına sahip değildir. Bir statik metodun ait olduğu sınıftan türemiş olan nesnelerin verilerine bu statik metodun erişme hakkı yoktur. Statik metot, ancak ait olduğu sınıfın statik verilerine erişebilmektedir. Televizyon sınıfından türemiş olan televizyon nesnelerinin sayısını bulmak ise televizyon sınıfında bulunan statik metoda ait bir görev olduğunu örnek olarak verebiliriz.

Bilgi gizleme ve kapsülleme

[değiştir | kaynağı değiştir]

Nesneye yönelik programlama dillerinin çoğu kapsülleme ve bilgi gizleme kavramını aşağıda sıraladığımız üç özel bilgi erişim belirteçleri ile desteklerler.

  • public (halka açık, kamu) erişim kuralı ile tanımlanan metotlara her nesneden erişilebilir.
  • protected (korumalı) erişim kuralı ile tanımlanan metoda bu metodun tanımlandığı sınıfdan örneklendirilmiş nesnelerin içinden ve bu sınıftan türetilmiş olan alt nesnelerden erişilebilir.
  • private (özel, gizli) erişim kuralı ile tanımlanan metoda sadece bu metodun içinden erişim hakkı bulunur.

Sınıflararası ilişkiler

[değiştir | kaynağı değiştir]
UML diyagramı üstünde bağıntı ilişkisi

Nesne yönelimli programlamada ve Birleşik Modelleme Dilinde (UML) sınıflararası ilişkiler dört başlık altında toplanabilir:

  • Bağıntı ilişkisi (association): Bağıntı ilişkisi, bir nesnenin diğer bir nesneyle olan kavramsal ilişkisini temsil eder ve iki nesne arasına çizilen düz bir çizgi ile belirtilir. Aradaki bu ilişki bazen çok yönlü, bazen tek yönlüdür. Bağıntının adı, çokluğu ve sınıfın bağıntıdaki rolü, bağıntı ilişkisini tanımlayıcı bilgiler arasında yer alır. Eleman sayısı (cardinality) n:m şeklinde belirtilir.
UML diyagramı üstünde oluşum ve toplama ilişkisinin gösterilişi
  • Toplama, içerim bağıntısı (aggregation): Toplama, içerim bağıntısı ile modellenen nesneler, genellikle birlikte daha karmaşık bir nesne oluşturmak için bir araya getirilmişlerdir. İçerim bağıntısında nesnelerin arasındaki ilişki zayıftır. İçi boş eş kenar dörtgen (baklava) şekli ile gösterilir.
  • Oluşum, meydana gelme bağıntısı (composition): Oluşum bağıntısı, içerim bağıntısında olduğu gibi parça-bütün ilişkisini simgeler. Bu ilişkideki birliktelikler daha kuvvetlidir ve burada yer alan nesneler tek başlarına bir anlam ifade etmezler. İçi dolu eş kenar dörtgen şekli ile gösterilir.
UML diyagramı üstünde bağımlılık ilişkisinin gösterilişi
  • Bağımlılık ilişkisi (dependency): Bir sınıfın nesnesinin diğer bir sınıfın nesnesini kullanması ya da ona bağımlı olması söz konusudur. Bağımlı sınıftan bağımsız sınıfa doğru kesik kesik olan düz bir çizgiyle gösterilir. Örnekteki RaporOluştur sınıfı rapor sınıfını kullanmak, yani Rapor sınıfına bağlı olmaktadır. Rapor sınıfında yapılacak herhangi bir değişiklik, RaporOluştur sınıfında değişiklik yapılmasına neden olacaktır.
UML diyagramı üstünde kalıtım ilişkisinin gösterilişi
  • Kalıtım, genelleştirme ilişkisi (inheritance): Önceden oluşturulan sınıflara (superclass) dayalı olan yeni altsınıfların (subclass) oluşturulmasına ve buna dayalı oldukları üstsınıflara ait olan özelliklerin ve davranışların altsınıflarda kullanılabilmesine NYP'de denir. Altsınıflar, içi boş olan bir ok ile üstsınıfa bağlanır.

Sınıflarda kullanılan diğer kavramlar

[değiştir | kaynağı değiştir]
  • Soyut sınıf (abstract class): Metotların başlıklarını taşıyan ve bu metotların tanımlamalarını kendisinden türeyecek olan altsınıflarına bırakmış olan sınıflara denir. Bu soyut sınıflardan doğrudan nesne türetilemez. Örneğin "Hayvan" sınıfı soyut bir sınıf olarak düşünülebilir. Cinsi belli olmayan bir hayvanın nasıl ses çıkartacağı bilinemediği için hayvanların ortak olarak paylaştıkları davranışlar soyut "Hayvan" sınıfında soyut metotlarla tanımlanır.
  • Arayüz (interface) kavramı: Çoklu kalıtım (multiple inheritance), bazı programlama dillerinde arayüz kavramı ile elde edilir. Soyut sınıflarda olduğu gibi sadece soyut metotlardan oluşur ve bu arayüzden türeyen sınıflar, bu soyut metotları taşımak zorundadırlar.

Örnekler

[değiştir | kaynağı değiştir]

C#

[değiştir | kaynağı değiştir]
public class Sample
{
    static void main (String[] args) 
    {
        System.Console.WriteLine(GetMessage());
    }
    public String GetMessage()
    { 
        return "Hello World!";
    }
}

Java

[değiştir | kaynağı değiştir]
public class Ornek
{
    public static void main (String args[]) 
    {
        System.out.println(metin());
    }
    public String metin()
    { 
        return "Merhaba Dünya!";
    }
}

PHP

[değiştir | kaynağı değiştir]
class ZamanNesnesi
{       
    public function zamanıAl()
    {       
        return(time());
    }       
    public function tarihiAl()
    {       
        return(date('jS F, Y', $this->zamaniAl());
    }       
}

Dış bağlantılar

[değiştir | kaynağı değiştir]
  • Introduction to Classes and Objects
  • Object-Oriented Programming and Software Engineering27 Eylül 2009 tarihinde Wayback Machine sitesinde arşivlendi.
  • OOP: Class Hierarchy
"https://tr.wikipedia.org/w/index.php?title=Sınıf_(programlama)&oldid=34532222" sayfasından alınmıştır
Kategoriler:
  • Nesne yönelimli programlama
  • Programlama yapıları
Gizli kategori:
  • Webarşiv şablonu wayback bağlantıları
  • Sayfa en son 22.00, 23 Aralık 2024 tarihinde değiştirildi.
  • Metin Creative Commons Atıf-AynıLisanslaPaylaş Lisansı altındadır ve ek koşullar uygulanabilir. Bu siteyi kullanarak Kullanım Şartlarını ve Gizlilik Politikasını kabul etmiş olursunuz.
    Vikipedi® (ve Wikipedia®) kâr amacı gütmeyen kuruluş olan Wikimedia Foundation, Inc. tescilli markasıdır.
  • Gizlilik politikası
  • Vikipedi hakkında
  • Sorumluluk reddi
  • Davranış Kuralları
  • Geliştiriciler
  • İstatistikler
  • Çerez politikası
  • Mobil görünüm
  • Wikimedia Foundation
  • Powered by MediaWiki
Sınıf (programlama)
Konu ekle