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

Ebat: px
Şu sayfadan göstermeyi başlat:

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

Transkript

1 SINIFLAR İÇİNDEKİLER Sınıflar Sınıf Tanımlama Ve Kullanma Sınıflara Metot Eklemek Yapıcı Metotlar Kopyalayıcı Metotlar Yıkıcı Metotlar Statik Sınıflar NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER Bu üniteyi çalıştıktan sonra; Sınıf tanımlayıp programlar içerisine ekleyebilecek, Sınıflar içerisine yeni metotları yapılandırabilecek, Statik sınıflar için değişken ve metotlar kullanabileceksiniz. ÜNİTE 10

2 GİRİŞ Nesne Tabanlı programlama tekniği (Object Orianted programming) birbirinin özellik ve metotlarını kullanabilen, gerektiğinde diğerinin kodlarını alıp yeni kodlar eklenebilen sınıflardan oluşur. Sınıf kavramı belli bir veya birden çok ortak özellikleri olan varlıkları tanımlamaya yarayan soyut bir kavramdır. Nesne ise bir sınıfa ait belirgin bir öge, bir varlıktır. Virtual C# programlama dili %100 nesne tabanlı bir dildir. Bu programlama dilinde yazılım yaparken, çözülmesi istenen problemler genelde çeşitli parçalara ayırılır. Her bir parça problemin küçük bir çözümü olacak şekilde özel olarak kodlanır. Sonuçta bütün bu parçaların bir araya getirilmesi sonucu yazılım tamamlanır. Eğer bir yazılım bu şekilde yazılmışsa, nesne tabanlı programlama yapılmıştır denebilir. Sınıflar nesne yönelimli programlamanın en önemli ögesidir. Bu kavramı iyi anlamak, her türlü teknikte, sınıfların avantajlarından yararlanmanıza ve kendinize özel yeni nesneler oluşturmanıza olanak sağlar. Bu bölümde sınıfların tanımlanma yöntemleri, sınıflar içerisinde kullanılan yapıcı, kopyalayıcı, yıkıcı metotlar ile statik üye elemanlar anlatılacaktır. SINIFLAR Nesne Tabanlı Programlama Tekniği yle geliştirilen programların her bir çözüm parçasına nesne, nesnelerin c# kod karşılıklarına da sınıf denmektedir. Sınıfların üye elemanları ise değişkenler (özellik) ve metotlardır. Metotlar bir veya daha fazla komutun bir araya getirilmiş hâlidir; parametre alabilirler, geriye değer döndürebilirler. Özellikler ise bellek hücrelerinin programlamadaki karşılıklarıdır. Bu bakımdan özellikler değişkenlere benzerler. Aradaki en temel fark değişkenlerin bir metot içinde tanımlanıp yalnızca tanımlandığı metot içinde etkinlik gösterebilmesine rağmen özelliklerin, tıpkı metotlar gibi bir üye eleman olmasıdır. Bu bakımdan özelliklerin tuttuğu değerlere daha fazla noktadan erişilebilir. Bu yukarıda yapılan tanımların hepsi soyut kavramlardır. Bu nedenle bu kavramları, daha anlaşılır yapmak için bir örnekle açıklayalım; Bilgisayar denilince her birimizin kafasında bir kavram (sınıf) gelir. Muhtemelen ilk aklımıza gelen; cep telefonları, tablet bilgisayarlar ve diz üstü bilgisayar gibi taşınabilir bilgisayarların bulunduğu sınıftır. Ama biraz düşününce bunlara iş bilgisayarlarını (masaüstü bilgisayar, server, süper bilgisayarlar) da ekleyebiliriz. Bütün bunların ortak bir özelliği vardır. Hepsinin elektrikle ya da bataryayla çalışan elektronik devreleri vardır. Bilgisayar demek yerine, taşınabilir bilgisayar dersek sınıfa giren ögeleri biraz daha sınırlamış oluruz. Bu sınıftakilerin iki çekirdekli, dört çekirdekli gibi işlemcilere sahip olduğunu, gittiğimiz her yerde internete girmemizi sağlayan yeteneklerinin bulunduğunu, bataryalarının bitince sürekli şarj edilmesi gerektiğini anlarız. Bilgisayarlar sınıfı, taşınabilir bilgisayar sınıfının bir üst sınıfıdır. Kavramı biraz daha daraltalım ve cep telefonları diyelim. Bu sınıf, taşınabilir bilgisayar sınıfının bir alt sınıfıdır. Ama hâlâ seçenekler çoktur. Cep telefonu markaları, modelleri, renkleri, işlemcileri, bellek özellikleri vb. nitelikleri farklıdır. Belli bir markayı, örneğin Apple marka cep telefonları sınıfını düşünebilirsiniz, bu sınıfa ait olan Atatürk Üniversitesi Açıköğretim Fakültesi 2

3 özelikleri daha iyi tanıyor olacaksınız. Bu sınıfın model, renk, ekran büyüklüğü, şarj ve bağlantı girişleri vb. nitelemelerle istediginiz kadar daraltabiliriz. Fakat bir cep telefonu sınıfı somut bir cep telefonuna (bir cisim olarak) eş değildir. Öte yandan, diyelim ki arkadaşımıza ait Apple marka cep telefonu somut bir varlıktır. Bu Cep telefonu, taşınabilir bilgisayar sınıfına, wifi bağlantıya sahip cep telefonu sınıfına ait bir nesnedir, somut bir varlıktır. Bu cep telefonunun ekran kalitesi, bellek büyüklüğü, işlem hızı gibi nitelikleri, hep ait olduğu sınıf tarafından belirlenir. Sınıf Tanımlama ve Kullanma: Sınıf bildirimleri class anahtar sözcüğü kullanılarak yapılır. Sınıf isminden sonra sınıf içindeki üye eleman ve metotlar tanımlanır. Basit bir sınıf tanımı aşağıdaki şekilde yapılabilir: class sınıf_ismi. } Yukarıdaki bildirimde class anahtar sözcüğü kullanılarak kullanıcı tanımlı, bir sınıf oluşturulmuştur. Class isminden sonra sınıf_ismi yer almaktadır. Sınıf üyeleri ise küme parantezleri ( } ) içisine yerleştirilir. Sınıf gövdesi yukarıdaki gibi boş bırakılabilir. Fakat boş gövdeli bir sınıf hiçbir işe yaramaz. 0nun işe yarar olabilmesi için içine sabit, değişken ve metot bildirimleri (tanımları) yerleştirilmelidir. Bu tanımalara sınıfın ögeleri denir. Bir metot ve iki özelliğe sahip genel bir sınıf bildirimi aşağıdaki şekilde yapılabilir: class sınıf_ismi <erişim belirleyici><veri tipi> özellik1; <erişim belirleyici><veri tipi> özellik1; <erişim belirleyici> <geri dönüş tipi> Metot1(parametreler) Metot1 ifadeleri ve deyimleri.. } Atatürk Üniversitesi Açıköğretim Fakültesi 3

4 class anahtar sözcüğünün yanına yazılan isim sınıf ismi olarak alınır. Küme parantezleri ( } ) arasına ise ilgili sınıfa ait özellik ve metot tanımları yerleştirilmiştir. Erişim belirteçleri metot için belirtilmediği durumlarda private olarak kabul edilir. Yani sadece tanımlandığı sınıf içinde kullanılabilen bir metot özelliğine sahip olur. <erişim belirleyici> : Erişim belirteçleri metoda nerelerden erişilebileceğini belirleyen ayarlardır. Virtual C# programlama dilinde tanımlanan erişim belirleyiciler şunlardır: Private (Gizli): Bir değerin private olarak tanımlanması demek, o değişkene sadece kendi class ı içinden ulaşılabileceği anlamına gelmektedir. Program içinde kesinlikle değiştirilmemesi gereken, önemli kodlarda kullanılmaktadır. Public (Genel): Bir değerin public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Public erişim belirleyici tipinde hiçbir kısıtlama yoktur. Protected (Korunumlu): Kod içinde bir değerin protected olarak tanımlanması; o değere, değerin bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilileceğini göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi olarak görülebilmektedir. Internal (İçsel): Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir;fakat farklı bir program içerisinden erişilemez durumdadır. Program içerisinde herhangi bir kısıtlaması yoktur. Protected Internal (İçsel Korunumlu): Protected internal olarak tanımlanmış değer, tanımlandığı class ın içinden ve ondan türetilen sınıfların içinden erişilebilir durumdadır. Türetilen sınıfın aynı program içinde olmaması sorun teşkil etmez. <veri tipi> özellik1 : Tanımlanan sınıf içinde kullanılabilen özellik1 e (değişkenlere) ait veri tipini gösterir int, float, string, bool..vb. türlerinden biri olabilir. Metot1: Her bir metot tanımlanırken metota mutlaka bir isim verilir. Metot çağrılırken verilen bu isim kullanılarak çağırma işlemi yapılabilir. (Parametre listesi): Parametreler ise Metot1 in çalışırken ihtiyaç duyduğu çağıran fonksiyondan gönderilen bilgileridir. Atatürk Üniversitesi Açıköğretim Fakültesi 4

