BIL528 – Bilgisayar Programlama II

Slides:



Advertisements
Benzer bir sunumlar
el ma 1Erdoğan ÖZTÜRK ma ma 2 Em re 3 E ren 4.
Advertisements

Yrd. Doç. Dr. Mustafa Akkol
Prof.Dr.Şaban EREN Yasar Üniversitesi Fen-Edebiyat Fakültesi
C# - Metotlar.
Sık Kullanılan Kontroller
Değişkenler ve bellek Değişkenler
T.C. İNÖNÜ ÜNİVERSİTESİ Arapgir Meslek YÜKSEKOKULU
MATLAB MATLAB İLE GRAFİK.
Power Point’a Resim Nesneleri Ekleme ve Kullanma
Tuğba DEMİREL
Eğitim Programı Kurulum Aşamaları E. Savaş Başcı ASO 1. ORGANİZE SANAYİ BÖLGESİ AVRUPA BİLGİSAYAR YERKİNLİĞİ SERTİFİKASI EĞİTİM PROJESİ (OBİYEP)
Kodlama bilgisi gerekmez!
Temel Bilgisayar Bilimleri Dersi
İSİM UZAYLARI.
BİLGİ ve İletİŞİM TeknolojİSİ
Diferansiyel Denklemler
JEODEZİ I Doç.Dr. Ersoy ARSLAN.
Algoritmalar DERS 2 Asimptotik Notasyon O-, Ω-, ve Θ-notasyonları
Yönetim Bilgi Sistemleri Şubat TAPU VE KADASTRO GENEL MÜDÜRLÜĞÜ.
KIR ÇİÇEKLERİM’ E RakamlarImIz Akhisar Koleji 1/A.
Veri Toplama, Verilerin Özetlenmesi ve Düzenlenmesi
AKILLI TAHTA Orhan YORULMAZ Semih ŞENGİDER Nazar SALPİYEV Berk HERAL
MATEMATİKSEL PROGRAMLAMA
İkili Arama Ağaçları (Binary Search Trees) BST
Meslektaşlarımızın Ücret Almadan Hizmete Devam Etmesi. Haksız Rekabette Sorunlar.
HAZIRLAYAN:SAVAŞ TURAN AKKOYUNLU İLKÖĞRETİM OKULU 2/D SINIFI
ÖRNEKLEM VE ÖRNEKLEME Dr.A.Tevfik SÜNTER.
ARALARINDA ASAL SAYILAR
NESNE TABANLI PROGRAMLAMA -METOTLAR-
 HTML nin en önemli araçlarından biri de bilgi girişinde kullanılan form kontrolleridir.  Formlar, web sayfası tasarlayan kişi veya şirketlerle internet.
METODLAR.
Formül Hazırlama ve Kullanma
Tam sayılarda bölme ve çarpma işlemi
METODLAR Canan Işıl. 1 İçindekiler Açıklamalar, Örnekler, Sorularınız? Kaynakça, Teşekkürler..
Chapter 7: Using Methods. Metotları ve Kodlamayı Gizlemeyi Anlama Metot – Kapsüllenmiş ifadeler serisini gerçekleştiren bir görev – Kullanılan metodun.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 8: Windows Formları
Chapter 13: Handling Events. 2Microsoft Visual C# 2012, Fifth Edition Olay İşleme Olay – Bir nesne için ilginç bir şey olduğu zaman oluşur. – Programın.
HABTEKUS' HABTEKUS'08 3.
Microsoft EXCEL (2) Kapsam Kopyalama, Yapıştırma Açıklama Ekleme Satır ve Sütunların Boyutlandırılması Bitişik Hücrelere Dayanarak Otomatik Veri Girme.
Temel Bilgisayar Bilimleri Dersi
Chapter 12: Using Controls. IDE’nin Otomatik Olarak Oluşturduğu Kodun İncelenmesi FormWithALabelAndAButton adı verilen yeni bir Windows Form Projesi başladı.
METOTLAR.
Akış Kontrol Mekanizmaları
C# ile OOP GİRİŞ.
Chapter 6: Using Arrays.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Gelişmiş Envanter Uygulaması.
Yard. Doç. Dr. Mustafa Akkol
Chapter 4: Making Decisions
TAŞINIR KAYIT VE YÖNETİM SİSTEMİ Semineri Bayram KESER Mali Hizmetler Uzmanı 1 T.C MİLLÎ EĞİTİM BAKANLIĞI STRATEJİ GELİŞTİRME BAŞKANLIĞI.
Chapter 8: Advanced Method Concepts
BTP206– Görsel Programlama II
Görsel Programlama II Ders 4 Öğr.Gör. Mustafa KARABULUT.
METODLAR Esra SARI.
Chapter 11: Exception Handling
Çocuklar,sayılar arasındaki İlişkiyi fark ettiniz mi?
ÇOK DEĞİŞKENLİ FONKSİYONLARDA
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Amaçlar Bu derste öğrenilecekler: –Uygulamaları “method”
SLAYT 1BBY220 OCLC WorldCat Yaşar Tonta Hacettepe Üniversitesi yunus.hacettepe.edu.tr/~tonta/ BBY220 Bilgi Erişim İlkeleri.
© Copyright by Deitel & Associates, Inc. and Pearson Education Inc. All Rights Reserved. 1 Anahat 4.1 Inventory uygulamasını çalıştırmak 4.2.
BTP102 VERİTABANI YÖNETİM SİSTEMLERİ 1
ÖĞR. GRV. Ş.ENGIN ŞAHİN BİLGİ VE İLETİŞİM TEKNOLOJİSİ.
Diferansiyel Denklemler
BTP206– Görsel Programlama II
Bilgisayar programlarının en büyük avantajı, kullanıcının işini kolaylaştırmalarıdır. Her bilgisayar programı bunu değişik metotlar kullanarak sağlar.
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.
Modül 2: Formlar ve Kontroller ile Çalışmak. Programlama Kavramları Formlar ile Çalışmak Kontroller ile Çalışmak Kodu Biçemlemek Genel Bakış Visual Studio.NET.
Problemi Çözme Adımları
Sunum transkripti:

