NESNEYE YÖNELİK PROGRAMLAMA

Slides:



Advertisements
Benzer bir sunumlar
Programlama-II (Java ile Bilgisayar Programlama)
Advertisements

NESNEYE YÖNELİK PROGRAMLAMA Temel Kavramlar
Yazılım Geliştirme ve Java
C# İsim uzayları(namespace)
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ
MIT503 Veri Yapıları ve algoritmalar Algoritma Oluşturma – Açgözlü algoritmalar ve buluşsallar Y. Doç. Yuriy Mishchenko.
UML Unified Modeling Language
Nesneye Dayalı (Nesne Tabanlı ) Programlama
WEB SERVİCE İDRİS YÜRÜK MAHMUT KAYA.
Tuğba DEMİREL
NESNEYE YÖNELİK PROGRAMLAMA Nesneye Yönelik Yazılım Geliştirme Süreci Özlem AYDIN Trakya Üniversitesi Bilgisayar Mühendisliği Bölümü.
JAVA EĞİTİMİ Serdar TÜRKEL
Veri ve Veri Yapıları Genel olarak bilgisayarlar.
Nesneye Yönelik Programlama
İSİM UZAYLARI.
Nesne Tabanlı Programlama Hakan Doğan
Sarma (Encapsulation) / Kalitim (Inheritance) /Final Terimleri
Nesneye Yönelik Programlama
OOP Tanımlar.
NESNEYE DAYALI MODELLEME VE TASARIM
1.Yazılım Geliştirme Biligisayar techolojisinin iki bir birine bağalı konusu var: Donanım (hardware) Yazılım (software)
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
Çerez(Cookie) Kullanımı Oturum Yönetimi
Nesne Tabanlı Programlama
XML Genişletilebilir İşaretleme Dili (eXtensible Markup Language), hem insanlar hem bilgi işlem sistemleri tarafından kolayca okunabilecek dokümanlar oluşturmayı.
NESNEYE YÖNELİK PROGRAMLAMANIN TEMEL İLKELERİ GENEL BİR BAKIŞ
İSİM UZAYLARI (NAMESPACE).
DELEGATE OOP-UYG.
Erişim Denetimi, Fonksiyon
While Döngüsü Tekrarlama deyimidir. Bir küme ya da deyim while kullanılarak bir çok kez yinelenebilir. Yinelenmesi için koşul sınaması döngüye girilmeden.
Nesneye Dayalı Programlama
FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ DERLEYENLER: Ahmet Can ÇAKIL Ali Murat GARİPCAN Özgür AYDIN Şahin KARA KONTROL : Prof. Dr. Asaf VAROL KONU : KAPSÜLLEME.
NESNEYE DAYALI PROGRAMLAMA
Görsel Programlama Dr. Muhammet Balcılar
Nesneye Dayalı Programlama
Ses Kontrol Metodlar ile ilgili son birkaç söz Tekrar: Programlama için başlıca 3 model.
NESNE YÖNELİMLİ PROGRAMLAMA
Ece Olcay Güneş & S. Berna Örs
Nesneye Yönelik Programlama (12. Sunu). İsim Uzayları (Namespaces) Sınıfınızda Deniz adında iki öğrenci olduğunu kabul ediniz. Böyle bir durumda bu öğrencileri.
Chapter 1: Giriş.
NESNEYE-YÖNELİK PROGRAMLAMA
JAVA’DA DÖNGÜLER.
Kalıtım , Sınıf Asli Ergün.
Nesneye Dayalı Programlama
END3061 SİSTEM ANALİZİ VE MÜHENDİSLİĞİ
KALITIM Yılmaz Kılıçaslan.
BİLİŞİM TEKNOLOJİLERİ ALANI
Göğüşhan KILIÇ twitter.com/gogushan_kilic OLMAYA HAZIR MIYIZ?
WEB PROGRAMCILIĞI.
Bilgi Teknolojisinin Temel Kavramları
PROJENİN ADI “Doğrusal Konumlandırıcılar” için Profesyonel Kontrol Ara yüz Tasarımı ve İmalatı.
BİLİŞİM TEKNOLOJİLERİ DERS KİTAPLARI
Genel Kavramlar Bölüm - 1. YAZILIM Bilgisayara işlemler yaptırabilmek ve karar verdirtebilmek için yazılan kalıplara denir. Yazılım, genel olarak donanım.
Barış Ceviz Yazılım Geliştiricisi Yazılım, Yazılımcı, Yazılım Dilleri.
KALITIM(INHERITANCE) Öğr.Gör. Murat ASLANYÜREK. KALITIM KAVRAMINA GİRİŞ  Kalıtım, sınıflardan yeni sınıflar türetmeyi sağlar.  Türetilen yeni sınıflar,
Bilgisayar Mühendisliğindeki Yeri
ÇEVİK (Agile) SÜREÇLER Değişen gereksinimler, teknik riskler gibi önceden belirlenemeyen durumlara ve yazılım ürününü etkileyebilecek her tür değişikliğe.
SOYUT(ABSTRACT) SINIFLAR METODLAR
VERİ TÜRLERİ.
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
FONKSİYONLAR.
Bütün dünyayı nesneler (object) ve nesneler arası ilişki olarak gören model kullanılarak yapılan programlama. Bu programlama tekniğine göre her nesne.
ONTOLOJİ GELİŞTİRME ALANINDA ÇEVİK YAKLAŞIMLAR
Bilgisayar Bilimi Problem Çözme Süreci-2.
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
Before the Battle of Çanakkale. Why a Front in Çanakkale was Opened? In the summer of 1914, the war continued in Europe with all its intensity, and by.
MTM216 GÖRSEL PROGRAMLAMA
İLERİ VERİ TABANI UYGULAMALARI
Veri Tabanı Temel Kavramları Öğr. Gör. Yunus KÖKVER
Sunum transkripti:

