Sunuyu indir
Sunum yükleniyor. Lütfen bekleyiniz
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
Benzer bir sunumlar
© 2024 SlidePlayer.biz.tr Inc.
All rights reserved.