BIL528 – Bilgisayar Programlama II Nesneler, Koleksiyonlar ve Olaylar

İçerik Nesne ve Sınıflar Özellikler Metotlar Olaylar

Nesneler

Nesneler C# tam bir nesne tabanlı programlama dilidir. Visual C# kullandığınız her şey bir nesnedir. Formlar üzerine yerleştirdiğimiz tüm formalar ve kontroller birer nesnedir. Tüm nesneler özelliklere(properties), bir çok metotda(methods) ve bir çok olaya(events) sahiptir. Basit uygulamaları oluşturmak veya büyük ölçekli kurumsal çözümler inşa etmek, bir nesne nedir ve başarılı olmak için nasıl çalıştığını anlamak gerekir.

Nesneler (devam) Bir nesne veriyi saklayan, tek bir birim olarak işlevselliği olan ve sadece genel erişimi programlama boyunca yapının arayüzü olan bir bir programlama yapısıdır (Özellikler, metotlar ve olaylar). Basit uygulamaları oluşturmak veya büyük ölçekli kurumsal çözümler inşa etmek, bir nesne nedir ve başarılı olmak için nasıl çalıştığını anlamak gerekir.

“Kontroller” Geçen haftaki sınıfta bir PictureBox ve iki Button nesnesi kullanmıştık. PictureBox ve Button nesneleri birer Kontrolerdir. Onlar farklı nesnelerdir ancak bazı özellikleri paylaşırlar. Paylaştıkları özellikleri kontrol sınıfı sağlamaktadır.

Özellikler Özel ve nesnenin durumunu anlatan nesne niteliklerine o nesnenin özellikleri denir. Geçen hafta bazı özellikleri gördünüz. Özellikler penceresinde görmüş olduğunuz form üzerindeki seçilmiş olan bir nesnenin tüm özellikleridir. Bir Button’un texti, bir Form’un yükseklik(Height) ve genişlikleri(Width) ve bir PictureBox’ın resmi hepsi birer özelliktirler.

Kod ile Özellikleri Değiştirme Tasarım aşamasında, Özellikler (Properties) penceresi kullanılarak bir nesnenin özelikleri değiştirilebilir. Ancak yürütme sırasında Özellikler penceresi kullanılamaz. Kod içinde özellikler referans edildiğinde, ilk önce o nesnenin özel adı belirtilir ve (.) periyodunu takiben daha sonra aşağıdaki söz dizilimi gibi nesnenin özelliğinin adı belirtilir: {NesneAdı}.{Özellik} ({ObjectName}.{Property})

Özellik Değiştirme(devam) Örneğin, btnClickMe adında bir buttonunuz varsa, buttonun Text özelliğine referans etmenin yolu: btnClickMe.Text Bu kod satırı, btnClickMe button nesnesinin Text özelliğinde bir değerin içerip içermediğini ifade eder. Bazı değerleri için bir özelliği değiştirmek için (=) eşit işareti kullanılabilir. Örneğin bir Button nesnesinin sol (Left) özelliğini değiştirmek için aşağıdaki kod satırı kullanılabilir: btnClickMe.Left = 90;

Geçici Bir Değişkende Bir Özelliği Saklama Aşağıdaki kod satırı, geçici bir değişken içeren btnClickMe adındaki button nesnesinin Text özelliğinin değerini değiştirmektedir. Bu durum Text özelliğin değerini tekrardan geri çağırmaktadır. Çünkü Text özelliği eşitliğin sağ tarafında; eşitliğin sağ tarafında olan değer sol taraftaki değişkene atanmaktadır. strText = btnClickMe.Text;