NESNEYE YÖNELİK PROGRAMLAMA 02 Ekim 2012

Nesne Yönelimli Programlama Yazılım teknolojisindeki gelişme ve ilerlemeler; yapısal programlama, yapısal tasarım, yapısal analiz ile başlasa da nesne yönelimli analiz, tasarım ve programlama ile daha çok gelişme elde edilmiştir. Nesneye yönelimli programlama gerçek dünyayı örnek almakta tıpkı gerçek dünyada olduğu gibi nesneler ve nesnelerin birbirleriyle iletimini sağlayan sistemler kurmaktadır. Bu tarz yazılan yazılımlar, daha iyi organize ve anlaşılır oldukları için bakımları da çok kolay olmakta ve programcıya zaman ve maliyetten büyük tasarruf sağlamaktadır.

NESNEYE-YÖNELİK TASARIM Nesneye-yönelik tasarım, prosedürel yaklaşımdan köklü olarak ayrılır. Nesneye-yönelik yaklaşımda problem, İşlemlere yada veri yapılarına bölünmez; Birbirleriyle etkileşen bir nesneler sistemi olarak analiz edilir. Ayrıca, prosedürel yaklaşım yukarıdan-aşağıya işleyen bir analiz tekniği olmasına rağmen, nesneye yönelik yaklaşım yukarıdan-aşağıya analiz ve aşağıdan-yukarıya sentez tekniklerini birleştirir. Nesneye-yönelik tasarım (“iterative” tarzda) şunların yapılmasını gerektirir: Sınıfların belirlenmesi, Özelliklerin ve davranışların tespiti, Sınıflar arası ilişkilerin bulunması ve Sınıfların bir hiyerarşi içinde organize edilmesi.

NESNEYE-YÖNELİK TASARIM Nesne tabanlı programlamada esas olan, gerçek hayatta var olan olguların programlamaya aktarılmasındaki yeni yaklaşımdır. Klasik prosedürsel programlamada verilerimiz ve fonksiyonlarımız vardı. Yani her şey veri ve bu veriyi işleyen metotlar etrafında dönüyordu. Aslında nesne tabanlı programlamada da iki önemli birim; veri ve veriyi işleyip mantıklı sonuçlar üreten metotlar bulunur. Ama buradaki fark gerçek hayattaki olguların da daha iyi gözlenip programlama dünyasına aktarılmasındadır.

Modelleme Gerçekleştirilmesi maliyetli ya da riskli olan projelerde, projenin beklenmedik durumlardan dolayı başarısızlığa uğramaması için bir takım fikir ve tasarım işlemleri (modelleme) yapılır. Modelleme fikir bazındaki projenin, gerçek dünyada uygulanabilirliğini sorgular. Karşılaşılabilecek sorunlara önceden çözüm bularak işgücü, maliyet, zaman gibi kaynak kayıplarını önler. Nesneye yönelimli programlamayla birlikte modellemeye duyulan ihtiyaç artmış ve Yazılım projelerinde kullanılmak üzere UML (Unified Modeling Language) modelleme dili geliştirilmiştir. Model oluşturmak şu getirileri sağlar Yapılacak iş için gereksinimleri ortaya koyar Anlaşmazlıkları çözümlemeye yardımcı olur. Yanlışları Önler

