NANTAI NVERSTES NESNEYE YNELK PROGRAMLAMA TEMEL KAVRAMLAR SINIF

  • Slides: 27
Download presentation
NİŞANTAŞI ÜNİVERSİTESİ NESNEYE YÖNELİK PROGRAMLAMA TEMEL KAVRAMLAR, SINIF YAZIMI, YAPICI YÖNTEMLER İktisadi, İdari ve

NİŞANTAŞI ÜNİVERSİTESİ NESNEYE YÖNELİK PROGRAMLAMA TEMEL KAVRAMLAR, SINIF YAZIMI, YAPICI YÖNTEMLER İktisadi, İdari ve Sosyal Bilimler Fakültesi iisbf. nisantasi. edu. tr TESİ NİŞANTAŞI ÜNİVERSİ ©

İŞLEME YÖNELİK TASARIM • Bir program tasarlanırken, gereksinimleri programın gerçekleştireceği işlemler açısından incelemek en

İŞLEME YÖNELİK TASARIM • Bir program tasarlanırken, gereksinimleri programın gerçekleştireceği işlemler açısından incelemek en alışılmış yaklaşımdır. • Bu yaklaşımda, programın yapması gereken işlemler üzerinde yoğunlaşılır.

İŞLEME YÖNELİK TASARIM • Örneğin; bir öğrenci bilgi sisteminde işlemlere göre gereksinimler aşağıdaki şekilde

İŞLEME YÖNELİK TASARIM • Örneğin; bir öğrenci bilgi sisteminde işlemlere göre gereksinimler aşağıdaki şekilde belirlenebilir: – Belirli bir dönem için açılan derslerin ekranda listelenmesi, – Bir öğrencinin kayıt olacağı ders kodunun girilmesi, – Öğrencinin derse kaydının onaylanması / reddedilmesi.

İŞLEME YÖNELİK TASARIM • Bu gereksinimlere göre ayrıştırılan bir yazılımda oluşan birimler arasında veri

İŞLEME YÖNELİK TASARIM • Bu gereksinimlere göre ayrıştırılan bir yazılımda oluşan birimler arasında veri paylaşımı yoğunluktadır. • Yazılımın gerçekleştireceği işlemlere göre ayrıştırma başlangıçta kolaylık sağlasa da, veri paylaşımının çok olması gereksinimlerdeki küçük değişikliklerin bile yazılımda kapsamlı değişiklikler yapılmasını gerektirir. • Bu durum ise hem sistemin geliştirilmesi hem de bakımı aşamalarında sorun yaratabilir.

NESNEYE YÖNELİK TASARIM • Nesneye yönelik yaklaşımda bir problem, nesneler ve nesnelerin sorumlulukları açısından

NESNEYE YÖNELİK TASARIM • Nesneye yönelik yaklaşımda bir problem, nesneler ve nesnelerin sorumlulukları açısından incelenir, örneğin; bir öğrenci bilgi sisteminde öğrenci, ders ve öğretim üyesi nesneler, derse kayıt olma ve ders verme gibi işlemler ise nesnelerin sorumluluklarıdır. • Bu yaklaşımda tasarım yapılması gereken işlemler yerine, işlemlerin üzerinde çalışacağı nesneler üzerinde yoğunlaşır. • Böylece, yapısı daha güçlü ve değişikliklere daha uygun yazılımlar oluşturulması amaçlanmaktadır. Bu yaklaşımın önceki yaklaşımdan temel farkı, tasarımın odak noktasının işlemlerden nesnelere yani veriye değiştirilmesidir.

NESNEYE YÖNELİK PROGRAMLAMA • Büyük programların oluşturulması için gerekli iki kavram modülerlik ve soyutlamadır.

NESNEYE YÖNELİK PROGRAMLAMA • Büyük programların oluşturulması için gerekli iki kavram modülerlik ve soyutlamadır. • Nesneye yönelik programlamada modülerlik birimi, soyut bir veri tipi gerçekleştirimidir. Nesneye yönelik programlama ve "geleneksel" programlama arasındaki önemli bir fark, geleneksel programlamanın önceden tanımlanmış soyutlamalarla sınırlanmış olması, nesneye yönelik programlamada ise kullanıcı tanımlı soyutlamaların yer alabilmesidir.

