C# Temel Konular – Sınıf Üyeleri Modül 3 - C# Temel Konular – Diğer Tipler Modül 4 - Nesne Yönelimli Programlama Prensipleri C# ile Nesne Yönelimli Programlama Eğitimi
Programlama Common Type System – CTS Reference Type , Value Type .NET Assembly , Namespace Class Oluşturma Süreci Class ve Object Kavramları 1.Gün Yol Haritası
gibi modellemek, parçalara ayırarak yazılıma aktarmaktır, ▪ Tüm dünya nesne ve nesneler arası ilişkilerden ibarettir, ▪ Uygulama inşa etme ve tasarlama yaklaşımı ▪ Bir problem çözme yöntemidir ▪ Bir teknoloji değildir, program geliştirme yaklaşımıdır ▪ İteratif bir süreçtir
programlama dili tarafından desteklenen veri tipi seti ▪ .NET içerisinde 5 Temel tip vardır ; Class, Struct, Interface, Enumaration, Delegates ▪ Type Type Members ▪ Önceden Tanımlı tipler, Kullanıcı Tanımlı tipler
.NET içerisindeki tipler referans veya değer tipidirler ▪ Value tiplere direkt verinin kendisini içerir ama referans tipleri verinin referansını içerir. ▪ Reference Type System.Object HEAP ▪ Value Type System.ValueType System.Object STACK
Value Type null değer tutmaz, Reference Type null değer tutar ▪ Reference Type ▪ System.Object, String, Class, interfaces, delegates, arrays ▪ Value Type ▪ Primitive Types int,char,float,bool ▪ Struct DateTime ▪ Enumerations
hiyerarşisi için isim uzayları altında gruplanırlar ▪ Aynı amaç ve işleve sahip tip öğelerinin (sınıf, interface vb.) oluşturduğu grup ▪ İç içe isim uzayı tanımlanabilir ▪ Namespace , Using ▪ Namespace aliasing, Class aliasing, ▪ :: operatörü, global:: , External aliasing ▪ Object Browser ile sistemdeki isim uzaylarını görelim.
Nesne ve referansını oluşturmamızı sağlayan yapılar ▪ Nesneleri oluşturmak için temel özellikleri içerir ▪ Sınıf, nesnenin nasıl işleyeceğini tanımlayan bir klavuzdur ▪ Sınıf soyut bir ifadedir, Nesneler oluşuncaya kadar bellekte yer almazlar ▪ Sınıf tanımı ile yeni bir veri tipi oluştururuz
Üyeleri Tanımla Class Sınıf yazma süreci Bir sınıfın mantıksal bütünlüğünün olması gerekir, birbiri ile alakasız bilgiler sınıf yapısının bozulmasına sebep olur
Sınıf soyut bir yapıdır, nesne ise bir varlığın temsil biçimidir. Class taslak Object somut ürün Sınıf : belirli bir amaç için Nesne : mantıksal bir varlık, veri Gerçekleştirebileceği eylemler methods
methodlardır Nesneyi ilk kullanıma hazırlar ve varsayılan değerlerini set etmek için kullanılır Nesneyi, hazırlayan şekillendiren yordamdır. Sınıf ile yapıcı methodun isminin aynı olması gerekir, geri dönüş değeri olmaz, void de bulundurmaz, public olmalı Varsayılan yapıcı method Overloading ile farklı versiyonlarda yapıcı method tanımlanabilir
hemen önce çalışan method, Her class'ın sadece bir tane destructor içerir, parametre almaz, geriye değer döndürmez, Overload yapılamaz, miras alınamaz, Dışarıdan çağırılamaz, GC otomatik invoke eder, Örneğin ; Veritabanı bağlantısını kapamak, Struct'lar için tanımlanamaz, sadece class'lar için tanımlanırlar,
yapı içerisinde tanımlanan her tipden değişkenlerdir Sınıf içerisinde birden fazla methodun erişim sağlaması gereken verileri saklarlar Genelde Property ler ile birlikte kullanılır Public olmaz private olurlar Sınıf üzerinde alan(statik) veya nesne üzerinde alan tanımlayabiliriz.
Property ler yerel veya genel alanları yöneten, yönlendiren yordamlardır, Programcı ve değişken arasındaki yordama property denir, Get; Set; Örneğin ; Veri üzerinde Validasyon, kontroller, Sınıf içerisindeki değişkenlere değer set veya get edilirken bazı özel işlemleri yapmamızı sağlayan methodlardır
değerler sabittir Kullanıcı tanımlı türler sabit olmazlar, Sabit ifadeler statik olduklarından tekrar statik olarak işaretlenemezler Sabitler tanımlandıklarında ilk değer atanmak zorunludur Readonly sabitler sadece yapıcı method da değiştirilebilir Readonly sabitler kullanıcı tanımlı tipler olabilirler Aynı tipteki sabitler çoklu tanımlanabilir Örneğin ; Pi sayısı
ve sadece sınıf içerisinde tanımlanabilir Tanımlandığı class a indexlenebilir özelliği kazandırır Bir nesnenin dizi gibi indeklenmesini sağlar Class ı diziymiş gibi işlem yapabilmek için indeksleyicileri kullanırız Örneğin ; DataRow, DataColumn, DataTable gibi sınıflar Sınıf array miş gibi değer okuma ve değer atama işlemleri yaparız
kod parçacıklarıdır,işlem parçacıkları Parametreli veya prametresiz olabilirler, Kod sonucu değer dönebilir veya dönmeyebilir, Void Return değer return; Return sonrası yazılan kodlar erişilemeyen kodlar, Method Çeşitleri; Statik method Extention method Fonksiyonlar
methodlar eklememizi sağlar, Statik sınıf içerisine statik method tanımlanır, .NET içerisinde ve bizim tanımladığımız her tip için extention method yazabiliriz, Unutmamak gerekir ki Object tipine tanımladığınız bir extension metod, sadece String, Integer ve List’ler için kısıtlı kalmayıp .Net Framework içerisindeki her tip için geçerli olacaktır, Örneğin; StringExtentions