NESNEYE YÖNELİK PROGRAMLAMA

Benzer belgeler
ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları

ALGORİTMA VE PROGRAMLAMA II

C# Metotlar ve Metot Tanımlama

C#(Sharp) Programlama Dili

Sunum İçeriği. Programlamaya Giriş

Uzaktan Eğitim Uygulama ve Araştırma Merkezi

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Doç. Dr. Aybars UĞUR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

DATA STRUCTURES. Lab II Metotlar, Diziler ve Hata Ayıklama. Prof. Dr. Aybars UĞUR

Örnek: İki fonksiyondan oluşan bir program. Fonksiyon Tanımı

YZM 2105 Nesneye Yönelik Programlama

Akış Kontrol Mekanizmaları

Bölüm 10 Statik ve Anlık Öğeler

BİL-141 Bilgisayar Programlama I (Java)

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar

BMÜ-101 ALGORİTMA VE PROGRAMLAMAYA GİRİŞ LABORATUARI

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır.

/ C Bilgisayar Programlama Final Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

ALGORİTMA VE PROGRAMLAMA I

BİL-142 Bilgisayar Programlama II

BTEP243 Ders 3. class Yazım Kuralı:

Diziler (Arrays) Çok Boyutlu Diziler

public static int Toplam int x, int y

Yrd. Doç. Dr. Caner ÖZCAN

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

ALGORİTMA VE PROGRAMLAMA I

Öğr. Gör. Serkan AKSU 1

1. Aşağıdaki program parçacığını çalıştırdığınızda result ve param değişkenlerinin aldığı en son değerleri ve programın çıktısını yazınız.

Ders 8: Metotlar. barisgokce.com

Lambda İfadeleri (Lambda Expressions)

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma

while(), do-while(), for() M.İLKUÇAR 2010 MAKU-MYO

Yrd. Doç. Dr. Caner ÖZCAN

C dilinde if-else yapısı

Operator Aşırı Yükleme (Operator OverLoading)

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI

MAK 1005 Bilgisayar Programlamaya Giriş. Fonksiyonlar. Prof. Dr. Necmettin Kaya

// hataları işaret eden referans

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM

HSancak Nesne Tabanlı Programlama I Ders Notları

Özyineleme (Recursion)

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance

BİLGİSAYAR TEMELLERİ VE PROGRAMLAMAYA GİRİŞ

DÖNGÜLER (LOOPS) while(), do-while(), for(), foreach()

elemanlarının gezilmesine yönelik bir örnek sunulmuştur, inceleyiniz.

Veri Yapıları Lab Notları 2. Bellek Yönetimi ve Göstericiler

BM102 BİLGİSAYAR PROGRAMLAMA II LABORATUVAR UYGULAMALARI. 3Hafta

Çoktan Seçmeli Değerlendirme Soruları Akış Şemaları İle Algoritma Geliştirme Örnekleri Giriş 39 1.Gündelik Hayattan Algoritma Örnekleri 39 2.Say

Java 2 Standart Edition SDK Kurulum ve Java ya Giriş

Pointer Kavramı. Veri Yapıları

BMÜ-111 Algoritma ve Programlama. Bölüm 5. Tek Boyutlu Diziler

C++ Dersi: Nesne Tabanlı Programlama

ELN1001 BİLGİSAYAR PROGRAMLAMA I

Bölüm 10. Altprogramların gerçeklenmesi ISBN

Java da İşleçler, Ders #3 (4 Kasım 2009)

Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : dak.

HSancak Nesne Tabanlı Programlama I Ders Notları

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0

Nesneye Dayalı Programlama Laboratuvarı

C Programlama Dilininin Basit Yapıları

/ C Bilgisayar Programlama Yıliçi Sınavı Test Soruları. Adı soyadı :... Öğrenci no :... İmza :... Tarih, Süre : , 60 dak.

İçerik. Java da İşleçler, İşleçler. Aritmetik İşleçler - 1. Aritmetik İşleçler - 2. Geçen ders: Bu ders: BS-515 Nesneye Yönelik Programlama

İsimler ve Kapsam. 24 Şubat Programlama Dilleri - Pamukkale Üniversitesi 1