NESNEYE YÖNELİK PROGRAMLAMA • Nesneye yönelik programlamada sınıflar, soyut veri tipleri tanımlamak için kullanılabilir.

NESNEYE YÖNELİK PROGRAMLAMA • Nesneye yönelik programlamada sınıflar, soyut veri tipleri tanımlamak için kullanılabilir. Buna ek olarak, varolan sınıflara ekler yapılarak, yeni nesne sınıfları tanımlanabilir. • Nesneye yönelik programlama, soyut veri tipi kavramına önemli fikirler de eklemektedir.

TEMEL KAVRAMLAR • Nesne: Veriler ve işlemler topluluğu • Sınıf: Bir dizi nesne kümesinin

TEMEL KAVRAMLAR • Nesne: Veriler ve işlemler topluluğu • Sınıf: Bir dizi nesne kümesinin tarifi. • Altsınıf: Bir sınıfın ek özellikler de içerebilen altkümesi. • Metod: Bir sınıfın işlemlerini gerçekleştiren kod. • Mesaj: Bir metodun çalıştırılmasını istemek için bir çağrım • Kalıtım: Bir sınıftan yeni bir sınıf türetilmesi. • Çokyapılılık: Dinamik bağlama ile aynı mesajın farklı sınıflara ilişkin nesneler tarafından yanıtlanabilmesi ve farklı davranışlar gösterebilmesi.

TEMEL KAVRAMLAR • Nesneye yönelik programlama, kalıtım ve çokyapılılık özellikleriyle yazılım geliştirmede yeniden kullanımı

TEMEL KAVRAMLAR • Nesneye yönelik programlama, kalıtım ve çokyapılılık özellikleriyle yazılım geliştirmede yeniden kullanımı da destekler.

SINIFLAR VE NESNELER Nesne: • Nesneye yönelik programlamada bir program, verileri ve ilgili işlemleri

SINIFLAR VE NESNELER Nesne: • Nesneye yönelik programlamada bir program, verileri ve ilgili işlemleri içeren nesneler üzerinde kurulur. • Bir nesne, üzerinde işlemlerin gerçekleştirilebileceği verilerle bir bütündür. Örneğin, yiğit bir nesne, yığıtın içerikleri de yiğit nesnesinin verileridir. Yığıtın metodları, yığıta veri eklenmesi, yığıttan veri çıkarılması gibi yığıt nesnesinin sorumluluklarıdır.

SINIFLAR VE NESNELER Sınıf: • Nesneye yönelik programlamada sınıflar, soyut veri tipleridir. Sınıflar, özellikleri

SINIFLAR VE NESNELER Sınıf: • Nesneye yönelik programlamada sınıflar, soyut veri tipleridir. Sınıflar, özellikleri ve metodları açısından tanımlanır. Özellikler, sınıfın verilerini, metodlar ise sınıfın sorumluluklarını gösterir. • Nesneler ise sınıfların (kullanıcı tanımlı tiplerin) örnekleridir. Bu bağlamda, bir programda bir sınıf tanımını yeni bir tip tanımı, bir nesneyi de bir sınıf tipinde bir değişken tanımlanması olarak düşünebiliriz.

SINIF YAZIMI • Java’da yazılan sınıfların büyük çoğunluğu, başka sınıflar tarafından kullanılmak için yazılır

SINIF YAZIMI • Java’da yazılan sınıfların büyük çoğunluğu, başka sınıflar tarafından kullanılmak için yazılır ve bir main yöntemleri olmaz. • Bir sınıfın üye değişkenleri (members variables) herhangi bir yöntemin dışında ancak sınıfın içinde tanımlanan değişkenlerdir ve o sınıfın bütün nesnelerinde bulunurlar.

SINIF YAZIMI • Nokta kullanarak bir nesnenin içinde bulunan bir değişkene eriştiğimiz zaman, artık

SINIF YAZIMI • Nokta kullanarak bir nesnenin içinde bulunan bir değişkene eriştiğimiz zaman, artık onu kendi tipinden herhangi bir değişken gibi kullanabiliriz.

SINIF YAZIMI • Bir nakliye şirketi için uygulama geliştireceğimizi düşünelim. • Kutu kavramını soyutlayarak,