5 Örnek tanıtım şekli Program_1 de gösterilmiştir. Program_1: using System; class Ders private string Isim; public void IsimAl(string isim) Isim = isim; Console. WriteLine(Isim); } static void Main() Ders Yeni = new Ders(); Yeni. IsimAl("C# Programlama dili"); } } Yukarıdaki örnekte Ders isimli bir sınıf tanımlanmıştır. Bu sınıfın Isim adlı bir üye değişkeni, IsimAl adında bir metodu bulunmaktadır. Program çalıştırıldığında İlk olarak; using System; deyimi çalıştırılır. İkinci olarak; class Ders, deyimi ile Ders adında bir sınıf oluşturmaktadır. Üçüncü olarak; private string Isim; Isım adındaki string türündeki sınıfa ait üye değişkenini alır. Dördüncü olarak; static void Main(), Main metodunu çalıştırır. Dikkat edilirse Sınıf içindeki IsimAl metodu Main metodundan önce olmasına rağmen (sırası gelmesine rağmen) çalıştırılmamıştır. Sınıfa ait metodlar Main metodu içinden çağrılmadıkça çalışmazlar. Main metodu çalıştırıldığında küme parantezi içindeki kodlar sırasıyla çalıştırılır. Main metodunda ilk olarak Ders Yeni = new Ders(); deyimi çalışır ve Ders sınıfı türünden bir Yeni isimli bir nesnenin tanımlamasını yapar. İkinci olarak; Yeni. IsimAl("C# Programlama dili"); deyimi ile Yeni nesnesinden IsimAl metoduna C# Programlama string tipindeki isim değişkeni parametre olarak gönderir ve isim değişkeni Isim adlı üye değişkene değerini aktarak Şekil 10.1 deki gibi ekrana yazdırılır. Şekil Program_1 in ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 5

6 Bu program_1 de verilen uygulamada; IsimAl metodu ile Main metodu aynı sınıf içerisinde yer almaktadır. Programlama yaparken sade bir görünüm sağlamak amacıyla Main metoduyla, hazırlanan metotlar genellikle farklı sınıflar içerisine yerleştirilir. Bu şekildeki bir tanımlama örnek Program_2 de gösterilmiştir. Örnek Program_2: Şekil Ders ve Uygulama sınıflarının bildirimini gösteren C# kodu Şekil Program_2 ye ait ekran görüntüsü Şekil 10.2 de kırmızı okla gösterilen örnek program_2 de program_1 den farklı olarak Ders ve Uygulama olmak üzere iki ayrı sınıf tanımlanmıştır. Ders sınıfı içerisinde kullanıcı tanımlı bir metot ve Uygulama sınıfının içinde ise Main metodu yerleştirilmiştir. Main metodunun içinden Ders sınıfının içine gönderilen string değer Nesne Tabanlı Programlama 1 ile değiştirilmiştir. Main metodu içindeki kodlamada değişiklik yapılmamıştır. Ders sınıfı içinde string tipindeki Isim üye değişkenine Nesne Tabanlı Programlama 2 değeri atanmıştır. Ayrıca bu değeri ekrana yazdırma kodu eklenmiştir. Ayrı ayrı sınıflardaki metodlarda, bir sınıftaki üye değişken ya da metodu kullanabilmek için <erişim belirleyici> olarak public anahtar sözcüğü kullanılmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 6

7 Ticari programlar geliştirirken; programcılar, tasarımcılar, muhasebeciler gibi birçok farklı meslek mensubu bir araya gelmekte ve yazılan kodlar farklı kişilerce, farklı zamanlarda hazırlanarak birleştirilmektedir. Bu durumda aynı dosya içinde farklı sınıflar yerine, farklı sınıflar ve dosyalar hazırlanıp paketlenebilmektedir. Bu şekildeki bir tanımlama örnek Program_3 de gösterilmiştir. Örnek Program_3: Örnek Pogram_2 hazırlanırken şekil 10.4 teki kod penceresi kullanılmıştı. Şimdi örnek program_3 u yapabilmek için Şekil 10.5 te gösterilen Project>Add class komutu verilerek Şekil 10.6 de gösterilen Name kısmına class2 ismini yazarak Add komutunu vererek Şekil 10.7 deki kod penceresini hazırlayınız. Şekil 10.8 de gösterilen kodları Main metodunun içerisine yazın ve program. cs dosyasına kaydedin. Daha sonra Şekil 10.9 da gösterilen kodları ise Ders sınıfının içindeki IsimAl metoduna yazarak Class2.cs dosyasına kaydedin. Ctrl+F5 kısa yolunu ya da DEBUG>Start Without Debuggin komutunu kullanarak rpgramı çalıştırın. Programın çalışması sonrası Şekil da gösterilen ekran çıktısı görülecektir. Bu örnek program_3 teki kodlar; iki farklı sınıf tanımlanarak yazılmış ve iki farklı dosyaya yazılarak çalıştırılmıştır. Şekil Program sınıfının yazılmasını sağlayan kod penceresi Atatürk Üniversitesi Açıköğretim Fakültesi 7

8 Şekil Project>Add class komutunun verilme şekli Şekil Class2 isimli sınıfın projeye eklenmesi Atatürk Üniversitesi Açıköğretim Fakültesi 8

9 Şekil Class2 sınıfının yazılmasını sağlayan kod penceresi Şekil Örnek Program_3 e ait Main metodunun yazılma şekli Şekil Örnek Program_3 e ait Ders metodunun yazılma şekli Atatürk Üniversitesi Açıköğretim Fakültesi 9

10 Şekil Örnek program_3 ün çalışması sonrası ortaya çıkan ekran çıktısı this Anahtar Sözcüğü: Metotlar içinde başka bir sınıfa ait nesnelerin özellikleri ve metotları kullanılabilir. Nesnenin üyeleri ile metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnenin üyelerini birbirinden ayırmak için this anahtar sözcüğü kullanılır. this anahtar sözcüğü ilgili nesnenin referansını belirtir. this anahtar sözcüğü, içinde bulunulan nesneye ait bir referans döndürür. this anahtar sözcüğü ile ilgili bir kullanım örnek Program_4 te gösterilmiştir. Örnek Program_4: this anahtar sözcüğü sayesinde nesnelere ait global alanlara erişme fırsatı bulunur. Şekil Örnek Program_4 e ait kod görüntüsü Şekil Örnek Program_4 e ait ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 10

11 set ve get Anahtar Sözcükleri: Bir nesnenin üye değişkenlerine değer atarken ya da içerisindeki değeri kullanırken belli kontrollerin yapılması gerekiyorsa ya da kod bloklarının çalıştırılması isteniyorsa set ve get ifadeleri kullanılır. set sözcüğü nesnenin özelliklerine değer atandığında çalışır. get sözcüğü ise özellik değeri okunduğunda ya da farklı bir ifadeye aktarılmaya çalışıldığında çalışır. set ve get yönteminin daha iyi anlaşılabilmesi için aynı işlemi yapan iki program örneği; örnek program_5 te metotlar kullanılarak, örnek program_6 da ise set ve get yöntemi kullanılarak yapılmıştır. Örnek Program_5: Şekil Program_2 nin ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 11

12 Şekil Program_2 nin ekran çıktısı Örnek Program_6: Şekil Program_2 nin ekran görüntüsü Şekil Program_2 nin ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 12

