İnfografik
← Ünite 3
Nesne Tabanlı Programlama 1

Ünite 3: Sınıf Türleri

Visual Studio .NET
Birden fazla programlama dilini (C#, C++, F# vb.) aynı anda destekleyen, bütünleşik bir yazılım geliştirme ortamıdır.
System.Math Sınıfı
Statik bir sınıf örneğidir. Matematiksel işlemleri nesne oluşturmadan, doğrudan sınıf ismi üzerinden gerçekleştirmek için kullanılır.
High-Frequency Heap
Statik üyelerin bellekte depolandığı özel bir alandır. Türlerin yöntem tabloları gibi yaygın kullanılan verileri tutar.
Statik Yapıcı Kuralı
Statik yapıcılar parametre alamazlar ve public, private gibi erişim belirleyicileri ile tanımlanamazlar.

Anahtar Kavramlar

Soyutlama (Abstraction)Gereksiz detayların gizlenerek sadece temel özelliklerin kullanıcıya sunulmasıdır. Örneğin, bir Hayvan sınıfında sadece hayvanSesi() metodunun imzasını verip, detayını alt sınıfa bırakmak soyutlamadır.
Abstract SınıfDoğrudan nesnesi oluşturulamayan, sadece kalıtım yoluyla genişletilmek için kullanılan sınıftır. Örnek: 'abstract class Hayvan' tanımlaması ile bir hayvan nesnesi türetilemez.
Sealed SınıfMiras alınması (türetilmesi) engellenmiş sınıftır. Örneğin, 'public sealed class Ogrenci' tanımlanırsa, bu sınıftan başka bir sınıf türetilemez.
Statik SınıfÖrneği oluşturulamayan ve sadece statik üyeler barındıran sınıftır. Örneğin, 'System.Math' sınıfı statiktir ve 'new Math()' şeklinde nesnesi oluşturulamaz.
Statik ÜyeSınıfın nesnesine değil, sınıfın kendisine ait olan üyedir. Örneğin, 'Otomobil.TekerSayisi' ifadesinde TekerSayisi bir statik alandır.
Statik YapıcıSınıfın statik üyelerini başlatmak için kullanılan, parametre almayan özel yapıcıdır. Sınıfın ömrü boyunca sadece bir kez çalışır.
Kısmi Sınıf (Partial Class)Tanımı birden fazla dosyaya yayılmış sınıftır. Örneğin, 'partial class Bisiklet' tanımı iki farklı dosyada birleştirilerek tek bir sınıf oluşturulabilir.
Kısmi Yöntem (Partial Method)Bir kısmı tanımlanan, diğer kısmı opsiyonel olarak uygulanan yöntemdir. Uygulanmadığında derleyici tarafından koddan tamamen silinir.
İç İçe Sınıf (Nested Class)Bir sınıfın içinde tanımlanan başka bir sınıftır. Örneğin, 'Araba' sınıfı içinde tanımlanan 'Motor' sınıfı bir iç içe sınıftır.
Erişim DeğiştiricileriSınıf ve üyelerin görünürlüğünü belirleyen anahtar kelimelerdir (public, private, protected, internal). Varsayılan olarak sınıflar private erişime sahiptir.
Kalıtım (Inheritance)Bir sınıfın başka bir sınıfın özelliklerini devralmasıdır. Sadece sınıflar kalıtımı destekler, struct yapılar desteklemez.
Statik AlanTüm sınıf örnekleri arasında paylaşılan tek bir kopyası olan değişkendir. Bir örnekte değiştiğinde, tüm örneklerdeki değeri güncellenmiş olur.
Derleme Zamanı HatasıKodun çalıştırılmadan önce derleyici tarafından tespit edilen hatalardır. Örneğin, mühürlü bir sınıftan türetmeye çalışmak derleme zamanı hatası verir.

Diğer Önemli Bilgiler

Partial Sınıf Avantajı

Büyük projelerde birden fazla programcının aynı sınıf üzerinde aynı anda çalışabilmesine olanak tanır.

Statik Sınıf Kısıtlaması

Statik sınıflar 'sealed' veya 'abstract' değiştiricilerini içeremezler, çünkü zaten statik olmaları bu özellikleri kapsar.

MSIL (Microsoft Intermediate Language)

C# kodlarının derlendikten sonra dönüştüğü ara dildir. .NET ortamında kodun çalıştırılma sürecinde kritik bir rol oynar.

Otomobil Örneği

İç içe sınıflara örnek olarak Araba sınıfı içinde Motor ve Batarya sınıflarının tanımlanması, kapsülleme mantığını gösterir.

Sınavda Dikkat Et

  • Statik sınıfların 'new' ile örneklenemeyeceğini unutmayın; bu sınavda en çok sorulan kısıtlamalardan biridir.
  • Soyut sınıfların doğrudan nesnesinin oluşturulamayacağını, ancak miras alınarak kullanılabileceğini mutlaka hatırlayın.
  • Kısmi yöntemlerin dönüş türünün her zaman 'void' olması gerektiğini ve uygulanmazlarsa derleyici tarafından silindiklerini not edin.
  • Statik yapıcıların parametre almadığını ve erişim belirleyicisi (public, private vb.) içermediğini unutmayın.
  • Mühürlü sınıfların miras alınamayacağını, soyut sınıfların ise miras alınmak için tasarlandığını, bu yüzden ikisinin bir arada olamayacağını bilin.
  • Statik bir yöntemin, sınıfın statik olmayan (örnek) üyelerine erişemeyeceği kuralına dikkat edin.
  • Kısmi sınıfların tüm parçalarının 'partial' anahtar sözcüğünü taşıması gerektiğini ve aynı erişim belirleyicilerine sahip olması gerektiğini unutmayın.