Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Nesne Tabanlı Programlama Hakan Do ğ an. Gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yakla ş ımdır. Klasik prosedürel programlamada.

Benzer bir sunumlar


... konulu sunumlar: "Nesne Tabanlı Programlama Hakan Do ğ an. Gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yakla ş ımdır. Klasik prosedürel programlamada."— Sunum transkripti:

1 Nesne Tabanlı Programlama Hakan Do ğ an

2 Gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yakla ş ımdır. Klasik prosedürel programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her ş ey veri ve bu veriyi i ş leyen metotlar etrafında dönüyordu.

3 Nesne tabanlı programlamada da iki önemli birim; veri ve veriyi i ş leyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır.

4 Nesne tabanlı programlama modeli

5 Mesela elimizde bir ütümüz olsun. Ütünün markası, modeli, rengi, çalı ş tı ğ ı elektrik voltajı, ne tür kuma ş ları ütüleyebildi ğ i bu ütüye ait özelliklerdir (veri). Aynı zamanda ütümüzü ısıtabiliriz, ütüleme i ş inde kullanabiliriz ve so ğ umaya bırakabiliriz. Bunlar ise ütünün fonksiyonlarıdır (metot).

6

7 E ğ er ütü ile ilgili bir program yapmı ş olsak ve nesne tabanlı programlama tekni ğ ini kullansak hemen bir ütü sınıfı (class) olu ş tururduk. Bu sınıfta ütüye ait bilgiler (veriler) ve ütü ile yapabilece ğ imiz i ş ler (metot) bulunurdu. O zaman nesne tabanlı programlamada bir sınıfta, sınıfa ait veriler ve bu verileri i ş leyip bir takım faydalı sonuçlar üreten fonksiyonlar (metotlar) bulunur.

8 Kapsülleme (Encapsülation) : İş lemlerin ve verilerin gizlenmesine veya bir grup içerisinde toplanmasına kapsülleme denir. Kapsülleme sayesinde, sınıfımız içinde kullandı ğ ımız alanların dı ş arıdan herhangi bir etki ile do ğ rudan de ğ i ş tirilmelerini engellemi ş oluyoruz.

9 Kalıtım (Inheritance): Türetilen her bir sınıf, türedi ğ i sınıfın özelliklerini de devralır. Buradan, türetilmi ş bir sınıf içerisinden, türedi ğ i sınıfa ait üyelere eri ş ilebilece ğ i sonucunu çıkartabiliriz. Elbette bu eri ş imin de bazı kuralları vardır. Örne ğ in eri ş im belirleyicilerinin etkisi veya aynı üyelerin kullanılı ş ı gibi durumlar.

10 Bunun cevabı ş udur: Tüm sınıflarda ortak olan özellikleri tek bir sınıf içerisinde toparlamak. Bu modellerimizi geli ş tirirken, her sınıf için ortak olan üyelerin tekrar yazılmasını engellemekle kalmayacak, sınıflar arasında düzenli bir hiyerar ş i yapısının olu ş masını da sa ğ layacaktır.

11 Çok Biçimlilik (Polymorphism): Bir metodun farklı nesnelerde veya farklı ortamlarda farklı sonuçlar üretmesidir. Mesela “konu ş mak” insan sınıfına ait bir metottur.

12 Ancak bu metot ait oldu ğ u insan sınıfının örne ğ ine göre farklı sonuçlar üretir. Arkada ş ımızla konu ş urken farklı bir tonda, patronumuzla konu ş urken farklı bir tonda konu ş uruz, di ğ er bir ifadeyle bu metodun birden fazla biçimi vardır.

13 Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir

14 « Di ğ er bir deyi ş le algoritma verilerin bilgisayara hangi çevre biriminden girilece ğ inin,problemin nasıl çözülece ğ inin, hangi basamaklardan geçirilerek sonuç alınaca ğ ının, sonucun nasıl ve nereye yazılaca ğ ının sözel olarak ifade edilmesi biçiminde tanımlanabilir. »

15 Örne ğ in: Verilen iki sayının toplamının bulunmasının algoritması a ş a ğ ıdaki gibi yazılır: Adım 1-Ba ş la Adım 2-Birinci sayıyı oku Adım 3- İ kinci sayıyı oku Adım 4- İ ki sayıyı topla Adım 5-Dur Adım 6-Sonucu göster

16 System isim alanı:.NET çalı ş ırken gerekli temel sınıfları içerir. Ayrıca di ğ er tüm sınıf kütüphaneleri de bunun içinde kümelenmi ş tir. System hiyerar ş inin tepesinde bulunur. Örne ğ in tüm veri tabanı i ş lemleri için kullanılacak sınıf kütüphanesi System.Data’dır.

17 System.IO : Dosyalara bilgi giri ş i, dosyadan bilgi okuma, I/O i ş lemleri için kullanılır. System.Windows.Forms: Windows tabanlı uygulamalarda kullanılan zengin grafik arabirimi kontrollerini içerir.

18 System.Math : Matematiksel i ş lemler için hazır statik metotlar barındırır. (Mutlak de ğ er alma, karekök hesaplama gibi.) *Bir sınıf kütüphanesini programa dahil etmek için using anahtar sözcü ğ ü kullanılır. Örne ğ in : using System.Math;