13 C# 2.0'da ya da daha üst versiyonlarda bir sahte özelliğin, set ve get blokları ayrı ayrı private veya public anahtar sözcükleriyle belirtilebilir. C# ta tüm sınıflar (class) tanımlansın ya da tanımlanmasın değer tiplerine sıfır, referans tiplerine null değerini atayan varsayılan bir yapılandırıcı vardır. Yapılandırıcısı tanımlandıktan sonra varsayılan yapılandırıcı bir daha kullanılmaz. 2. örnek program_6 da SahteOzellik adlı bir özellik oluşturulmuştur. Bu özellik gerçekten de sahtedir. Özelliğe bir değer atanmaya çalışıldığında set bloğundaki, özellik kullanılmaya çalışıldığında da get bloğundaki komutlar çalıştırılır. Aslında C# kütüphanesindeki özelliklerin çoğu bu yöntemle oluşturulmuştur. Örnek Programlarda görüldüğü gibi, değişkenin değerini değiştirdiğimizde çalışmasını istediğimiz kodları set blokları arasına yazarız. Herhangi bir sahte özelliğin set veya get bloklarından yalnızca birini yazarak o özelliği salt okunur veya salt yazılır hâle getirmek mümkündür. Sınıflara Metot Eklemek Bir defa sınıfın yapısı tasarlandıktan sonra istenildiği kadar yeni metot eklenebilir. Bu metodlar Yapıcı Kopyalayıcı ve Yıkıcı olmak üzere üç çeşide ayrılabilir. Yapıcı Metotlar Yapılandırıcıların görevi, oluşturulan nesneyi ilk kullanıma hazırlamasıdır. Bir nesnenin dinamik olarak yaratıldığı anda otomatik olarak çalıştırılan metotları vardır. Bu metotlar sayesinde bir nesnenin üye elemanlarına ilk değerler verilebilir ya da gerekli ilk düzenlemeler yapılabilir. Bu metotlara yapıcı metotlar (constructors) denir. Yapıcı metot tanımlanmasa dahi her sınıfın varsayılan bir yapıcı metodu (default constructor) mutlaka bulunur. Bir nesne oluşturulduğunda sayısal değerler için 0, referanslar için null, bool türü için false atanır, bu atama bir yapıcı metot ile gerçekleştirilir. Yapılandırıcıların bilinen temel özellikleri şunlardır: Yapıcıların dönüş değeri yoktur, isimleri sınıf ile aynı isimdir. Varsayılan yapıcı metodun parametresi yoktur. Sadece nesnenin üye elemanlarına varsayılan değerlerini atar. Yapıcı metotlar bir değer tutamaz. Ancak normal metotlardan farklı olarak void anahtar sözcüğü de kullanılmaz. Yapıcı metotlar dışarıdan çağrıldığı için genelde public olarak tanımlanır private olursa dışarıdan erişilemez. Eğer kendi yapıcı metodumuzu tanımlarsak varsayılan yapıcı metotlar çalıştırılmaz. Yapıcı metotlar ile ilgili bir kullanım örnek program_7 de gösterilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 13

14 Örnek Program_7: Şekil Örnek Program_7 nin ekran görüntüsü Şekil Örnek Program_7 nin ekran çıktısı Şekil 10.7 de Toplam sınıfı içinde bir yapıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucu Şekil de ekran çıktısı görülecektir. Kopyalayıcı Yapıcı Metotlar: Bir Yapıcı metot, parametre olarak kendi sınıfından bir nesne alıyorsa kopyalayıcı metot adını alır. Kopyalayıcı Yapıcı metotlar ile ilgili bir kullanım örnek program_8 de gösterilmiştir. Atatürk Üniversitesi Açıköğretim Fakültesi 14

15 Örnek Program_8: Şekil Örnek Program_8 in ekran görüntüsü Şekil Örnek Program_8 in ekran çıktısı Yapıcı metotlar dışarıdan çağrıldığı için genelde public olarak tanımlanırlar. Şekil da kırmızı okla gösterilen public Toplam(Toplam T) satırında bir kopyalayıcı yapıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucu Şekil deki ekran çıktısı görülecektir. Yıkıcı Metotlar: Nesnelere erişim mümkün olmadığı durumlarda bu nesnelerin heap ten silinmesi amacıyla kullanılır. private olursa dışarıdan erişilemez. Bu durumda yıkıcı metotlar (destructors) bellek iade işleminden hemen önce çalışarak bu belleğin temizlenmesine yardımcı olurlar. Yıkıcı metotlar bildirilirken sınıf isminin önüne ~ (tilda) işareti eklenir. Atatürk Üniversitesi Açıköğretim Fakültesi 15

16 Yıkıcı metodlar aşağıda gösterilen özelliklere sahiptir. Herhangi bir dönüş değeri ve parametresi yoktur. Erişim belirteci (public, private) de kullanılmaz. Bir sınıfın sadece bir tane yıkıcı metodu olabilir. Yıkıcı metotlar ile ilgili bir kullanım örnek program_9 da gösterilmiştir. Örnek Program_9: Şekil de kırmızı okla gösterilen ~ Yıkıcı () satırında bir yıkıcı metot tanımlanarak AnaProgram sınıfı içindeki Main metodunda çağrılmıştır. Programın çalışması sonucunda Şekil deki ekran çıktısı görülecektir. Şekil Örnek Program_9 un ekran görüntüsü Şekil Örnek Program_9 un ekran çıktısı Örnek programda y nesnesi faaliyet alanını doldurmasına rağmen hemen yok edilmemiştir. Bir alt satırda bulunan Console. WriteLine() metodu çalışmış ardından gereksiz nesne toplayıcısı işleyerek nesneyi silmiştir. Nesne yok edilirken de yıkıcı metodu çalıştırılmıştır. Gereksiz nesne toplayıcı (Garbage Collector), programcının isteği dışında çalışmaktadır. System. GC sınıfı kullanılarak istenilen Atatürk Üniversitesi Açıköğretim Fakültesi 16

17 anda bu mekanizma çalıştırılabilir. Gereksiz nesne toplayıcının çağrılmasıyla ile ilgili bir kullanım örnek program_10 da gösterilmiştir. Örnek Program_10: C# ta yıkıcı metotlar genelde nesnenin kullandığı bellek alanını iade etmek için deyiğ de daha çok nesne yok edilirken birtakım işlemlerin yapılması ya da değiştirilmesi için kullanılır. Şekil Örnek Program_10 un ekran görüntüsü Static Sınıflar Şekil Örnek Program_10 un ekran çıktısı İçinde sadece statik üye elemanlar barındıran sınıflar statik sınıflar olarak tanımlanır. Bir sınıf statik olarak bildirildiğinde o sınıf türünden bir nesne yaratılamaz. Statik metotlar C# 2,0 den itibaren dile eklenmiştir. Statik sınıflar içerisinde static olmayan metot veya özellik tanımlanamaz. Statik sınıfların yapıcı metotları olmaz. Dolayısıyla yapıcı metot tanımlamaya çalışırsak derleyici hata verir. Statik sınıflar türetmeyi desteklemez. Static classlar ve class üyeleri (değişkenler, metotlar), o sınıfın bir instance ını oluşturmadan erişilebilir olmaları için kullanılabilir. Atatürk Üniversitesi Açıköğretim Fakültesi 17

18 Statik Üye Elemanlar Statik elemanlar bir sınıfın global düzeydeki elemanlarıdır ve uygulamanın her yerinden çağrılabilir. Daha önce de belirtildiği gibi metotlara sınıflar üzerinden erişilir. Bazı durumlarda ise sınıf türünden nesneler oluşturulur ve bu nesneler üzerinden ilgili metoda erişebiliriz. Statik üyeleri kullanmak için herhangi bir nesne tanımlamamıza gerek yoktur. Bir üye elemanın statik olduğunu bildirmek için bildirimden önce statik anahtar sözcüğü eklenir. Bir sınıf nesnesi oluşturulduğunda static üye elemanlar için bellekte ayrı bir yer ayrılmaz. Nesne ile doğrudan iş yapmayan metotlar statik olarak tanımlanabilir. Statik tanımlanan metotlara SınıfAdı.Metot şeklinde erişilir. Statik metotlara nesne üzerinden erişmek mümkün değildir. Statik Değişkenler Herhangi bir nesne ile statik değişkenlere ulaşmamız mümkün değildir. Statik değişkenler sınıf içersinde global özellikler tanımlamak için kullanılırlar. Bu değişkenler tanımlandıklarında varsayılan değere atanırlar. Statik üyelere ancak statik bir metot içerisinden erişilebilir. Statik değişkenlerle ilgili bir kullanım örnek program_11 de gösterilmiştir. Örnek Program_11: Şekil Örnek Program_11 in ekran görüntüsü Şekil Örnek Program_11 in ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 18

