Sunum yükleniyor. Lütfen bekleyiniz

Sunum yükleniyor. Lütfen bekleyiniz

PHP ile Nesneye Yönelik Programlama

Benzer bir sunumlar


... konulu sunumlar: "PHP ile Nesneye Yönelik Programlama"— Sunum transkripti:

1 PHP ile Nesneye Yönelik Programlama
Emre JILTA 1

2 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

3 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

4 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

5 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.

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

7 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ı)

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

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

10 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ı)

11 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.

12 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.

13 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)

14 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.

15 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)

16 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

17 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

18 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

19 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; }

20 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

21 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.

22 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.

23 Ç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.

24 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.

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

26 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();

27 Kaynaklar http://yilmazkilicaslan.trakya.edu.tr/teaching.html


"PHP ile Nesneye Yönelik Programlama" indir ppt

Benzer bir sunumlar


Google Reklamları