Sadece Okunabilen Özellikler (Read-Only Properties) Bazı özellikler okunabilir ancak değiştirilemezler. Bu özellikler sadece okunabilen özellikler (read-only properties) olarak adlandırılır. Sadece okunabilen özelliklere bir örnek olarak combo box kontrolunun yükseklik (Height) özelliği verilebilir. Combo box’ın bu özelliği Özellikler penceresinde görünmesine rağmen onu değiştiremiyorsunuz. Eğer Visual C# kodu içinde combo box’ın bu yükseklik (Height)özelliğini değiştirmeye kalkmışsanız, Visual C#’ın size hata değeri döndürdüğünü görmüş olmalısınız.

Uygulama(Exercise) Geçen hafta, Özellikler penceresinden bir Form’un boyutunu(Size) değiştirdik. Bugün, Visual C# kodu ile bir Form’un yükseklik ve genişlik özelliğini değiştireceğiz. Picture Viewer projesine iki button ekleyeceğiz. Form’a tıklandığında bu buttonlardan biri büyürken diğeri küçülecektir.

Button Ekleme Özellik Değer Adı btnBuyume Lokasiyon 338, 261 Boyut 21, 23 Text ^ Özellik Değer Adı btnKuculme Lokasiyon 365, 261 Boyut 21, 23 Text v

Büyüme kodu btnBuyume’ye çift tıklanır ve aşağıdaki kod yazılır: this.Width = this.Width + 20; this.Height = this.Height + 20;

Küçülme Kodu btnKuculme’e çift tıklanır ve aşağıdaki kod yazılır: this.Width = this.Width - 20; this.Height = this.Height - 20;

this this kodun sahip olduğu nesneyi gösterir. this özel anlamı olan bir sözcüktür. Bu sözcük nesne veya değişken ismi olarak kullanılamaz çünkü Visual C# da özel bir anlama sahiptir.

Intellisense Kod yazma sırasında otomatik olarak açılan bir nesnenin tüm özelliklerini ve formun tüm metotlarını içeren küçük tık açılır pencereler. Visual Studio this’in yapmış olduğu işi ve daha fazlasını yapmaya fırsat veren akılı bir sistemdir. Örneğin bir nesne için kod yazdığımızda yardımcı tık açılır listeden nesneye ait tüm özelliklerin ve form hakkındaki tüm metotların sıralanması Visual Studio’nun akılılığını göstermektedir. Bu özelliklere IntelliSense denilir. Bunun faydası daha önceden tanımlanmış bir ismi yanlış hatırlamanıza engel olması ve dolayısıyla derleme hatasının verilmesi önüne geçmesidir.

Intellisense

Metotlar

Metotları Anlamak Özelliklerine ek olarak nesneler en çok metotlara sahiptirler. Metotlar nesnelerin niteliklerinin belirtmiş oldukları yoğunluk içinde gerçekleştirdikleri eylemlerdir. Tıpkı özellikler gibi aşağıdaki kod satırı ile metotlar çağırılabilir: {NesneAdı}.{MetotAdı}({Parametreler}); ({ObjectName}.{MethodName}({Parameters}); )

Parantezler Visual C# da metot çağırmada her zaman parantezler olmalıdır. Çoğu zaman onlar boş olabilirler ancak diğer zamanlarda onlar metotları yürütme bilgisini içerirler. Örneğin: MessageBox.Show("Merhaba Dünya!");

Uygulama(Exercise) Bizim bir button içeren ve bu buttona tıklandığında resmin kenarına renkli bir sınır çizen PictureViewer projesin değiştireceğiz.

Arayüz Oluşturma Yeni bir button eklenir ve onun özellikleri lokasiyonu değiştirilir (pp.69’deki gibi). Button çift tıklanır ve aşağıdaki kod yazılır: Graphics objGrafikler = this.CreateGraphics(); objGrafikler.Clear(SystemColors.Control); objGrafikler.DrawRectangle(Pens.Blue, picShowPicture.Left - 1, picShowPicture.Top - 1, picShowPicture.Width + 1, picShowPicture.Height + 1); objGrafikler.Dispose(); Program Çalıştırılır.

Grafik Nesneleri Bir Grafik Nesnesi bazı geometrik şekilleri çizmek veya text’leri yazmak için kullanılabilir. Bir formun CreateGraphics() metotlar formun client alanını temsil eden bir nesne döndürür. Herhangi bir şey formun Grafikler nesnesi içine çizildiğinde form üzerinde o şey görülür. Sayılar metinler gibi lokal değerler olmayan bir özellik döndürüldüğünde bunların bir de nesne olabileceği unutulmamalıdır.