NESNEYE YÖNELİK PROGRAMLAMA

Göstericiler (Pointers)

Fonksiyonlar (Altprogram)

C PROGRAMLAMA D İ L İ

JAVA PROGRAMLAMA DİLİ ÖZELLİKLERİ

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism )

Bir dizinin boyutları sabittir ve kullanılmadan önce belirlenmelidir. Dizi boyutunu belirlemek için başka bir değişkende kullanabilirsiniz.

enum bolumler{elektronik, insaat, bilgisayar, makine, gida};

Veri Tipleri Aşağıdaki programdaki 5 hatayı bulunuz.

Nesneye Dayalı Programlama

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir;

D İ Z İ L E R A R R A Y S

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) {

Bölüm 10. Altprogramları Uygulamak

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER SINIFLAR

BİLG Dr. Mustafa T. Babagil 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

4.Hafta. this Anahtar Sözcüğü

C++ Dersi: Nesne Tabanlı Programlama

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD

BASİT C PROGRAMLARI Öğr.Gör.Dr. Mahmut YALÇIN

C++ Göstericiler (Pointer)

8. İŞARETCİLER (POINTERS)

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1

Sınav tarihi : Süre : 60 dak.

YAPILAR BİRLİKLER SAYMA SABİTLERİ/KÜMELERİ. 3. Hafta

Programlama Dillerinde Kullanılan Veri Tipleri

Veri Yapıları. Amaçlar: Temel Veri Yapılarını Tanımlamalı Veri Yapılarını Veri Modeli ve Türlerini Öğreneceksiniz. İçindekiler:

Transkript:

NESNEYE YÖNELİK PROGRAMLAMA

Metotlar Şu ana kadar yaptığımız örneklerde hep önceden hazırlanmış ReadLine(), WriteLine() vb. gibi metotları kullandık. Artık kendi metotlarımızı yapmanın zamanı geldi. Bilmem farkında mısınız, ama aslında bütün örneklerimizde birer metot oluşturmuştuk. O da çalışabilir her programda bulunması gereken Main metoduydu. Artık Main metodu gibi başka metotlar yazıp programımızın içinde kullanabileceğiz.

Metotlar Metotlar oluşturarak programımızı parçalara böler ve programımızın karmaşıklığını azaltırız. Ayrıca bazı kodları bir metot içine alıp aynı kodlara ihtiyacımız olduğunda bu metodu çağırabiliriz. Bu sayede de kod hamallığı yapmaktan kurtuluruz.

Metot oluşturma ve kullanımı Bu metot, iki tane int türünden girdi alır ve bu girdilerin toplamını int türünden tutar. Ancak bu metodu programımız içinde kullanabilmemiz için bu metodun içinde bulunduğu sınıf türünden bir nesne oluşturup "." operatörüyle bu nesne üzerinden metodumuza erişmeliyiz.

Örnek

Statik Metotlar static olarak tanımlanan metotlara erişmek için metodun içinde bulunduğu sınıf türünden bir nesne oluşturmaya gerek yoktur. static olarak tanımlanan metotlara sadece metodun adını yazarak erişilebilir.

Örnek

Farklı Sınıflardaki Metotlar Eğer metot, içinde bulunduğumuz sınıfta değil de, başka bir sınıf içinde yazılmışsa o metodu kullanabilmek için önce sınıfın adını belirtmemiz gerekir.

Örnek

public Deyimi Dikkat ettiyseniz önceki örnekteki metodun başlık satırının (4. satır) başına public anahtar sözcüğü konmuş. public sözcüğüyle derleyiciye bu metoda her sınıftan erişilebileceğini söylüyoruz. Eğer public sözcüğü yazılmamış olsaydı bu metoda sadece Metotlar1 sınıfından erişilebilirdi.

Farklı Sınıflardaki Metotlar static olmayan bir metodun başka bir sınıf içinde kullanımı:

Değer Tutmayan (Döndürmeyen) Metotlar Herhangi bir değer tutmayan (WriteLine gibi) metotları void anahtar sözcüğüyle yazarız. Örnek:

Değer Tutmayan (Döndürmeyen) Metotlar Herhangi bir değer tutmayan metotlarda return; komutu, yanına herhangi bir ifade olmadan kullanılabilir. Aslında return; komutunun asıl görevi metottan çıkmaktır, ancak yanına bazı ifadeler koyularak metodun tuttuğu değeri belirtme vazifesi de görür. Örneğin bir if koşulu yazıp, eğer koşul sağlanırsa metottan çıkılmasını, koşul sağlanmazsa başka komutların da çalıştırılmasını sağlayabiliriz. Ancak doğal olarak bir metodun son satırında return; komutunun kullanılması gereksizdir.

Örnek:

Metotlarla ilgili önemli özellikler Metotları kullanırken parametrelerini doğru sayıda, doğru sırada ve doğru türde vermeliyiz. Değer tutan metotlarda return satırıyla belirtilen ifade, metodu yaratırken verilen türle uyumlu olmalıdır. Değer tutmayan (void ile belirtilmiş) metotlarda return komutunun herhangi bir ifadeyle kullanılması yasaktır. Değer tutmayan metotların bir değermiş gibi kullanılması yasaktır. Metotlar değer tutmayabileceği gibi, parametre de almayabilirler.

Parametre almayan metot örneği

Metot parametresi olarak diziler

Dizi ve değişken parametreler arasındaki fark Örnek1:

Dizi ve değişken parametreler arasındaki fark Örnek 2:

Dizi ve değişken parametreler arasındaki fark Verilen iki örnek programı çalıştırdığınızda göreceksiniz ki metoda parametre olarak aktarılan dizinin metot içinde bir elemanının değiştirilmesi esas diziyi etkiliyor. Ancak metoda parametre olarak aktarılan değişkenin metot içinde değiştirilmesi esas değişkeni etkilemiyor. Çünkü bir metoda parametre olarak bir dizi verildiğinde derleyici metoda dizinin bellekteki adresini verir; metot o adresteki verilerle çalışır. Dolayısıyla da dizinin herhangi bir elemanındaki değişiklik esas diziyi etkileyecektir. Çünkü gerek esas program, gerekse de metot aynı adresteki verilere erişir.

Dizi ve değişken parametreler arasındaki fark Halbuki bir metoda parametre olarak bir değişken verdiğimizde metot için değişkenin bellekteki adresi önemli değildir, metot için önemli olan değişkenin değeridir. Metot, değişkeni kullanabilmek için geçici bir bellek bölgesi yaratır ve parametre olarak aldığı değişkenin değerini bu geçici bellek bölgesine kopyalar ve o geçici bellek bölgesiyle çalışır. Metottan çıkıldığında da o geçici bellek bölgesi silinir.

ref anahtar sözcüğü Bir metoda aktarılan bir değişkende yapılan bir değişikliğin tıpkı dizilerdeki gibi esas değişkeni etkilemesini istersek ref anahtar sözcüğünü kullanırız. ref anahtar sözcüğü değişkenlerin metotlara adres gösterme yoluyla aktarılmasını sağlar. ref sözcüğünün hem metodu çağırırken, hem de metodu oluştururken değişkenden önce yazılması gerekir. Ayrıca ref sözcüğüyle bir değişkenin metoda adres gösterme yoluyla aktarılabilmesi için esas programda değişkene bir ilk değer verilmelidir. Yoksa program hata verir.

ref anahtar sözcüğü Bu program ekrana 10 yazacaktır.

out anahtar sözcüğü Kullanımı ref anahtar sözcüğüyle tamamen aynıdır. Tek farkı out ile belirtilen değişkenlere esas programda bir ilk değer verilmesinin zorunlu olmamasıdır.

out anahtar sözcüğü

Metotların aşırı yüklenmesi C#'ta parametre sayısı ve/veya parametrelerin türleri farklı olmak şartıyla aynı isimli birden fazla metot yaratılabilir. Buna metotların aşırı yüklenmesi denir. C#, bir metot çağrıldığında ve çağrılanla aynı isimli birden fazla metot bulunduğunda metodun çağrılış biçimine bakar. Yani ana programdaki metoda girilen parametrelerle metotları kıyaslar.

Aşağıdaki programda metotların çağrılma sırası :3,1,2 dir.