PHP ile Nesneye Yönelik Programlama

Slides:



Advertisements
Benzer bir sunumlar
UML Unified Modeling Language
Advertisements

SINIF DİYAGRAMLARI (Class Diagrams). Temel Sınıf Gösterimi  En üstte sınıf ismi bulunur.  Özellikler (opsiyonel) –Sınıfa ait tüm alanları içermelidir.
Kalıtım , Sınıf Asli Ergün.
Mastarlar.
ODTÜ Bilgisayar Mühendisliği Tanıtım Günleri Temmuz 2005.
Algoritma.  Algoritma, belirli bir görevi yerine getiren sonlu sayıdaki işlemler dizisidir.  Başka bir deyişle; bir sorunu çözebilmek için gerekli olan.
Veri Tabanı Yönetim Sistemleri Hafta 1. 2 Temel Kavramlar Veri Olguların, kavramların, veya talimatların, insan tarafından veya otomatik yolla iletişim,
Hat Dengeleme.
TASARIMIN BELGELENDİRİLMESİ Bir nesneye yönelimli programın tasarım sürecinin belgelendirilmesinde yer alan önemli belgeler: Ayrıntılı UML sınıf şemaları:
Matematik Öğretimi Yrd. Doç. Dr. Nuray Ç. Dedeoğlu
NESNE TABANLI PROGRAMLAMA Giriş. Bilgisayar Programlama  Bilgisayar programlama makine yönelimli programlama bakış açısından, dünyayı kavrayış şeklimizi.
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 5: Fonksiyonlar Yrd. Doç. Dr. Altan MESUT Trakya Üniversitesi Bilgisayar Mühendisliği.
LINQ { C# 3.0 ve Language Integrated Query } MEHMET MECİT GÖK NO:
AKIL (ZİHİN) HARİTASI.
Arş.Gör.İrfan DOĞAN.  Bugün otizm tedavisinde en önemli yaklaşım, özel eğitim ve davranış tedavileridir.  Tedavi planı kişiden kişiye değişmektedir,
İNSAN BİLGİSAYAR ETKİLEŞİMİ: BİLİŞSEL BOYUT III. İBE alanında etkileşimi anlamaya çalışan uzmanlar, özellikle şema ve zihinsel modeller üzerinde yoğunlaşırlar.
ÖZEL E Ğİ T İ MDE ETK İ L İ Ö Ğ RET İ M YÖNTEMLER İ KONU Ö ğ renmenin Aşamaları (Yanlışsız Ö ğ retim Yöntemleri) HAZIRLAYANLAR.
Bağlama ve Kapsam Kavramları
Yazılım Mühendisliği1[ 3.hft ]. Yazılım Mühendisliği2 Yazılım İ sterlerinin Çözümlemesi Yazılım Yaşam Çevrimi “ Yazılım Yaşam çevrimin herhangi bir yazılım.
ARAYÜZLER(INTERFACE) Öğr.Gör. Murat ASLANYÜREK. ARAYÜZ KAVRAMINA GİRİŞ  Arayüzler, soyut sınıflara benzer. Ancak yapı olarak bazı yönleriyle farklılıklar.
7. Hafta İçeriği 1.Kalıtım (Inheritance) 2.Soyut sınıf (abstract class) 3.Sealed sınıf(sealed class) 4.Çok biçimlilik (polymorphism)polymorphism.
Doç. Dr. Cemil Öz SAÜ Bilgisayar Mühendisliği Dr. Cemil Öz.
ÖZEL TANIMLI FONKSİYONLAR
IP Adresleme Mekanizması - Adres Sınıfları ve Altağlar Sistem Adresi ve Ağ Adresi Kaynaklar: Ilker Temir, Yrd.Doc.Dr. Sirin Karadeniz, Rize Univ. MYO.
ÖĞRETİM MATERYALLERİ HAZIRLAMA İLKELERİ
Sistem Tasarımı Sistem Tasarımı İş Koşul E H Yazılım Mühendisliği.
UML Unified Modeling Language
BİLİMSEL ARAŞTIRMA YÖNTEMLERİ ÜNİTE 3
BİLGİSAYAR DESTEKLİ EĞİTİM İÇİN ÖĞRETİM TASARIMI
METOTLAR.
Öğretimin Uyarlanması
MODEL YETERSİZLİKLERİNİ DÜZELTMEK İÇİN DÖNÜŞÜMLER VE AĞIRLIKLANDIRMA
TREATMENT/TRETMAN.
Ünite 9: Korelasyon Öğr. Elemanı: Dr. M. Cumhur AKBULUT.
Nesneye Dayalı Kavramlar Uygulama 1
PROGRAMLAMA DİLLERİNE GİRİŞ Ders 6: Sınıflar
BİYOİNFORMATİK NEDİR? BİYOİNFORMATİKTE KULLANILAN SINIFLAMA YÖNTEMLERİ
Nesneye Dayalı Kavramlar Uygulama 2
Nesneye Dayalı Programlama Temel Kavramlar Hüseyin ESKİ.
MATEMATİK DERSİ ÖĞRETİM PROGRAMI
MİMARLIK BÖLÜMÜ STATİK DERSİ
3.hafta METODLAR.
Soyut veri tipleri ve kapsülleme kavramları
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
Fragment.
Nesne yönelimli programlama desteği
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
BENZETIM 3. Ders Prof.Dr.Berna Dengiz Monte Carlo Benzetimi
Fonksiyonlar ve Alt Programlar
Değerler ve Değişkenler
NİŞANTAŞI ÜNİVERSİTESİ
Nesneye Dayalı Programlama 1
NİŞANTAŞI ÜNİVERSİTESİ
NİŞANTAŞI ÜNİVERSİTESİ
Bitirme Tezi/Mühendislik Tasarımı Proje Türkçe Başlığı
BLM113 Bilgisayar Bilimlerine Giriş
NİŞANTAŞI ÜNİVERSİTESİ
MTM216 GÖRSEL PROGRAMLAMA
MTM216 GÖRSEL PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
BLP 4210 PLATFORM BAĞIMSIZ PROGRAMLAMA
Algoritmalar ve Programlama II Ders 11: Kalıtım
Bilimsel Araştırma Yöntemleri
NİŞANTAŞI ÜNİVERSİTESİ
2. HAFTA BİLİMSEL ARAŞTIRMA YAKLAŞIMLARI
Sunum transkripti:

PHP ile Nesneye Yönelik Programlama Emre JILTA 1

Programlama Yaklaşımları Prosedür Yönelimli Diller (Fortran, Pascal) Problemi alt parçalara bölerek parçaların birleştirilmesi. Fonksiyon Yönelimli Diller (Lisp) Kod tekrarının engellenmesi. Mantık Yönelimli Diller (Prolog) Mantıksal terimler kullanılarak algoritma geliştirme. Nesne Yönelimli Diller (C++, C#, Java, PHP) Nesneleri ve birbirleriyle etkileşim hâlinde olan nesneler sistemini tanımlamak. 2

Yazılım Geliştirme Aşamaları Analiz Yazılımın “ne yapacağı” belirlenir Program hedefleri Tasarım Yazılımın “nasıl yapılacağı” belirlenir Kodlama Test Bakım 3

Temel İlkeler Sarmalama (Encapsulation) Kalıtım (Inheritance) Soyutlama (Abstraction) Çok Biçimlilik (Polymorphism) bkz. s. 20 bkz. s. 21 bkz. s. 22 bkz. s. 23

UML (Unified Modelling Language) Yazılım mühendisliğinde nesneye yönelik sistemleri modellemede kullanılan açık standart olmuş bir görsel modelleme dilidir. Model Gerçek dünyadaki bir olayın veya sistemin soyutlanması, basitleştirilmesi ve kavramlaştırılmasıdır. Modelleme Bir sistemi incelemek üzere o sistemin basit bir örneğinin yapılmasıdır.

UML Diyagramları Davranış Diyagramları Use-Case (Kullanıcı Senaryosu) Statechart (Durum) Activity (Etkinlik)

UML Diyagramları Yapısal Diyagramlar Class (Sınıf) Object (Nesne) Component (Bileşen) Package (Paket) Deployment (Dağılım) Composite Structure (Bileşik Yapı)

UML Diyagramları Etkileşim Diyagramları Sequence (Sıralama) Communication (İletişim) İnteraction Overview (Etkileşime Bakış) Timing (Zaman Akışı)

UML Diyagramları Use-Case Diyagramı Sistem Use case Aktör Aktör

UML Diyagramları Sınıf (Class) Diyagramı En üstte sınıf ismi bulunur. Özellikler (isteğe bağlı) Sınıfa ait tüm alanları içermelidir. Fonksiyonlar (isteğe bağlı)

UML Diyagramları Sınıf (Class) Diyagramı erişim_modu isim : tip [adet] = varsayılan değer / türetilmiş Statik alanların altı çizilir. Türetilmiş özellik: Diğer özellikler kullanılarak üretilirler.

UML Diyagramları Sınıf (Class) Diyagramı erişim_modu isim (parametreler) : döndürülen_tip - private Statik fonksiyonların altı çizilir. Parametre tipleri (isim: tip) şeklinde yazılır. Yapıcı ve değer olarak void döndüren fonksiyonlarda döndürülen_tip yazılmaz.

UML Diyagramları Sınıf (Class) Diyagramı Genelleme (kalıtım ilişkisi) Ortaklık (association – kullanma ilişkisi) Bağımlılık (dependency) Birliktelik (aggregation) Birleşme (composition)

UML Diyagramları Sınıf (Class) Diyagramı Hiyerarşiler, yukarıdan aşağıya (genelden özele) çizilir. Sınıflar arası genelleme ilişkisi ise özelleşmiş sınıftan genel sınıfa çizilen içi boş okla gösterilir.

UML Diyagramları Sınıf (Class) Diyagramı 1. Çokluk (multiplicity): kaç tane kullanıldığı *  0, 1 veya daha fazla 1  1 tane 2..4  2 ve 4 arasında 5..*  5 veya daha fazla 2. İsim: İlişkinin ismi 3. Yönlülük (navigability)

UML Diyagramları Sınıf (Class) Diyagramı Araba aggregation: "is part of" composition: "is entirely made of“ dependency: "uses temporarily" 1 aggregation 1 Motor Kitap composition 1 dependency * Piyango Bileti Rastgele Sayı Sayfa

UML Diyagramları Sınıf (Class) Diyagramı Siparis - tarih : string - ödendi : bool - siparisNo : long - sonrakiNo : long - tutar : float Musteri 1 - isim : string - adres : string 0..* + knGetir(): string + gonder() + kapat() 1..* KurumsalMusteri BireyselMusteri MalKalemi - miktar : int - tutar : float - irtibatKisi : string - krediNotu: string - krediLimit : float - kartNo: long + knGetir(): string + knGetir() : string

PHP 5 ve NYP Değişkenler (Özellik - Attribute) Fonksiyonlar (Metot - Method) Sınıflar (Class) Arayüzler (Interface) “new” anahtar sözcüğü “this” anahtar sözcüğü Sınıf özelliğine erişen değişken

Sınıflar (Classes) Değişken örüntülerinden oluşan veri türleridir. class makaleler { var $kategori; var $baslik; var $yazar; var $yayin_tarihi; function __construct ($kategori, $baslik, $yazar, $yayin_tarihi) { $this -> kategori = $kategori; $this -> baslik = $baslik; $this -> yazar = $yazar; $this -> yayin_tarihi = $yayin_tarihi; }

Sarmalama (Encapsulation) Özellik/metodların erişim yapısının belirlenmesidir. İlgili özellik/metoda sınıf dışından atama yapılamaz. Erişim belirteçleri: public : erişime açık özellikler/metodlar private : sadece sınıf içi erişim protected : kalıtım ile sınıflar arasında erişim

Kalıtım (Inheritance) Bir sınıfın başka bir sınıftan türemesidir. Türeyen sınıf, kendisinden türediği sınıftan özellik ve metodları miras alır. “extends” anahtar sözcüğü ile sınıf türetilir.

Soyutlama (Abstraction) İçinde en az bir soyut metod barındıran sınıf/nesnenin yerine getirmesi istenen temel işlevi metod düzeyinde belirlemek dışında ayrıntılara yer vermeyen yapılardır. Soyut bir sınıfın yeni (new) bir örneği oluşturulamaz ve soyut sınıfı genişleten sınıflar, soyut sınıftaki metodları aşırı yüklemek (override) zorundadır.

Çok Biçimlilik (Polymorphism) Farklı veri türleri değerleri düzgün bir arayüz kullanılarak ele alınması için izin veren bir programlama dili özelliğidir. Özetle, aynı adlı bir metodun farklı sınıflar tarafından kullanılmasıdır.

Arayüz (Interface) Soyut sınıflara (abstract classes) çok benzerler. Gövdeli yordam barındırmazlar. İçerdikleri metod ve özellikler public erişim belirtecine sahip olmak zorundadır.

Sihirli Metodlar (Magic Methods) __constructor() __destructor() __call() __callStatic() __get() __set() __isset() __unset() __clone() __toString() __sleep() __wakeup() __invoke() __set_state()

Hata Yakalama (Exception Handling) Hata yaşanması durumunda işlenmesi devam etmesini sağlar. try{ ..... } catch(Exception $e){ $e->getMessage(); getMessage();  getFile(); getLine(); getCode(); getPrevius(); getTrace(); getTraceAsString();

Kaynaklar http://yilmazkilicaslan.trakya.edu.tr/teaching.html http://ozlemaydin.trakya.edu.tr/d1.html http://tr.wikipedia.org/wiki/Nesne_y%C3%B6nelimli_programlama