19 Statik Metotlar: Static anahtar sözcüğü erişim belirleyiciden önce ya da sonra yazılabilir. Main() metodu da herhangi bir nesneye ihtiyaç duymadan çalışabilmesi için statick olarak tanımlanmaktadır. Eğer statik olarak tanımlanmasaydı metodun çalışabilmesi için, içinde bulunduğu sınıf türünden bir nesneye ihtiyaç olacaktı. Bu durumda da Main metodu işlevi ile çelişecekti. Çünkü Main metodu programımızın çalışmaya başladığı yerdir. Statik tanımlanmış metotlar içinden diğer statik metotlar çağrılabilir, normal metotlar çağrılamaz. Normal metotlar nesne gerektirdiği için nesne adreslerine ihtiyaç duyarlar (bu adresler gizli şekilde ya da this ile aktarılır). Statik metotlar sınıfın global metotlarıdır ve referansları yoktur. Bu yüzden statik bir metot içinden normal bir metot çağırmak geçersizdir. Örnek Program_12: Örnek program_12 de StatikMetodlar adında bir sınıf oluşturulmuş ve bu sınıfın içinde ise StatikMetod1 ve StatikMetod2 adında iki tane statik metot tanımlanmıştır. Main programı ise Program sınıfı içerisine yazılmıştır. Bu örnek programla statik metot ve sınıfların nasıl kullanıldığı şekil deki kod penceresinde görülmektedir. Programın çalışması sonucu Main metodu içindeki kodlar sırasıyla çalıştırılarak Şekil de gösterilen ekran çıktısı elde edilmiştir. Şekil Program_2 nin ekran görüntüsü Atatürk Üniversitesi Açıköğretim Fakültesi 19

20 Şekil Örnek Program_12 nin ekran çıktısı Atatürk Üniversitesi Açıköğretim Fakültesi 20

21 Özet Nesne tabanlı programlama tekniğiyle geliştirilen parogramların her bir iş yapan parçasına nesne, nesnelerin c# kod karşılıklarına da sınıf denmektedir. Bir ya da daha fazla komutun bir araya getirilmiş hâline metot denir. parametre alabilirler, geriye değer döndürebilir. Özellikler ise bellek hücrelerinin programlamadaki karşılıklarıdır. Sınıfların üye elemanları ise özellikler ve metotlardır. Sınıf bildirimleri class anahtar sözcüğü kullanılarak yapılır. Sınıf isminden sonra sınıf içindeki üye eleman ve metotlar tanımlanır. Sınıf ve metodlara nerelerden erişilebileceğini belirleyen erişim belirleyiciler vardır. Private,Public, Internal, Protected,Protected Internal olmak üzere 5 çeşittir. Bir değerin private olarak tanımlanması demek, o değişkene sadece kendi sınıfıiçinden ulaşılabileceği anlamına gelmektedir. Bir değerin public olarak belirtilmesi; o değerin, kod içinde herhangi bir yerden erişilebilir durumda olmasını sağlamaktadır. Internal olarak tanımlanan bir değer; aynı program içerisinden erişilebilir, fakat farklı bir program içerisinden erişilemez. Kod içinde bir değerin protected olarak tanımlanması; o değere, bulunduğu class ve ondan türetilen diğer sınıflar içinden erişilebilir olduğunu göstermektedir. Protected; bir anlamda, public ve private erişim belirleyicilerinin birleşimi olarak görülebilmektedir. Protected internal olarak tanımlanmış değer, tanımlandığı class ın içinden ve ondan türetilen sınıfların içinden erişilebilir durumdadır. Nesnenin üyeleri ile metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnenin üyelerini birbirinden ayırmak için this anahtar sözcüğü kullanılır. Bir nesnenin üye değişkenlerine değer atarken ya da içersindeki değeri kullanırken belli kontrollerin yapılması gerekiyorsa ya da kod bloklarının çalıştırılması isteniyorsa set ve get anahtar sözcüğü kullanılır. Sınıflar içerisinde kullanılabilen birçok metot yapısı vardır. Bunlar yapılandırıcı, kopyalayıcı ve yıkıcı metotlardır. Yapılandırıcıların görevi, oluşturulan nesneyi ilk kullanıma hazırlamasıdır. Yapıcı metot, bir nesnenin dinamik olarak yaratıldığı anda otomatik olarak çalıştırılan metotlardır. Bir yapıcı metot parametre olarak kendi sınıfından bir nesne alıyorsa kopyalayıcı metot adını alır. Yıkıcı Metotlar, nesnelere erişimin mümkün olmadığı durumlarda bu nesnelerin heap ten silinmesi amacıyla kullanılır. Statik üye elemanlar barındıran sınıflara, statik sınıflar denir. Atatürk Üniversitesi Açıköğretim Fakültesi 21

22 DEĞERLENDİRME SORULARI Değerlendirme sorularını sistemde ilgili ünite başlığı altında yer alan bölüm sonu testi bölümünde etkileşimli olarak cevaplayabilirsiniz. 1. Bir sınıf tanımında aşağıdakilerden hangisi yer almaz? a) Erişim belirteçleri b) Veri tipi c) Adlandırma ismi d) New anahtar sözcük e) class anahtar sözcük 2.Nesnelerin üyeleri ile bir metot içindeki tanımlamalar bazen aynı olabilir. Bu durumda metot değişkenleri ile nesnelerin üyelerini ayrımak için hangi anahtar sözcük kullanılır? a) out b) get c) return d) void e) this 3. Bir nesnenin üye değişkenine değer atarken aşağıdaki anahtar sözcüklerden hangisi kullanılır? a) get b) class c) void d) this 4. Varsayılan yapıcı metotların temel özellikleri ile ilgili aşağıdakilerden hangisi yanlıştır? a) Yapıcıların dönüş değeri yoktur. b) İsimleri sınıf isimleriyle aynı olmalıdır. c) Yapıcı metotlar bir değer tutmaz. d) Genellikle public olarak tanımlanır. e) Varsayılan yapıcı metotlara mutlaka parametre kullanılmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 22

23 5. using System;. sorular static void Hesapla(ref int sayi1) sayi1=4; } static void Main() int sayi=0; Hesapla(ref sayi); }} Yukarıda verilen kodlar içerisindeki ( ) ile gösterilen boşluğa hangi anahtar sözcük gelmelidir? a) new b) class c) out d) ref e) void Atatürk Üniversitesi Açıköğretim Fakültesi 23

24 6. using System; class Toplam public int A; public int B; public...(int a, int b) A = a; B = b; } public int Islem() return A + B; } } class AnaProgram static void Main() Toplam SayılarıTopla = new...(60, 90); Console. WriteLine(SayılarıTopla. Islem()); } } Yukarıda verilen kodlar içerisindeki (...) ile gösterilen boşluklara hangi metot ismi yazılırsa yapıcı metot tanımlanmış olur? a) Ana Program b) Yavru program c) Islem d) Toplam e) SayılarıTopla 7. Yıkıcı metotlar aşağıda özelliklerden hangisine sahip değildir? a) Parametresi yoktur. b) Erişim belirleyiciler kullanılmaz. c) Her sınıfta sadece bir tane bulunmalıdır. d) Geri dönüş değeri yoktur. e) Yıkıcı metotların önüne # işareti konulmalıdır. Atatürk Üniversitesi Açıköğretim Fakültesi 24

25 8. Bir yapıcı metot parametre olarak kendi sınıfından bir nesne alıyorsa hangi yapıya sahip olur? a) Varsayılan yapıcı metot b) Yıkıcı metot c) Static matot d) Kendini çağıran metot e) Kopyalayıcı metot 9. C# ta parametre sayısı ve parametre türleri farklı olmak koşulu ile aynı isimde faklı metotlar oluşturma işlemine ne denir? a) Kendini çağıran b) Ana metot c) Yavru metot d) Fonksiyon e) Aşırı yükleme 10. Erişim belirteçleri metoda nereden erişilebileceğini belirleyen ayarlardır. Metot tanımlanırken erişim belirleyicisi belirtilmediği durumlarda metotlar için hangisi kabul varsayılan olarak seçilir? a) Public b) Protected c) Private d) Internal e) Protected internal Cevap Anahtarı: 1.D,2.E, 3.A,4.E,5.B,6.D, 7.E,8.E,9.E,10.C Atatürk Üniversitesi Açıköğretim Fakültesi 25