Kod İçinde Kullanılan Metotlar Clear() metotu formun arka planını temizler. DrawRectangle() metotu belli koordinatlarda bir kalem(Pen) nesnesi kullanılarak bir dikdörtgen çizer. Dispose() metotu nesne tarafından kullanılan kaynakları sıfırlar (C’deki free() metotu gibi).

Proje Çalıştırma(Yürütme)

Koleksiyonlar

Koleksiyonları Anlamak Bir Koleksiyon(collection) sadece isim anlamına gelir: Bir nesne koleksiyonu. Koleksiyonlar, bir koleksiyon içindeki items üzerinde tekrarlı yürütmeleri(processing) gerçekleştiren oluşturulmuş kodun etkinleştirilmesiyle çok sayıdaki benzer nesnelerin çalışmasını kolaylaştırır. Tekrarlı yürütme, her nesne için faal kod yazmaktan ziyade çoklu nesneler üzerine tekrarlı bir işlem gerçekleştiren bir işlemdir. İndeksli bir nesne kümesini içermeye ek olarak bir de koleksiyonlar özelliklere ve metotlara sahip olabilir.

Koleksiyonların Kendi Özellik ve Metotları Tüm koleksiyonlar bir sayma(Count) özelliğine sahiptirler. Ayrıca Koleksiyonların bir ekleme(Add() ) ve bir silme (Delete() ) metoduna sahip olabilirler.

Uygulama(Exercise) Tüm kontrollerinin içeriğinin isimlerini veren küçük bir form oluştur: Forma isimleri aynı olmayan bazı kontroller ekle. İsmi Kontrol İsimlerini Göster adında button ekle ve ona tıkla(Click) kodunu oraya yaz.

Gerekli Kod for (int i = 0; i < this.Controls.Count; i++) { MessageBox.Show("Control #" + i.ToString() + " has the name " + this.Controls[i].Name); }

Ya da int i = 1; foreach (Control cnt in this.Controls) { MessageBox.Show("Control #" + i.ToString() + " has the name " + cnt.Name); i++; }

Olaylar(Events)

Olayları Anlamak Bir arayüz oluşturmaya ek olarak, programının hem bir kullanıcı ile hem Windows ile nasıl etkileşiminin içinde olduğunu göstermek programı güçlendirir. Tabiki bu işlem de olaylar(events) ile mümkündür.

Olay-Güdümlü (Event-Driven) Programlama Klasik(geleneksel) programlama dilleri ile kodun ilk satırı işletilir ve o şekilde devam ederek program sonuna kadar işletilir. Olay-güdümlü programlar olaylar içinde yer alan lokal kod bölmeleri mevcuttur. Bunlar önceden planlanmış olaylar değiler. Olay-güdümlü programlar içerisinde bir takım olaylar barındıran mantıksal birimleri bulunan kodlara sahiptirler. Olayların gerçekleşmesinde önceden belirlenmiş bir sıra yoktur. Kullanıcının olay-güdümlü program içerisinde yürütülen kod üzerinde kontrol yetkisi vardır ve belirli olayları interaktif olarak tetikleyebilir. Örn.: Butona tıklamak.

Olaylar (Events) Bir olay bir obje tarafından kullanılan ve müşteriler için faydalı olabilecek durum değişmeleri hakkında bilgi veren bir özel methoddur (objeyi kullanan kod). Olaylar bir takım özel yollarla çağırılabilirler: Kullanıcılar olayları tetikleyebilir (örneğin; bir butona tıklamak) Objeler kendi olaylarını tetikleyebilir (örn: zamanlayıcılar) İşletim sistemi olayları tetikleyebilir. Bir olayı tetiklemek için yalnızca methodu çağırmanız yeterlidir.

Uygulama: Farenin bulunduğu koordinatları gösterme PictureViewer projesini açın. X ve Y koordinatları için 2 adet label (Etiket) ekleyin. Resim kutucuğunu (PictureBox) seçin ve Özellikler (Properties) penceresinden yeni MouseMove olayını oluşturun. Aşağıdaki kodu girin: lblX.Text = "X: " + e.X.ToString(); lblY.Text = "Y: " + e.Y.ToString();

Projeyi Çalıştırma Fareyi resim kutucuğundan uzaklaştırdığınız zaman etiketler son koordinatları gösterir. Çözüm: MouseLeave olayını kullanmak! lblX.Text = ""; lblY.Text = "";

Notes Olayların 2 adet parametresi bulunur: Sender ve EventArgs. Fare olay metodlarının EventArgs parametresi yerine MouseEventArgs parametresi bulunur. Diğer olay metodlarının kendi farklı parametre tipleri bulunabilir fakat yine de EventArgs sınıfından türetilmişlerdir. EventArgs objesi programlamacıya olayla ilişkili faydalı bilgiler vermektedir.