NESNEYE-YÖNELİK TASARIM

SINIFLARIN BELİRLENMESİ Nesneye-yönelik tasarımda ilk adım programın ihtiyaç duyacağı sınıfların belirlenmesidir. Bunun için kullanılabilecek basit bir teknik, programdan beklenenin doğal dil ile betimlenmesi, betimleme içindeki isimlerin listelenmesi ve bu liste içinde sınıfların seçilmesidir. Sınıflar en kolay olarak fiziksel nesneleri modelleyen programlar için belirlenir. Fakat, kavramsal nesneler yada olaylar veya etkileşimler söz konusu olduğunda bu işlem daha zor gerçekleştirilir. Ayrıca, problem modeli içindeki elemanlara karşılık gelen sınıflar tespit edildikten sonra bu sınıfları gerçekleştirmek için de yeni sınıflar tasarlamak gerekebilir.

ÖZELLİKLERİN VE DAVRANIŞLARIN TESPİTİ Bir kez sınıflar belirlendikten sonra ikinci adım, her sınıfa ait sorumlulukların belirlenmesidir. Bir sınıfın sorumlulukları iki alanda ortaya çıkar: Taşıması gereken bilgiler (“Sınıfa ait bir nesnenin neleri bileceği”) ve Sınıfa ait bir nesnenin neler yapabileceği yada bu nesneye neler yapılabileceği. Her sınıf kendisini betimleyen bazı özelliklere sahiptir. Sınıfa ait bir nesnenin özellik değerleri nesnenin içinde bulunduğu durumu (“state”) belirler. Özellik değerleri hiç değişmeyeceği gibi sık sık da değişebilir. Her nesne içinde bulunduğu durumu hatırlamak zorundadır. Her sınıf, ayrıca, nesnelerin diğer nesnelerle nasıl etkileştiğine be bu etkileşim neticesinde içinde bulundukları durumların nasıl değiştiğine karşılık gelen davranışlara sahiptir.

Sınıf (Class) ve Nesne (Object) Kavramı

Sınıf (Class) ve Nesne (Object) Kavramı

Sınıf (Class) ve Nesne (Object) Kavramı Mesela elimizde bir ütümüz olsun. Ütünün markası, modeli, rengi, çalıştığı elektrik voltajı, ne tür kumaşları ütüleyebildiği bu ütüye ait özelliklerdir (veri). Aynı zamanda ütümüzü ısıtabiliriz, ütüleme işinde kullanabiliriz ve soğumaya bırakabiliriz. Bunlar ise ütünün fonksiyonlarıdır (metot).

Sınıf (Class) ve Nesne (Object) Kavramı Eğer ütü ile ilgili bir program yapmış olsak ve nesne tabanlı programlama tekniğini kullansak hemen bir ütü sınıfı (class) oluştururduk. Bu sınıfta ütüye ait bilgiler (veriler) ve ütü ile yapabileceğimiz işler (metot) bulunurdu. O zaman nesne tabanlı programlamada bir sınıfta, sınıfa ait veriler ve bu verileri işleyip bir takım faydalı sonuçlar üreten fonksiyonlar / metotlar bulunur. Dahası, biz bir tane ütü sınıfı tasarlarsak bu sınıftan istediğimiz sayıda değişik ütüler (Object veya instance) yapabiliriz. Resimde bu şekilde ütü sınıfı ve bu sınıftan oluşturduğumuz nesnelerin görsel olarak anlatımı bulunmaktadır.

Sınıf (Class) ve Nesne (Object) Kavramı

Nesne Yönelimli Programlama Kavramları Kapsüllleme (Encapsulation) sayesinde, sınıfımız içinde kullandığımız alanların dışarıdan herhangi bir etki ile doğrudan değiştirilmelerini engellemiş oluruz. Bu durum bizim isteğimiz dışında oluşabilecek atamaların önüne geçmemize ve ille de bu alanların değerleri değişecekse bizim belirlediğimiz bir çizgide olmasına neden oluyor. Bu da programcılıkta ve özellikle nesne tabanlı programlamada çok büyük bir yere sahip olan kontrolün elimizde olmasını sağlar. Bir diğer özellik de, paketlenecek fonksiyonların nasıl bir işlev göstereceği belirtilmeksizin, sadece nasıl kullanılacağının belirtilmesi yapılabilir ki, bu zorunludur. Buna da Genelleştirme (Abstraction) adı verilir.