26 YARARLANILAN KAYNAKLAR VE BAŞVURULABİLECEK DİĞER KAYNAKLAR ALGAN, Sefer, (2010), Her Yönüyle C#, İstanbul: Pusula Yayıncılık, İstanbul. AKTAŞ, Volkan, (2013), Her Yönüyle C# 5.0, KODLAB, İstanbul. CLARK, Dan, (2013), Your visual blueprint for building.net application, 2nd Edition, Hungry Minds, New York. SCHILDT, Herbert, (2002), The Complete Reference C#, çev. Duygu Arbatlı Yağcı, Alfa Basım Yayım Dağıtım, İstanbul. SHARP, John, (2002), Microsoft Visual C#.NET, çev. Mert Derman, Arkadaş Yayınevi, Ankara. YANIK, Memik, (2004), Microsoft Visual c#.net, 1.Baskı, Seçkin Yayıncılık, Ankara. Atatürk Üniversitesi Açıköğretim Fakültesi 26

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

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER METOTLAR METOTLAR İÇİNDEKİLER Metotlar Metot Oluşturma ve Kullanma Metot Parametresi Olarak Diziler Değer ve Referans Parametreleri Metotların Aşırı Yüklenmesi Kendini Çağırabilen Metotlar NESNE TABANLI PROGRAMLAMA

Detaylı

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

Sınıflar ve Yapılar Arasındaki Farklılıklar. Değer ve Referans Türde Olan Aktarımlar Nesneler ve Türler Sınıflar ve Yapılar Arasındaki Farklılıklar Sınıf Üyeleri Değer ve Referans Türde Olan Aktarımlar Yapıcılar ve Statik Yapıcılar Read-Only Statik Sınıflar Object Sınıfı Sınıflar Sınıflar

Detaylı

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir.

Bu parçalar arasındaki ilişkiyi kullanıp büyük çaplı programlar geliştirme tekniğine de nesne yönelimli programlama denir. Sınıflar (Classes) Çözülmesi istenene problemi çeşitli parçalara ayırıp her bir parça arasındaki ilişkiyi gerçeğine uygun bir şekilde belirleme tekniğine nesne yönelimi denir. Bu parçalar arasındaki ilişkiyi

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA 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

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kapsülleme (Erişim Denetleyiciler) Java da Sınıf Oluşturmak Java da Nesne Oluşturmak Java da Constructor Kavramı Java da This Kavramı Java da Constructor

Detaylı

BTEP243 Ders 3. class Yazım Kuralı:

BTEP243 Ders 3. class Yazım Kuralı: BTEP243 Ders 3 Sınıflar ve Nesneler Nesne tabanlı programlamada, programlamanın temeli sınıflardır (class). Nesnelerin yaratılmasında taslak (blueprint) görevi görür. Sınıflar; o Nesnelerin özelliklerinin

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 5 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları METOTLAR Nesneye yönelik programlama dillerinde genellikle fonksiyonlar metot olarak isimlendirilirler. Metot ve fonksiyon olarak ifade edilecek kavramlar aynı anlamda kullanılacaktır. Her çalışan C# programı

Detaylı

C# Metotlar ve Metot Tanımlama

C# Metotlar ve Metot Tanımlama C# Metotlar ve Metot Tanımlama Metot Kavramı : Metotlar bir program içerisinde aynı işi gerçekleştiren satırları belirli düzende sadece bir kez oluşturarak gerektiğinde tekrar tekrar kullanabilmemizi sağlayan

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları DİZİLER Bellekte ard arda yer alan aynı türden nesneler kümesine dizi (array) denilir. Bir dizi içerisindeki bütün elemanlara aynı isimle ulaşılır. Yani dizideki bütün elemanların isimleri ortaktır. Elemanlar

Detaylı

Sunum İçeriği. Programlamaya Giriş 22.03.2011

Sunum İçeriği. Programlamaya Giriş 22.03.2011 Programlamaya Giriş Nesne Tabanlı Programlamaya Giriş ve FONKSİYONLAR Sunum İçeriği Nesne Tabanlı Programlama Kavramı Fonksiyon tanımlama ve kullanma Formal Parametre nedir? Gerçel Parametre nedir? Fonksiyon

Detaylı

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

Önemli noktalar. Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance Önemli noktalar Paradigma Nesnelere Giriş Mesajlar / Ara bağlantılar Bilgi Gizleme (Information Hiding ) Sınıflar(Classes) Kalıtım/Inheritance public class Test { // çalışır İnsan insan = new Çiçekçi();

Detaylı

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

Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme (Operator OverLoading) Operator Aşırı Yükleme Operatör metotları bir nesnenin ifadeler içinde operatörlerle kullanıldığı zaman davranışını belirler. Temel veri türleri için operatörler

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Fonksiyon Tanımlamak Java da Döngüler Java da Şart İfadeleri Uygulamalar Java da Fonksiyon Tanımlamak JAVA DA FONKSİYON TANIMLAMAK 4 Fonksiyonlar;

Detaylı

HSancak Nesne Tabanlı Programlama I Ders Notları

HSancak Nesne Tabanlı Programlama I Ders Notları Konsol Uygulaması Oluşturma Konsol uygulaması oluşturmak için program açıldıktan sonra Create: Project ya da New Project seçeneği tıklanabilir. New Project penceresini açmak için farklı yollar da vardır.

Detaylı

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

NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM NESNE TABANLI PROGRAMLAMA-1 DERS UYGULAMALARI (22 EYLÜL - 14 KASIM 2014) //Class (Sınıf) // Sınıf (class) soyut veri tipidir. // Nesne (object) sınıfın somutlaşan bir cismidir. // static : nesnesi oluşturulmaz.

Detaylı

public static int Toplam int x, int y

public static int Toplam int x, int y static Kavramı 1 İçinde bulunduğu sınıftan nesne oluşturulmadan veya hiç bir nesneye referans olmadan kullanılabilen üyeler static olarak nitelendirilir. Metotlar ve alanlar static olarak tanımlanabilir.

Detaylı

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

ANA SINIF TÜRETİLEN BİRİNCİ SINIF TÜRETİLEN İKİNCİ SINIF JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Kalıtım Kavramı Java da Çok Biçimlilik Kavramı Fonksiyonların Çok Biçimliliği Yapıcı Fonksiyonun Çok Biçimliliği Java da Kalıtım Kavramı 4 Kalıtım;

Detaylı

BİL-142 Bilgisayar Programlama II

BİL-142 Bilgisayar Programlama II BİL-142 Bilgisayar Programlama II (C/C++) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Giriş Sınıflar, Nesneler, Fonksiyon ve Veri Üyeleri Sınıf ve Fonksiyon Üyeleri

Detaylı

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

5.HAFTA. Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi 5.HAFTA Sınıf ve Nesne Kavramı, Metot Oluşturma, Kurucu Metot, this Deyimi Sınıf Kavramı: Sınıf (class) soyut bir veri tipidir. Nesne (object) onun somutlaşan bir cismidir. Java da sınıf (class) kavramını

Detaylı

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

ÜNİTE İÇİNDEKİLER. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA HEDEFLER OPERATÖRLER HEDEFLER İÇİNDEKİLER OPERATÖRLER Operatörler Aritmetik Operatörler Mantıksal Operatörler Bitsel Operatörler Karşılaştırma Operatörleri Atama Operatörleri Özel Amaçlı Operatörler Operatörlerde İşlem Öncelikleri

Detaylı

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

C de Detaylı Üs Alma Programı. C# Dilinde Metot Tanımlama ve Yazdırma C de Detaylı Üs Alma Programı Bu uygulama yazısında C de pow() fonksiyonunu kullanmadan üs hesabı yapan programı yazmaya çalıştım. Başta tanımladığım float tipinde 2 fonksiyon sayesinde + lı ve li üs değerleriyle

Detaylı

Pointer Kavramı. Veri Yapıları

Pointer Kavramı. Veri Yapıları Pointer Kavramı Veri Yapıları Pointer Kavramı- Pointer Nedir? Göstericiler, işaretçiler ya da pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi tutan değişkenlerdir. Şu ana kadar

Detaylı

ELN1001 BİLGİSAYAR PROGRAMLAMA I

ELN1001 BİLGİSAYAR PROGRAMLAMA I ELN1001 BİLGİSAYAR PROGRAMLAMA I DEPOLAMA SINIFLARI DEĞİŞKEN MENZİLLERİ YİNELEMELİ FONKSİYONLAR Depolama Sınıfları Tanıtıcılar için şu ana kadar görülmüş olan özellikler: Ad Tip Boyut Değer Bunlara ilave

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonu Referans ile Çağırma (Call by Reference) Bir fonksiyona gönderilen parametrenin normalde değeri değişmez. Fonksiyon içinde yapılan işlemlerin hiçbiri argüman değişkeni

Detaylı

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır.

Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Nesne tabanlı programlama nesneleri kullanan programlamayı içerir. Bir nesne farklı olarak tanımlanabilen gerçek dünyadaki bir varlıktır. Örneğin; bir öğrenci, sıra, çember, bir buton birer nesnedir. Bir

Detaylı

Göstericiler (Pointers)

Göstericiler (Pointers) C PROGRAMLAMA Göstericiler (Pointers) C programlama dilinin en güçlü özelliklerinden biridir. Göstericiler, işaretçiler yada pointer adı da verilmektedir. Gösterici (pointer); içerisinde bellek adresi

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Diziler ile Pointer Arası İlişki Bir dizi adı sabit bir pointer gibi düşünülebilir. Diziler ile pointer lar yakından ilişkilidir. Pointer lar değişkenleri gösterdikleri gibi,

Detaylı

Ders 8: Metotlar. barisgokce.com

Ders 8: Metotlar. barisgokce.com Ders 8: Metotlar Hazırlayan : Öğr. Grv.. Barış GÖKÇE Đletişim im : www.barisgokce barisgokce.com Metotlar C# içerisinde bir veya birden fazla kod bulunduran kod bloklarıdır. Bir nesnenin veya sınıfın programı

Detaylı

BİL-141 Bilgisayar Programlama I (Java)

BİL-141 Bilgisayar Programlama I (Java) 1 BİL-141 Bilgisayar Programlama I (Java) Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Bilgisayar Programlamaya Giriş, A. Yazıcı, E. Doğdu,

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 6 Kalıtım (Inheritance) - I Bu bölümde;

Detaylı

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

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 7. Bölüm Metot Tanımlama ve Kullanma C Programlama Dr. Serkan DİŞLİTAŞ 7.1. Metot Kavramı Programlama dillerinde bütün kod satırlarının

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 10: Yapıcı ve Yıkıcı Fonksiyonlar Yapıcı Fonksiyonlar İçerik Yapıcı Fonksiyon Tanımı Üyelere İlk Atama Yapıcı Fonksiyonu Yükleme Yapıcı Fonksiyon Çağırımı Kopya

Detaylı

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler

Programlama Dilleri 1. Ders 12: Belirleyiciler ve Niteleyiciler Programlama Dilleri 1 Ders 12: Belirleyiciler ve Niteleyiciler Genel Bakış Giriş Yer Belirleyicilerle Bildirim İşlemi auto Belirleyicisi register Belirleyicisi static Belirleyicisi Statik ve Global Değişkenlerin

Detaylı

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers)

