Nesne Tabanlı Programlama Hakan Doğan

Slides:



Advertisements
Benzer bir sunumlar
SGB.NET’İN TEKNİK ALTYAPISI
Advertisements

C# - Metotlar.
C# İsim uzayları(namespace)
Tuğba DEMİREL
BİLGİ VE HABERLEŞMESİNİN ÖNEMİ
İSİM UZAYLARI.
Algoritma ve Akış Diyagramları
Problemi Çözme Adımları
KONTROL ÖZELLİKLERİ.
EXCEL-2.
NESNEYE YÖNELİK PROGRAMLAMA
h/.  XPath bir W3C standardıdır  XPath XML dökümanlarının kısımlarını seçmek için kullanılan bir sintakstır.  XPath sorguları.
Javascript Oğuz İNAL.
Namespaces and .NET Class Library (İsim Alanları Sınıf Kütüphanesi)
Algoritma ve Akış Diyagramları
ALGORİTMA NEDİR? Algoritma,herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir[2]. Diğer bir deyişle algoritma verilerin bilgisayara hangi.
Yapılan Hizmetlerin Bilgisayara İş lenmesi Klinikten toplanmı ş olan hizmet formlarını klinik sekreterli ğ ine getirip bilgisayarda islenmektedir. Yapılan.
ALGORİTMA ve PROGRAMLAMA
İSİM UZAYLARI (NAMESPACE).
DynEd İngilizce Dil Eğitim Sistemi
Management Studio Kullanımı
Erişim Denetimi, Fonksiyon
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : KAPSÜLLEME.
SAĞLIK YÜKEKOKULU HEMŞİRELİK BÖLÜMÜ 1/B NERMİN ATEŞ
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
NESNEYE DAYALI PROGRAMLAMA
XML Document Object Model (DOM)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
Nesneye Dayalı Programlama
NESNE YÖNELİMLİ PROGRAMLAMA
HTML HYPER TEXT MARKUP LANGUAGE Burcu Yılmaz – İ brahim Mert Bilişim Teknolojileri Ö ğ retmeni.
C# ile OOP GİRİŞ.
Nesneye Yönelik Programlama (12. Sunu). İsim Uzayları (Namespaces) Sınıfınızda Deniz adında iki öğrenci olduğunu kabul ediniz. Böyle bir durumda bu öğrencileri.
BENGÜ YILDIRIM  Kullanıcı random olarak gelen kelimeyi tahmin etmeye çalı ş maktadır.  Aranan kelimenin harfleri üst kısımda pembe kutular.
JAVA’DA DÖNGÜLER.
NESNEYE YÖNELİK PROGRAMLAMA
SINAV NOTLARI HAZIRLIYORUM
Görsel Programlama III Ders 8 Öğr.Gör. Mustafa KARABULUT.
ALGORİTMA.
ENF 204 Bilgisayar Programlama Algoritma ve Akış Diyagramları
TEK Mİ ÇİFT Mİ? TOPLA YA DA ÇIKAR.
HTML HYPER TEXT MARKUP LANGUAGE Ayşe AK İ DA Ğ I Bilişim Teknolojileri Ö ğ retmeni.
VERİ YAPILARI İşaretçi Nedir? Nesne Tabanlı Programlama.
Modül 1: Giriş. Genel Bakış Temel.NET kavramları Geliştirme ortamında gezinti Bir C# projesi oluştur Use Visual Studio.NET Veriye eriş Hata ayıkla ve.
ALGORİTMA VE AKIŞ ÇİZELGELERİ
Sayfa Ayarlari Projelerimizde uzerinde yogunlasacagimiz dosyalar Java ve XML dosylari olacaktir.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 11: Birden Çok Form ile Çalışma ve Menü Oluşturma Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
Lınk layer ProtoCol (ARP,INARP) YUNUS EMRE BAYAZIT.
LUCA Bilgisayarlı muhasebe programı
DOSYA MENÜSÜ.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
İbrahim Olgaç PROGRAMLAMA DİLLERİ SUNUMU C#
APP INVENTOR Emre ANLAR.
BİLGİSAYAR PROGRAMLAMA DERSİ
T.C. ÖMER HALİSDEMİR ÜNİVERSİTESİ EĞİTİM FAKÜLTESİ BİLGİSAYAR VE ÖĞRETİM TEKNOLOJİLERİ ÖĞRETMENLİĞİ EĞİTİMDE BİLİŞİM TEKNOLOJİLERİ – 2 DERSİ ALGORİTMALAR.
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
PROGRAMLAMA VE KODLAMAYA GİRİŞ
PROGRAMLAMAYA GİRİŞ VE ALGORİTMA
Algoritmanın Hazırlanması
PINAR KARTALO Ğ LU.  Belirli sayıda i ş lemlerin tekrarlanması için kullanılan döngülerdir. for döngüleri ba ş langıç ve biti ş de ğ erleri arasında.
1. Konfigürasyon oluşturma
Problemi Çözme Adımları
Program Kurulum Seti Hazırlamak
Algoritma ve Akış Diyagramları
MTM216 GÖRSEL PROGRAMLAMA
Sunum transkripti:

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

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.

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.

Nesne tabanlı programlama modeli

Ö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).

Sınıf (Class) ve nesne (Object) kavramı

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.

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.

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.

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.

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.

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.

ALGORİTMA MANTIĞI Algoritma, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir

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. »

Ö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

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.

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.

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;

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.

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…

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)

Örnek Program

İ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.

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.

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

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.

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.

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;

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;

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; }

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ı.)

Ş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.

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

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

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

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); }

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

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