Nesne Yönelimli Programlama Kavramları Kalıtım (Inheritance): Normalde bu kavramı gerçek hayattan biliyoruz. En basit anlamda, örneğin “Ben, annemin gözlerini almışım.” dediğimde, tıp uzmanlarının buna getirdikleri yorum " siz annenizden kalıtımsal olarak şu özelikleri almışsınız." oluyor. Programlama dillerinde de kalıtımın rolünün aynı olduğunu söyleyebiliriz. Zaten nesne tabanlı programlama dillerini tasarlayan uzmanlar, gerçek hayat problemlerini, bilgisayar ortamına taşıyabilmek amacıyla en etkili modelleri geliştirmişler, bu model içerisine kalıtımı da katarak çok önemli bir özelliğin kullanılabilmesini sağlamışlardır.

Nesne Yönelimli Programlama Kavramları Nesneler için söylenebilecek özelliklerden biri de türeme özelliğidir. Bir nesne tanımlanırken daha önceden tanımlanmış bir başka nesneyi kendisine taban olarak seçebilir. Bu durum, yeni tanımlanan nesnenin kendisine taban seçtiği nesnenin özelliklerini kullanma hakkına karşılık gelir. Aynı zamanda yeni nesnenin taban nesne ile aynı özellikleri taşımasına neden olur. Yeni nesne kendisine yeni özellikler katabileceği gibi devraldığı özellikleri de geliştirebilir, değiştirebilir. Bu özelliğe Türeme (Derivation), özellikleri devralmaya da Miras alma veya Katılım (Inheritance) adı verilir.

Nesne Yönelimli Programlama Kavramları Kalıtım

Nesne Yönelimli Programlama Kavramları Kalıtım

Nesne Yönelimli Programlama Kavramları Üç önemli özellik göze çarpmaktadır: Türeyen nesneler taban nesnenin koruyarak devam ettirip kullanabilirler. 2. Türeyen nesneler türedikleri taban nesnelerin özelliklerini değiştirebilirler. Türeyen nesneler yeni özellikler kazanabilir veya mevcut özellikleri kaybedebilirler. Bir sistem içerisinde birbirinden türemiş sınıflar bulunsun. Miras alınan sınıfta zaten tanımlı olan bir fonksiyon, miras alan sınıfta da (Parametreleri, ismi ve geri dönüş değeri aynı olarak) tekrar tanımlanabilir. Bu durumda miras ağacı boyunca aynı fonksiyon farklı işler yapabilir. Bu duruma Çok Biçimlilik (Polymorphism) adı verilir.

Nesne Yönelimli Programlama Kavramları Çok biçimlilik metodun farklı nesnelerde veya farklı ortamlarda farklı sonuçlar üretmesidir. Mesela “konuşmak” insan sınıfına ait bir metottur Ancak bu metot ait olduğu insan sınıfının örneğine göre farklı sonuçlar üretir

Nesne Yönelimli Programlama Kavramları Türeme özelliği ile ilgili olarak söylenebilecek bir diğer özellik ise bir nesnenin bir nesneden değil de birden çok nesneden türemiş olması özelliği (Çok Tabanlılık veya Çoktan Türeme, Multiple Inheritance). Programlar içinde belirli nesne kalıplarının tekrar kullanım için hazırlanması özelliğine Şablon (Template) adı verilir. Şablonlar, yazılan bir kodun farklı benzer durumlar için kullanılmasını ifade eder.

A Short History of Object – Oriented Programming (OOP) SIMULA 1(1962) and Simula 67 (1967) are the two earliest object - oriented languages While most of the advantages of OOP were available in the earlier Simula languages, it wasn’t until C++ became entrenched in the 1990s that OOP began to flourish. The next step in the development of OOP started in January of 1991 The result was the Oak programming language (named after an oak tree outside Gosling’s window), which eventually morphed into the Java programming language. Java quickly grew in popularity, spurred by the growth of the World Wide Web. To many programmers, C# is Microsoft ’ s answer to Java. Some would even say that C# is the result ofMicrosoft ’ s stubbornness in refusing to promote a language it did not develop.

Installing C# Downloading C# Express A Test Program Using C# Express