BLM 112- Programlama Dilleri II. Hafta 5 İşaretçiler (Pointers) 1 BLM 112- Programlama Dilleri II Hafta 5 İşaretçiler (Pointers) Dr. Öğr. Üyesi Caner Özcan Hiç hata yapmayan insan, hiçbir şey yapmayan insandır. Ve hayatta en büyük hata, kendini hatasız sanmaktır. ~Y.

Detaylı

C#(Sharp) Programlama Dili

C#(Sharp) Programlama Dili Değişkenler C#(Sharp) Programlama Dili Program yazarken her zaman sabit verilerle çalışmayız, çoğu zaman programımızda bir verinin kullanıcının davranışına göre değişmesi gerekir. Kullanıcıdan bir metin

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA SANAL FONKSİYONLAR VE ÇOK BİÇİMLİLİK Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü GİRİŞ C++, hem derleyici-zamanlı hem de çalışmazamanlı çok biçimliliği destekler.

Detaylı

Nesneye Dayalı Programlama

Nesneye Dayalı Programlama SAKARYA ÜNİVERSİTESİ Nesneye Dayalı Programlama Hafta 4 Prof. Dr. Ümit KOCABIÇAK Öğr. Gör. Özgür ÇİFTÇİ Bu ders içeriğinin basım, yayım ve satış hakları Sakarya Üniversitesi ne aittir. "Uzaktan Öğretim"

Detaylı

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER KARAR KONTROL DEYİMLERİ HEDEFLER İÇİNDEKİLER KARAR KONTROL DEYİMLERİ Karar Kontrol Deyimleri if ifadesi if - else ifadesi if - elseif - else ifadesi Switch- Case ifadesi NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA Bu üniteyi

Detaylı

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1

Öğr. Gör. Serkan AKSU http://www.serkanaksu.net. http://www.serkanaksu.net/ 1 Öğr. Gör. Serkan AKSU http://www.serkanaksu.net http://www.serkanaksu.net/ 1 JavaScript JavaScript Nedir? Nestcape firması tarafından C dilinden esinlenerek yazılmış, Netscape Navigator 2.0 ile birlikte

Detaylı

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

abstract Sınıflar 1 Sınıf sınıf1 new class Ama aşağıdaki şekilde referans alınabilir; abstract Sınıflar 1 Özet sınıflar ya da özet metotlar abstract anahtar sözcüğü kullanılarak tanımlanırlar. Bir temel sınıf içinde bildirilen abstract metotların içeriği boştur. Kendisinden yeni bir instance

Detaylı

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

Fonksiyonlar. C++ ve NESNEYE DAYALI PROGRAMLAMA 51. /* Fonksiyon: kup Bir tamsayının küpünü hesaplar */ long int kup(int x) { Fonksiyonlar Kendi içinde bağımsız olarak çalışabilen ve belli bir işlevi yerine getiren program modülleridir. C programları bu modüllerden (fonksiyonlar) oluşurlar. Fonksiyonların yazılmasındaki temel

Detaylı

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR

PROGRAMLAMAYA GİRİŞ FONKSİYONLAR PROGRAMLAMAYA GİRİŞ FONKSİYONLAR Fonksiyonlar C programlama dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya

Detaylı

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

İsimler ve Kapsam. Hafta 4 Ders 2 BLG339 PROGRAMLAMA DİLLERİ KAVRAMI BLG339 PROGRAMLAMA DİLLERİ KAVRAMI Hafta 4 Ders 2 Yrd. Doç. Dr. Melike Şah Direkoğlu Alındığı kaynak: Addison-Wesley s Programming Language Concepts slaytları ve Prof. Dr. Tuğrul Yılmaz ın ders notlarından

Detaylı

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları)

ÜNİTE İÇİNDEKİLER HEDEFLER MATEMATİKSEL METOTLAR. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA. (Math Sınıfı ve Metotları) MATEMATİKSEL METOTLAR (Math Sınıfı ve Metotları) İÇİNDEKİLER Matemetiksel Metotlar Üstel Metotlar Logaritmik Metotlar Trigonometrik Metotlar Ters Trigonometrik Metotlar Hiperbolik Metotlar Yuvarlatma Metotları

Detaylı

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ

ÜNİTE. NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA İÇİNDEKİLER HEDEFLER DEĞİŞKENLER VE VERİ TİPLERİ HEDEFLER İÇİNDEKİLER DEĞİŞKENLER VE VERİ TİPLERİ Değişkenler ve Veri Tipleri Değişkenler Sabitler Değişkenlerde Faaliyet Alanı Veri Tipleri Tür Dönüşümleri NESNE TABANLI PROGRAMLAMA I Okt. Mustafa AKBUĞA

Detaylı

Nesneye Yönelik Programlama (OOP) 7.Hafta

Nesneye Yönelik Programlama (OOP) 7.Hafta Nesneye Yönelik Programlama (OOP) 7.Hafta Örnek : Yapılar vs Sınıflar Yapılar ve sınıflar büyük oranda benzerlik gösterirler. Yapıların sakladığı veriler her zaman public yani erişime açıktır. Sınıflarda

Detaylı

Kalıtım (Inheritance)

Kalıtım (Inheritance) Kalıtım (Inheritance) Kocaeli Üniversitesi Kalıtım (Inheritance) Kodların çok kez kullanımı (Software reusability) Mevcut Sınıflardan Yeni Sınıflar Oluşturma Mevcut sınıfın değişken ve fonksiyonları kullanılabilir.

Detaylı

C++ Dersi: Nesne Tabanlı Programlama

C++ Dersi: Nesne Tabanlı Programlama C++ Dersi: Nesne Tabanlı Programlama Bölüm 14: Çoklu İşlev İçerik Çoklu İşlevin Gerçekleştirilmesi Saf Sanal Fonksiyonlar ve Soyut Sınıflar Sanal Yıkıcı Fonksiyonlar Statik ve Dinamik Bağlama 2 Çoklu İşlev

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 7 Abstract (Soyut Sınıflar) Bu bölümde;

