Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

Nesne Tabanlı Programlama Hakan Doğan

Benzer bir sunumlar


... konulu sunumlar: "Nesne Tabanlı Programlama Hakan Doğan"— Sunum transkripti:

1 Nesne Tabanlı Programlama Hakan Doğan
Program Yapıyorum Nesne Tabanlı Programlama Hakan Doğan

2 Nesne Tabanlı Programlama
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 Örnek 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 Sınıf (Class) ve nesne (Object) kavramı

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 Nesne tabanlı programlama Kavramları
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 Nesne tabanlı programlama Kavramları
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 Neden bir sınıftan başka sınıflar türetiriz?
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 Nesne tabanlı programlama Kavramları
Ç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 ALGORİTMA MANTIĞI Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir

14 Algoritma « 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 Temel ve En Gerekli Sınıf Kütüphaneleri
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 Temel Koşul İfadeleri ve Döngüler
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 – Else Yapısı 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 Döngüsü 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 Örnek Program

23 İlk önce programımızı belirleyelim:
İ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:
Ekran görüntüsü almak için sınıf oluştur. Çek düğmesine tıklandığı anda kod blogunda sınıfı kur ve gerekli methodu çağır. Ekran görüntüsünü al. Kaydet düğmesine tıklanırsa dialog penceresini aç ve programı kaydettir. İptal düğmesine tıklanırsa programdan çık.

25 C# ile kodlamak için Visual Studio 2010’u Açıyoruz

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ı
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
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 Kodlarımızı Yazalım: }
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
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/article_FlowChart.html


"Nesne Tabanlı Programlama Hakan Doğan" indir ppt

Benzer bir sunumlar


Google Reklamları