NESNEYE DAYALI PROGRAMLAMA 2. HAFTA UYGULAMA DERSİ Nesneye Dayalı Programlama • Yardımcı öğretim elemanı: Arş. Gör. İsmail ÖZTEL • İletişim: Salı 11:00-12:00 Salı 13:00- 14:00 Cuma 11:00-12:00 Cuma 13:00- 14:00 E-posta: [email protected] 1206 nolu oda C# ’a genel bakış • C# aile ağacı: C C++ Java C# C# ’a genel bakış • C dili: • 1960’larda yapısal programlama fikri ile ortaya çıkmaya başladı • 1970 yılında Dennis Ritchie tarafından tanıtıldı • 1980’lerde en yaygın kullanılan yapısal programlama dili • Genel kabule göre 5000 satır koddan itibaren programların anlaşılması ve sürdürülebilmesi zor • Yeni bir arayış başladı… C# ’a genel bakış • C++ dili ve nesne yönelimli programlama metodolojisi: • 1970’lerin sonlarında proje boyutlarının artmasıyla "Nesne Yönelimli Programlama"(OOP – Object Oriented Programming) yöntemi ortaya çıktı • Popüler olan C dilinin nesne yönelimli programlamayı desteklemesi için 1979’da "C with Classes" ( Sınıflı C) icat edildi • 1983’te C++ ismini aldı • Programcıların yaygın olarak kullandıkları C’nin bu evrimi, kullanıcıları yeni bir dil öğrenmekten kurtardı C# ’a genel bakış • Java: • 1991’de Oak ismi ile doğdu • Söz dizimi ve felsefesi C++’dan alınan bir dil • Kod taşınabilirliği problemini ortadan kaldırmak için geliştirildi. C ve C++ da geliştirilen kod işletim sistemine sıkı sıkıya bağlı • Java kodu bytecode –(JVM) çalışır program C# ’a genel bakış • C#: • Javanın gelişimi ile taşınabilirlik sorunu çözülmüş fakat "diller arasında uyum içinde çalışma (cross-language interoperability)" problemine değinilmemiştir • Ayrıca java programları Windows ortamlarda çalışabilmelerine rağmen tam bir entegrasyon mevcut değil • Bu ihtiyaçlara cevap için 2000 yılında duyuruldu • C# sözdizimini , anahtar sözcüklerin çoğunu ve operatörlerini C’den almıştır; C++’ın nesne modeli üzerine kurulmuş ve modeli geliştirmiş C# ’a genel bakış • .NET Framework: • Dağıtık ve bileşen yönelimli uygulamaların geliştirilmesini ve yürütülmesini destekleyen bir ortam tanımlar : diller birlikte çalışabilir; güvenlik, taşınabilirlik ve ortak bir programlama modeli kurar • Common Language Runtime (CLR-ortak dil çalışma zamanı)’ı tanımlar: taşınabilirlik, güvenlik, çoklu dillerde programlama • .Net sınıf kütüphanesini tanımlar C# ’a genel bakış • CLR nasıl çalışır: • C# programı derlendiğinde MSIL (+metadata)(Microsoft Intermediate Language) oluşur. MSIL CPU’dan bağımsızdır. • Bu ara kod CLR ile çalışabilir bir koda döner (JIT [just-in-time=tam zamanında] derleyici) Nesne yönelimli programlama • Programlama bilgisayarın icat edildiği yıllarda ikili makine kodları ile (bir/iki yüz satır) • • • • Programlar büyüyünce assembly dili, Büyüme seviyesi arttıkça FORTRAN ve COBOL gibi yüksek seviyeli diller Yetersiz kaldıkları noktada yapısal programlama yaklaşımı Beklentiler arttıkça nesne yönelimli programlama yaklaşımı Nesne yönelimli programlama • Tüm nesne yönelimli diller üç ortak özelliğe sahiptir: • Sarmalama (public, private, …) : istenmeyen etkilerden ve hatalı kullanımlardan koruma • Çok biçimlilik • Kalıtım using System; İlk program class Program { static void Main() { Console.Write("Merhaba"); Console.ReadLine(); } } Programlamaya dair… • • • • Değişkenler: harf/_ ile başlar, harf/rakam/_ Veri tipleri: int, float, double, … Kontrol ifadeleri: if, for, while, … Anahtar sözcükler: Programlamaya dair…