Detaylı

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

FONKSİYONLAR. Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. C PROGRAMLAMA FONKSİYONLAR Gerçek hayattaki problemlerin çözümü için geliştirilen programlar çok büyük boyutlardadır. Daha büyük programlar yazmanın en kolay yolu onları küçük parçalar halinde yazıp sonra

Detaylı

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ

İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ İNÖNÜ ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ 2. SINIF 1. DÖNEM VERİ YAPILARI DERSİ LABORATUAR ÖDEVİ AD SOYAD: TESLİM TARİHİ: OKUL NO: TESLİM SÜRESİ: 2 hafta ÖDEV NO: 5 1- BANKA

Detaylı

BMH-303 Nesneye Yönelik Programlama

BMH-303 Nesneye Yönelik Programlama BMH-303 Nesneye Yönelik Programlama Kurucu metotlar (constructors) ve statik deyimi Dr. Musa ATAŞ Siirt Üniversitesi Bilgisayar Mühendisliği Kurucu Metotlar (Constructors) Kurucu metot çeşitleri Varsayılan

Detaylı

7. HAFTA. Erişim Belirleyiciler

7. HAFTA. Erişim Belirleyiciler 7. HAFTA Erişim Belirleyiciler Java dilinde 4 tür erişim belirleyicisi vardır; bunlar friendly, public, protected ve private dir. Bu erişim belirleyiciler global alanlar (statik veya değil) ve yordamlar

Detaylı

Diziler İndisli Değişkenler

Diziler İndisli Değişkenler Diziler İndisli Değişkenler Aynı tür bilgileri (öğrenci isimleri, şehir isimleri, kapı numaraları, fakülteler vbg.) bellekte tutmak için kullanabileceğimiz listelere dizi adı verilir. Dizi kullanmanın

Detaylı

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

İsimler ve Kapsam. 24 Şubat 2011. Programlama Dilleri - Pamukkale Üniversitesi 1 İsimler ve Kapsam Tanım: Bir değişkenin kapsamı (scope) değişkenin görülebilir olduğu komutların alanıdır. Görülebilir olduğu alan, bir komut içinde belirlenen değerle kullanılabildiği alandır. Tanım:

Detaylı

4. Bölüm Programlamaya Giriş

4. Bölüm Programlamaya Giriş 4. Bölüm Programlamaya Giriş Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 4.1. C# ile Program Geliştirme Net Framework, Microsoft firması tarafından açık internet protokolleri ve standartları

Detaylı

NESNEYE YÖNELİK PROGRAMLAMA

NESNEYE YÖNELİK PROGRAMLAMA NESNEYE YÖNELİK PROGRAMLAMA İŞARETÇİ ELEMANLI SINIFLAR REFERANSLAR OPERATÖRLERİN AŞIRI YÜKLENMESİ ATAMA OPERATÖRÜ Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü İşaretçi Elemanlı Sınıflar

Detaylı

Bölüm 9. Altprogramlar ISBN

Bölüm 9. Altprogramlar ISBN Bölüm 9 Altprogramlar ISBN 0-321-49362-1 Giriş Bu bölümde, programlarda sıkça kullanılan işlemlerin bir araya gruplanması ile oluşturulan altprogramlar incelenecektir. Altprogramlar sayesinde bir programda

Detaylı

Lambda İfadeleri (Lambda Expressions)

Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri (Lambda Expressions) Lambda İfadeleri, değişkenlere değer atamak için kullanılan sadeleştirilmiş anonim (isimsiz) fonksiyonlardır. Bu fonksiyonlar matematikteki ve bilgisayar bilimlerindeki

Detaylı

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

enum bolumler{elektronik, insaat, bilgisayar, makine, gida}; BÖLÜM 12: Giriş C programlama dilinde programcı kendi veri tipini tanımlayabilir. enum Deyimi (Enumeration Constants) Bu tip, değişkenin alabileceği değerlerin belli (sabit) olduğu durumlarda programı

Detaylı

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

Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi 2011-2012 Nesne Tabanlı Programlama Dersi Edirne Kız Teknik ve Meslek Lisesi Programlama Dili Nedir? 2 Programlama dili, yazılımcının bir algoritmayı ifade etmek amacıyla, bir bilgisayara ne yapmasını

Detaylı

Programlama Dilleri 3

Programlama Dilleri 3 Akış Konrol Mekanizmaları 1 Koşul İfadeleri Programlar içersinde bazı durumlarda programın akışının değişmesi ya da farklı işlemlerin yapılması gerekebilir. Bazen de seçimlerin yapılması ya da belirli

Detaylı

YZM 2105 Nesneye Yönelik Programlama

YZM 2105 Nesneye Yönelik Programlama YZM 2105 Nesneye Yönelik Programlama Yrd. Doç. Dr. Deniz KILINÇ Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Yazılım Mühendisliği 1 BÖLÜM - 4 Nesneye Yönelik Programlamaya Giriş Bu

Detaylı

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while

Değişkenler. Geçerli değişken isimleri : baslamazamani, ad_soyad, x5 Geçersiz değişken isimleri : 3x, while Değişkenler Değişkenler bir bilginin bellekteki konumunu temsil eden sembolik isimlerdir. Bilgisayarda hemen hemen tüm işlemler bellekte yapılır. Program çalıştırıldığında değişken ve bu değişkenin türüne

Detaylı

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

Sınav tarihi : Süre : 60 dak. a) strstr b) strchr c) strcat d) strcpy e) strlen. a) b) d) e) 0 Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Bitirme Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 01.06.2017 Süre : 60 dak. 1. t değişkeni hakkında aşağıdakilerden

Detaylı

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1

Görsel Programlama DERS 02. Görsel Programlama - Ders02/ 1 Görsel Programlama DERS 02 Görsel Programlama - Ders02/ 1 Kodun Tekrar Kullanımı ve Kalıtım(Inheritance) Nesneye yönelik programlamanın diğer programlama paradigmalarına karşı bir avantajı kodun yeniden

Detaylı

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA

SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA NESNE YÖNELİMLİ PROGRAMLAMA GİRİŞ SINIF YAPISI ve NESNE YÖNELİMLİ PROGRAMLAMA Yazılım teknolojileri son 40 yılda artan bir ivmeyle gelişmeye devam etmektedir. Buna paralel olarak zamanla artan ve çeşitlenen kullanıcı istekleri doğrultusunda

Detaylı

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik.

Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. ASP.NET DERS 1 Yeni bir proje açarken File New - Web Site diyoruz. Gelen ekranda Visual Basic veya C# seçilebilir. Biz ders kapsamında C# programlama dilini seçtik. Gelen ekranda Visual C# seçildikten

Detaylı

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

Sınav tarihi : Süre : 60 dak. a) ABCDE b) BCDE c) ABCD d) kod hatalı e) BCD Selçuk Üniversitesi, Mühendislik Fakültesi, Harita Mühendisliği Bölümü Yıliçi Sınavı Test Soruları Adı soyadı : Öğrenci no : Sınav tarihi : 13.04.2015 Süre : 60 dak. 1. Hangisi gerçek sayı değişmezi değildir?

Detaylı

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9

1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9 VII 1 C#.NET GELİŞTİRME ORTAMI 1 Visual Studio 2015 Arayüzü 4 Menu Window 6 Solution Explorer 7 Properties Window 8 Server Explorer 8 Toolbox 9 2 KOD YAZMAYA BAŞLANGIÇ 11.Net Framework 11 Yeni Proje Oluşturmak

Detaylı

Görsel Programlama-I (Visual Programming) 2.Hafta

Görsel Programlama-I (Visual Programming) 2.Hafta Görsel Programlama-I (Visual Programming) 2.Hafta 2011-2012 Bahar Dönemi CLASS YAPISI 1 Görsel Programlama 2 Nesne tabanlıdır. Programda kullanılan bütün öğeler birer nesnedir. Class - Obje Nesne (Nesne

Detaylı

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2

NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 NESNE YÖNELİMLİ PROGRAMLAMA HAFTA # 2 JAVA DA PROGRAM DENETİMİ VE OPERATÖRLER Java programlama dilinde temel tipleri ve nesneleri yönlendirmek ve değiştirmek için operatörler kullanılır. Atamalar sağ taraftaki

Detaylı

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

Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) Java da Soyutlama ( Abstraction ) ve Çok-biçimlilik ( Polymorphism ) BBS-515 Nesneye Yönelik Programlama Ders #9 (16 Aralık 2009) Geçen ders: Java Applet lerde bileşen yerleştirme türleri ( applet layouts