SINIF YAZIMI • Bir nakliye şirketi için uygulama geliştireceğimizi düşünelim. • Kutu kavramını soyutlayarak, kutuları programımızda temsil eden bir sınıf yazalım. • Bir kutu için 3 adet temel veriye sahibiz: En, Boy, Yükseklik. • Ayrıca kırılacak eşya olup olmadığı ve eğer bir zorunluluk varsa hangi yüzeyin tabana geleceği.

ÖRNEK-1

ÖRNEK-1

ÖRNEK-1

ÖRNEK-1

YAPICILAR • Bir nesnedeki bir üye değişkeninin değerine belli bir değer atamadan önce kendimizin

YAPICILAR • Bir nesnedeki bir üye değişkeninin değerine belli bir değer atamadan önce kendimizin seçtiği bir varsayılan değeri olmasını istiyorsak ne yapmalıyız? • Bir sınıfa ait yapıcı (constructor) , o sınıfa ait bir nesne oluşturulurken otomatik olarak çağrılır. Çağrıldığında içindeki atamaları yapar. • Bir sınıfın yapıcısı, aslında adı sınıfın adı ile aynı olan bir yöntemdir.

YAPICILAR • Programda bir sınıfa ait nesneler yaratılınca, her nesneye ait değişkenler birbirinden farklıdır.

YAPICILAR • Programda bir sınıfa ait nesneler yaratılınca, her nesneye ait değişkenler birbirinden farklıdır. • Ancak bunların nesnenin içindeki adları aynı olduğu için, değişik nesnelerdeki aynı adlı değişkenleri ayırt ederken, nesne adını da içeren noktalı yazım biçimi gerekli olur. • Bununla birlikte, bir yapıcı çağrıldığında, hangi nesne için çağrıldığını bilir.

YAPICILAR • Bu yüzden, yapıcı yazılırken, noktalı yazım biçimi kullanılmaz, değişken adları doğrudan kullanılır.

YAPICILAR • Bu yüzden, yapıcı yazılırken, noktalı yazım biçimi kullanılmaz, değişken adları doğrudan kullanılır.

ÖRNEK-2 • Bir önceki örnekteki kutu sınıfına nesnelerinin ilk yaratıldıkları zaman varsayılan değer olarak

ÖRNEK-2 • Bir önceki örnekteki kutu sınıfına nesnelerinin ilk yaratıldıkları zaman varsayılan değer olarak en=5, boy=5, yükseklik=5, kırılacak eşya bulunmadığı ve taban yüzeyinin önemli olmadığı şeklinde atama yapacak yapıcıyı ekleyiniz.

ÖRNEK-2

ÖRNEK-2

ÖRNEK-2

ÖRNEK-2

YAPICILAR • Bir yapıcı parametre alabilir. • Parametreleri farklı olduğu sürece, bir sınıfa istendiği

YAPICILAR • Bir yapıcı parametre alabilir. • Parametreleri farklı olduğu sürece, bir sınıfa istendiği kadar çok sayıda yapıcı yazılabilir. • Parametre almayan yapıcılara varsayılan yapıcı (default constructor) adı verilir.

ÖRNEK-3 • Önceki örneklerdeki kutu sınıfına nesnelerinin ilk yaratılmalarında en, boy, yükseklik, kırılacak eşya

ÖRNEK-3 • Önceki örneklerdeki kutu sınıfına nesnelerinin ilk yaratılmalarında en, boy, yükseklik, kırılacak eşya olup olmadığı ve taban yüzeyi bilgilerini parametre olarak vermeye yarayan yapıcıyı ekleyiniz.

ÖRNEK-3

ÖRNEK-3

ÖRNEK-3

ÖRNEK-3

KAYNAKLAR • Bora Güngören, Java ile Temel Programlama, Seçkin Yayıncılık, 2003 • Kendinize Güvenerek

KAYNAKLAR • Bora Güngören, Java ile Temel Programlama, Seçkin Yayıncılık, 2003 • Kendinize Güvenerek Java, Musa Çavuş, Seçkin Yayıncılık, 2011 • Yrd. Doç. Dr. Hilmi Küçük, Nesneye Yönelik Programlama, JAVA, Ders Notları