19 Programda mantıksal çıkarımlar elde etmek için kullanılması gereken ş art kontrol ifadelerine ko ş ul ifadeleri, belirli bir olayı sınırlı yada sınırsız tekrarlatmak için kullanılan ifadelere ise döngü denilir.

20 if ( ş art / ko ş ul) { ko ş ulun dogru olması durumunda çalı ş tırılacak olan kodlar… } else { ko ş ulun yanlı ş olması durumunda çalı ş tırılacak olan kodlar… }

21 for (a;b;c) { a, b durumunu sa ğ ladı ğ ı müddetçe buradaki kodlar yinelenerek çalı ş tırılır… } a : de ğ i ş ken. b : a’nın sa ğ laması gereken durum. c : a’nın de ğ i ş im ş ekli (artma – azalma gibi)

22

23 İ lk önce programımızı belirleyelim: * Programımız ekran görüntüsünü almaya yarayan bir program olacak. Aldı ğ ı görüntüyü.bmp formatında kullanıcının istedi ğ i yere kaydedecek.

24 Programımızın basitçe algoritmasını belirliyelim: 1) Ekran görüntüsü almak için sınıf olu ş tur. 2) Çek dü ğ mesine tıklandı ğ ı anda kod blogunda sınıfı kur ve gerekli methodu ça ğ ır. 3) Ekran görüntüsünü al. 4) Kaydet dü ğ mesine tıklanırsa dialog penceresini aç ve programı kaydettir. 5) İ ptal dü ğ mesine tıklanırsa programdan çık.

25

26 Ana ekrandan «New Project» sekmesine tıklayıp yeni bir «Class Library» olu ş turalım. İ smine ise «Goruntu» diyelim. Olu ş an sınıfın namespace ismi Goruntu olacaktır. Solution Explorer sekmesinden class1 yazan yerin ismini «GoruntuAl» yapalım. Açılan dialog penceresindeki soruyu «Evet» olarak yanıtlayın.

27 A ş a ğ ıdaki gibi bir ekran görüntüsü olu ş mu ş olmalı. Burada zaten dikkat ederseniz bazı isim alanları otomatik olarak eklenmi ş tir.

28 Biz gerekli olaca ğ ı için iki kütüphane daha ekleyece ğ iz. Bunun için Solution Explorer kısmındaki References kısmına sa ğ tıklayıp Add reference diyelim..NET alanındaki ş u sınıfları bulup ekleyelim: * System.Windows.Forms; * System.Drawing;

29 Arkasından bunları kod kısmında kullanmak için using anahtar sözcü ğ ünü kullanarak kodlarımıza dahil edelim: *using System.Drawing; *using System.Windows.Forms;

30 Bitmap goruntu = new Bitmap(Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height); public Bitmap GoruntuGetir() { Graphics cizim = Graphics.FromImage(goruntu); cizim.CopyFromScreen(0, 0, 0, 0, new Size(goruntu.Width, goruntu.Height)); return goruntu; }

31

32 Yazdı ğ ımız kodları kaydedelim. Artık elimizde bize ait bir sınıf kütüphanesi (dll dosyası) var. Bu dosyayı ekran görüntüsünü almak için yazdı ğ ımız tüm programlarda ça ğ ırıp kullanabilece ğ iz. Bu da bizi tekrar tekrar kod yazmaktan kurtaracak. (Nesne tabanlı programlama mantı ğ ının en büyük avantajı.)

33 Ş imdi solution’ umuza sa ğ tıklayıp yeni bir windows form projesi olu ş turalım. Olu ş turmu ş oldu ğ umuz bu projeye de kendi kütüphanemizi ekleyelim.

34 Ş imdi formumuza gerekli elemanları tools sekmesinden sürükleyip bırakalım, tasarım size kalmı ş. * İ ki tane buton. *SaveFileDialog elementi. *PictureBox.

35 Ş imdi «çek» butonumuza çift tıklayıp kodlarımızı yazalım.

36 Button1’in olayına yazaca ğ ımız kod sadece ş u : { GoruntuAl GrntAl = new GoruntuAl(); pictureBox1.Image =GrntAl.GoruntuGetir(); }

37 Son olarak Button2’nin olayına a ş a ğ ıdaki kodları yazıp programımızı çalı ş tıralım. GoruntuAl GrntAl = new GoruntuAl(); DialogResult cevap= saveFileDialog1.ShowDialog(); if (cevap==DialogResult.OK) { GrntAl.GoruntuGetir().Save(saveFileDialog1.FileName +".bmp", System.Drawing.Imaging.ImageFormat.Bmp); }

38 Artık programımız kullanıma hazır derleyip çalı ş tırabiliriz:

39 Kaynakça: 1)MEGEP, Bili ş im teknolojileri: Nesne tabanlı programlama-1, Ankara )http://www.godoro.com/Divisions/Ehil/ Mecmua/Magazines/Articles/txt/html/arti cle_FlowChart.html


"Nesne Tabanlı Programlama Hakan Do ğ an. Gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yakla ş ımdır. Klasik prosedürel programlamada." indir ppt

Benzer bir sunumlar


Google Reklamları