Detaylı

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

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1

Bölüm 11. Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 Bölüm 11 Soyut veri tipleri ve kapsülleme kavramları ISBN 0-321-49362-1 11. Bölüm konuları Soyutlama kavramı Veri soyutlamasına giriş Soyut veri tipleri için tasarım konuları Dil örnekleri Parametreli

Detaylı

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır.

Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Ders İçeriği An introduction to Object-oriented programming with Java Third Edition Update Java C.Thomas Wu 2004b kitabından Türkçeleştirilerek ve örneklendirilerek hazırlanmıştır. Nesneye Yönelik Öğr.

Detaylı

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end

Metotlar. d e f metot_adı [ ( [ arg [= d e f a u l t ] ]... [, arg [, &expr ] ] ) ] deyim ( l e r ) end 4 Metotlar Hemen her programlama dilinde var olan metot kavramı Ruby için de aynıdır. Bazı kaynaklarda metot terimi yerine fonksiyon terimi kullanılır. Bu kitapta iki terimi eşanlamlı kullanacağız. Ruby

Detaylı

1. SINIFLAR Sınıf (Class) Mantığı

1. SINIFLAR Sınıf (Class) Mantığı 1. SINIFLAR Günlük hayatta kullanılan pek çok kelime bir sınıflandırmanın sonucu ortaya çıkmıştır. Örneğin insan, ev, araba vb. kelimeler bir tek nesneyi değil, ortak davranış ve özellikleri olan nesnelerin

Detaylı

Fonksiyonlar (Altprogram)

Fonksiyonlar (Altprogram) Fonksiyonlar (Altprogram) C Programlama Dili fonksiyon olarak adlandırılan alt programların birleştirilmesi kavramına dayanır. Bir C programı bir ya da daha çok fonksiyonun bir araya gelmesi ile oluşur.

Detaylı

Yrd. Doç. Dr. Caner ÖZCAN

Yrd. Doç. Dr. Caner ÖZCAN Yrd. Doç. Dr. Caner ÖZCAN Derse Giriş Ders Web Sitesi: www.canerozcan.net Ofis Saatleri: Salı 11:00-13:00 Perşembe 15:30-17:30 ya da email ile randevu alınız: canerozcan@karabuk.edu.tr Kaynak Kitaplar:

Detaylı

BİLG Dr. Mustafa T. Babagil 1

BİLG Dr. Mustafa T. Babagil 1 BİLG214 20.10.2009 Dr. Mustafa T. Babagil 1 Yapısal bilgi türlerinin tanımlanması. (C++ daki struct yapısı. ) Daha önce öğrenmiş olduğumuz bilgi tipleri char, int ve float v.b. değişkenler ile dizi (array)

Detaylı

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1

Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Altuğ B. Altıntaş 2003 Java ve Yazılım Tasarımı - Bölüm 7 1 Arayüz (Interface) Arayüzler, soyut sınıfların bir üst modeli gibi düşünülebilir. Arayüzler tamamen birleştirici bir rol oynamaları

Detaylı

Nesne Tabanlı Programlama

Nesne Tabanlı Programlama Nesne Tabanlı Programlama Ders Notu - 3 Dicle Üniversitesi Mühendislik Fakültesi Elektrik Elektronik Mühendisliği Bölümü 1 Sınıflar ve Fonksiyonlar Tekrar kullanılabilir kodlar 1 Nesne Tabanlı Tasarım

Detaylı

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2)

BLM-112 PROGRAMLAMA DİLLERİ II. Ders-3 İşaretçiler (Pointer) (Kısım-2) BLM-112 PROGRAMLAMA DİLLERİ II Ders-3 İşaretçiler (Pointer) (Kısım-2) Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Dinamik Bellek Yönetimi Bir program çalıştırıldığında

Detaylı

Hafta 13 Fonksiyonlar

Hafta 13 Fonksiyonlar BLM111 Programlama Dilleri I Hafta 13 Fonksiyonlar Yrd. Doç. Dr. Caner ÖZCAN Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı fonksiyonları ve kütüphane fonksiyonlarını birlikte kullanırlar.

Detaylı

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları

NESNE TABANLI PROGRAMLAMA Final Sınavı Cevapları Sayfa1 NESNE TABANLI PROGRAMLAMA 25.01.2011 Final Sınavı Cevapları CEVAPLAR 1. A ve C 3x3 boyutlu kare matrislerdir. Bu matrisler için, iken, işlemini gerçekleştirerek C matrisini oluşturan bir C++ programı

Detaylı

Nesne Yönelimli Programlama

Nesne Yönelimli Programlama 1 Nesne Yönelimli Programlama Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Not: Bu dersin sunumları, Java Programlama Dili ve Yazılım Tasarımı, Altuğ B. Altıntaş, Papatya

Detaylı

ALGORİTMA VE PROGRAMLAMA II

ALGORİTMA VE PROGRAMLAMA II ALGORİTMA VE PROGRAMLAMA II Yrd. Doç. Dr. Deniz KILINÇ deniz.kilinc@cbu.edu.tr YZM 1102 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi Genel Bakış 2 İşaretçiler ve Diziler Fonksiyon

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

Detaylı

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

BMT 101 Algoritma ve Programlama I 11. Hafta. Yük. Müh. Köksal Gündoğdu 1 BMT 101 Algoritma ve Programlama I 11. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Fonksiyonlar Yük. Müh. Köksal Gündoğdu 2 C++ Hazır Fonksiyonlar Yük. Müh. Köksal Gündoğdu 3 C++ Hazır Fonksiyonlar 1. Matematiksel

Detaylı

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş

MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş MAT213 BİLGİSAYAR PROGRAMLAMA I DERSİ Ders 1: Programlamaya Giriş Yard. Doç. Dr. Alper Kürşat Uysal Bilgisayar Mühendisliği Bölümü akuysal@anadolu.edu.tr Ders Web Sayfası: http://ceng.anadolu.edu.tr/ders.aspx?dersid=101

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java da Diziler Dizi Tanımlama ve İlk Değer Atama Dizi Elemanlarının Kullanılması Dizi İşlemleri Java da Diziler JAVA DA DİZİLER 4 Dizi; tek bir veri tipinde,

Detaylı

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

Uzaktan Eğitim Uygulama ve Araştırma Merkezi JAVA PROGRAMLAMA Öğr. Gör. Utku SOBUTAY İÇERİK 2 Java Veri Tipleri ve Özelilkleri Değişken Tanımlama Kuralları Değişken Veri Tipi Değiştirme (Type Casting) Örnek Kodlar Java Veri Tipleri ve Özelilkleri

Detaylı

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA

BLM-111 PROGRAMLAMA DİLLERİ I. Ders-12 Fonksiyonlar. Yrd. Doç. Dr. Ümit ATİLA BLM-111 PROGRAMLAMA DİLLERİ I Ders-12 Fonksiyonlar Yrd. Doç. Dr. Ümit ATİLA umitatila@karabuk.edu.tr http://web.karabuk.edu.tr/umitatilla/ Fonksiyonlar Fonksiyonlar C de modüller Programlar kullanıcı tanımlı

Detaylı

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1

Görsel Programlama DERS 03. Görsel Programlama - Ders03/ 1 Görsel Programlama DERS 03 Görsel Programlama - Ders03/ 1 Java Dili, Veri Tipleri ve Operatörleri İlkel(primitive) Veri Tipleri İLKEL TİP boolean byte short int long float double char void BOYUTU 1 bit

Detaylı

Programlama Dillerinde Kullanılan Veri Tipleri

Programlama Dillerinde Kullanılan Veri Tipleri Programlama Dillerinde Kullanılan Veri Tipleri Taban/Biçim Basic Paskal C/C++/C#/Java 10 (Decimal ) - - - 16 (Hexadecimal) &hsayı veya &Hsayı $sayı 0xsayı veya 0Xsayı Üstel eüs veya Eüs eüs veya Eüs eüs

Detaylı

Ders 8 Konu Özeti ve Problemler

Ders 8 Konu Özeti ve Problemler Ders 8 Konu Özeti ve Problemler C# ve Nesne Yönelimli Programlamanın 3 Prensibi Kapsülleme (Encapsulation) Nesne yönelimli programlamanın ilk prensibi kapsülleme (encapsulation) olarak adlandırılır. Bu

Detaylı