Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS. Objektumorientált programozás 2015-2016



Hasonló dokumentumok
Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 5.ELŐADÁS. Sütik és munkamenetek kezelése

Osztályok. 4. gyakorlat

Java programozási nyelv 5. rész Osztályok III.

Osztályok. construct () destruct() $b=new Book(); $b=null; unset ($b); book.php: <?php class Book { private $isbn; public $title;

Programozás II. 3. gyakorlat Objektum Orientáltság C++-ban

Interfészek. PPT 2007/2008 tavasz.

és az instanceof operátor

Java programozási nyelv 4. rész Osztályok II.

Java VIII. Az interfacei. és az instanceof operátor. Az interfészről általában. Interfészek JAVA-ban. Krizsán Zoltán

JAVA PROGRAMOZÁS 2.ELŐADÁS

OOP: Java 8.Gy: Abstract osztályok, interfészek

Széchenyi István Egyetem. Programozás III. Varjasi Norbert

Bevezetés a Python programozási nyelvbe

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Objektumorientált programozás C# nyelven

Már megismert fogalmak áttekintése

JAVA PROGRAMOZÁS 3.ELŐADÁS

Programozási alapismeretek 4.

Visual C++ osztály készítése, adattagok, és metódusok, láthatóság, konstruktor, destruktor. Objektum létrehozása, használata, öröklés.

Programozás. Objektum Orientált Programozás (OOP) Alapfogalmak. Fodor Attila

Programozás I. 5. gyakorlat. Szegedi Tudományegyetem Természettudományi és Informatikai Kar

Java VI. Miskolci Egyetem Általános Informatikai Tanszék. Utolsó módosítás: Ficsor Lajos. Java VI.: Öröklődés JAVA6 / 1

Pelda öröklődésre: import java.io.*; import java.text.*; import java.util.*; import extra.*;

PHP5 Új generáció (2. rész)

Programozás II. 2. gyakorlat Áttérés C-ről C++-ra

Objektumorientált szoftverfejlesztés alapjai

Programozási nyelvek Java

1. Mi a fejállományok szerepe C és C++ nyelvben és hogyan használjuk őket? 2. Milyen alapvető változókat használhatunk a C és C++ nyelvben?

Öröklés és Polimorfizmus

Alkalmazott Modul III 6. előadás. Objektumorientált programozás: öröklődés és polimorfizmus

Programozási nyelvek Java

Bevezetés a programozásba Előadás: Tagfüggvények, osztály, objektum

Globális operátor overloading

Objektumelvű alkalmazások fejlesztése 6. gyakorlat. Öröklődés, polimorfizmus. Öröklődés Kódismétlődés objektum-orientált szerkezetben

Virtuális függvények (late binding)

Abstract osztályok és interface-ek. 7-dik gyakorlat

C++ programozási nyelv

Objektumorientált programozás C# nyelven

Pénzügyi algoritmusok

Számítástechnika II. BMEKOKAA Előadás. Dr. Bécsi Tamás

Programozás módszertan p.1/46

Miután létrehoztuk, szeretnénk neki beszédesebb nevet adni. A név változtatásához a következőt kell tenni:

C++ programozási nyelv

Bevezetés a Programozásba II 8. előadás. Polimorfizmus Giachetta Roberto

WEB-PROGRAMOZÁS II. 1. Egészítse ki a következő PHP kódot a következők szerint: a,b,c,d: <?php. interface Kiir { public function kiir();

III. OOP (objektumok, osztályok)

C++ programozási nyelv Konstruktorok-destruktorok

Java V. Osztályszint. lyszintű ű tagok. Példányváltozó. Osztályváltozó. Általános Informatikai Tanszék Utolsó módosítás:

Web-technológia PHP-vel

Programozás III KIINDULÁS. Különböző sportoló típusok vannak: futó, magasugró, focista, akik teljesítményét más-más módon határozzuk meg.

Programozás BMEKOKAA146. Dr. Bécsi Tamás 7. előadás

Osztálytervezés és implementációs ajánlások

Osztálytervezés és implementációs ajánlások

C# osztálydeníció. Krizsán Zoltán 1. .net C# technológiák tananyag objektum orientált programozás tananyag

Smalltalk 3. Osztályok létrehozása. Készítette: Szabó Éva

Objektumorientált Programozás C++ ADATSZERKEZETEK ÉS ALGORITMUSOK 2. GYAKORLAT

3. Osztályok II. Programozás II

Programozás II gyakorlat. 8. Operátor túlterhelés

Programozási technológia

Osztály és objektum fogalma

Programozási nyelvek Java

Objektumok inicializálása

Bevezetés, a C++ osztályok. Pere László

Java III. I I. Osztálydefiníció (Bevezetés)

Java III. I I. Osztálydefiníció (Bevezetés)

Alkalmazott modul: Programozás 11. előadás. Objektumorientált programozás: öröklődés

Programozás. C++ osztályok. Fodor Attila. Pannon Egyetem Műszaki Informatikai Kar Villamosmérnöki és Információs Rendszerek Tanszék

WEBFEJLESZTÉS 2. ADATBÁZIS-KEZELÉS, OSZTÁLYOK

ELTE SAP Excellence Center Oktatóanyag 1

1. Template (sablon) 1.1. Függvénysablon Függvénysablon példányosítás Osztálysablon

Szoftvertechnológia 4. előadás. Objektumorientált tervezés: általánosítás. Giachetta Roberto. Eötvös Loránd Tudományegyetem Informatikai Kar

OOP #14 (referencia-elv)

OOP. Alapelvek Elek Tibor

PHP II. WEB technológiák. Tóth Zsolt. Miskolci Egyetem. Tóth Zsolt (Miskolci Egyetem) PHP II / 19

OOP #1 (Bevezetés) v :39:00. Eszterházy Károly Főiskola Információtechnológia tsz. Hernyák Zoltán adj.

Eseménykezelés. Szoftvertervezés és -fejlesztés II. előadás. Szénási Sándor.

ISA szimulátor objektum-orientált modell (C++)

Az osztályok csomagokba vannak rendezve, minden csomag tetszőleges. Könyvtárhierarhiát fed: Pl.: java/util/scanner.java

OOP alapok Egy OOP nyelvet három fontos dolog jellemez. egységbezárás ( encapsulation objektumoknak öröklés ( inheritance

Java és web programozás

Interfészek. Programozás II. előadás. Szénási Sándor.

Statikus adattagok. Statikus adattag inicializálása. Speciális adattagok és tagfüggvények. Általános Informatikai Tanszék

A szemantikus elemzés helye. A szemantikus elemzés feladatai. A szemantikus elemzés feladatai. Deklarációk és láthatósági szabályok

Származtatási mechanizmus a C++ nyelvben

Adatstruktúrák, algoritmusok, objektumok

Bevezetés a programozásba előadás: Öröklődés

Model View Controller alapú alkalmazásfejlesztés

Java VI. Egy kis kitérő: az UML. Osztály diagram. Általános Informatikai Tanszék Utolsó módosítás:

OBJEKTUM ORIENTÁLT PROGRAMOZÁS JAVA NYELVEN. vizsgatételek

JUnit. JUnit használata. IDE támogatás. Parancssori használat. Teszt készítése. Teszt készítése

Számítógép és programozás 2

Programozási nyelvek II. JAVA EA+GY 1. gyakolat

Visual Basic I. jegyzet

Helyes-e az alábbi kódrészlet? int i = 1; i = i * 3 + 1; int j; j = i + 1; Nem. Igen. Hányféleképpen lehet Javaban megjegyzést írni?

C++ programozási nyelv Struktúrák a C++ nyelvben

Programozás II gyakorlat. 6. Polimorfizmus

Programozási nyelvek II.: JAVA

Java és web programozás

Programozási nyelvek Java

Kivételkezelés, beágyazott osztályok. Nyolcadik gyakorlat

Átírás:

Dr. Pál László, Sapientia EMTE, Csíkszereda WEB PROGRAMOZÁS 2.ELŐADÁS 2015-2016 Objektumorientált programozás

OOP PHP-ben 2 A PHP az 5.0-as verziójától megvalósítja az OO eszközrendszerét OO eszközök: Osztályok Objektumok Öröklés Interfészek

OOP PHP-ben 3 Miért fontos ismerni? Bonyolult függvények használata nehezíti a programírást A CMS rendszerek (Joomla, Drupal, Wordpress, stb.), egyéb keretrendszerek (CodeIgniter, Symfoni, Zend, stb.) ezen módszerrel vannak megvalósítva Az OOP a PHP-ben hasonló felépítéssel rendelkezik, mint más OOP alapú nyelvekben (pld. Java, C#)

Osztály 4 Az osztályokat a class kulcsszóval kezdjük, ezt követi az osztály neve, majd a két kapcsos zárójel, amelyek között szerepelnek a tulajdonságok és a hozzájuk tartozó metódusok Szintaxis:

Osztály 5 Példák osztálydeklarációkra:

Osztály példányosítása 6 Példa: Új példány: $peldany = new osztalyom(); Az objektumok tagjait a -> operátorral lehet elérni A tagfüggvényeken belül az aktuális objektumra a $this speciális változóval hivatkozhatunk

7 Osztály példányosítása Példa

Tagváltozók láthatósága 8 public $veznev; Elérhető kívülről, az objektumváltozón keresztül Kívülről: $pityu->veznev Tagfüggvényből: $this->veznev private $szamlaszam; Csak az objektum tagfüggvényeiből érhető el Kívülről: $jani->szamlaszam Tagfüggvényből: $this->szamlaszam HIBA!

Konstruktorok 9 Konstruktor: egy speciális metódus, amely egy objektum példányosítása során automatikusan meghívódik, akkor is ha azt nem definiáltuk Fogadhat paramétereket is: ezeket a new parancsnál az osztály neve után kell megadni Példa:

10 Konstruktorok Példa

Destruktorok 11 Objektumok megsemmisülése után hívódik meg (ha nem létezik több referencia az objektumra) Szintaxis: Példa:

Statikus tagok 12 Alap esetben az osztály tagjai az objektumokhoz kapcsolódnak: Annyi példányban léteznek, ahány objektum van az adott osztályból, és a tagváltozók értéke objektumonként eltérhet A statikus tagok az osztályhoz kapcsolódnak Csak egy példány létezik belőlük az egész programban, erre hivatkozunk mindenhol Nem szerepelhet a $this kifejezés, a statikus metódusban

13 Statikus tagok - Példa

Statikus tagok elérése 14 Statikus tagok elérésére a hatókör (::) operátort használjuk A hatókör operátor bal oldalán szerepelhet egy osztálynév, illetve osztályon belüli használatkor a self és parent kulcsszó. self: az osztályon belül önmagára vonatkozik parent: az ősosztályra vonatkozik Példa: if (strlen($password) >= self::$minimumpasswordlength) if (User::ValidatePassword($password))

15 Öröklődés

Öröklődés 16 Az öröklődés lehetővé teszi, hogy egy osztály örökölje egy másik osztály (szülőosztály) tagjait, majd ezeket kiegészítse a saját tagjaival Megjegyzések: Egy osztály csak egy szülőosztálytól örökölhet Ha a szülő szintén örököl tagokat a saját szülőosztályától, akkor azokat is továbbadja Ha az osztály egy tagjának neve megegyezik egy örökölt tag nevével, akkor az felülírja az örökölt tagot

Öröklődés 17 Szintaxis: Példa: Class Shape{ } Class Circle extends Shape { }

18 Öröklődés 1.Példa

19 Öröklődés 2.Példa

20 Öröklődés 2.Példa

21 Öröklődés 2.Példa

22 Öröklődés 2.Példa

23 Öröklődés 2.Példa

24 Öröklődés 2.Példa

25 Öröklődés 2.Példa

Absztrakt metódus, osztály 26 Absztrakt metódus: üres metódus, mely csak örökítési célt szolgál Absztrakt osztály: absztrakt metódust tartalmazó, nem példányosítható osztály Szintaxis: abstract class AbstractClass{ } abstract public function AbstractFunc();

27 Absztrakt osztály Példa

Polimorfizmus 28 Polimorfizmus (polymorphism, többalakúság) Azt jelenti, hogy ugyanarra az üzenetre különböző típusú objektumok különbözőképpen reagálnak minden objektum a saját metódusával

29 Polimorfizmus - Példa

30 Polimorfizmus - Példa

Objektum osztályának vizsgálata 31 Szintaxis: objektum instanceof osztály Visszaadja, hogy az objektum példánya-e a megadott osztálynak, vagy leszármazottjának Példa:

Objektum osztályának vizsgálata 32 Példa (folytatás):

Osztály és objektum függvények 33 get_class_vars(), get_object_vars(): visszaadja egy osztály illtve egy objektum tulajdonságainak tömbjét get_class(): egy objektum osztályának a nevét adja meg class_exists(): megvizsgálja, hogy definiált-e az osztály get_parent_class(): visszaadja egy objektum vagy osztály szülő osztályát is_a(): megvizsgálja, hogy az objektum leszármazottja vagy tagja-e egy osztálynak is_subclass_of(): megvizsgálja, hogy egy objektum egy megadott osztálynak egy alosztályához tartozik-e

Metódus túlterhelés (overloading) 34 Nem támogatja a PHP Megoldás: _call függvény használata Példa:

35 Metódus túlterhelés (overloading)

36 Projekt témák

WordPress projekttéma javaslatok 37 Webshop bővítmányek: WP e-commerce Plugin WP Online Store Woocommerce Plugin eshop Plugin Cart66 Lite Jigoshop WordPress e-commerce Plugin Quick Shop Plugin YAK shopping cart Plugin Zingiri WebShop v 2.5.9 magyar fordítás Leírás magyarul a fenti bővítményekről: http://efrud.hu/a-nagy-wordpress-webaruhaz-bovitmeny-szemle/

WordPress projekttéma javaslatok 38 Étterem sablon: Confit (http://theme.wordpress.com/themes/confit/) Easy Restaurant Menu Manager WPPizza ReDi Restaurant Reservation A témával kapcsolatosan itt lehet még olvasni: Online rendelés/kölcsönzés: Checkfront Online Booking System Rezgo Online Booking A témával kapcsolatosan itt lehet még olvasni: http://www.moeseo.com/10-best-wordpress-plugins-for-a-restaurantwebsite/ http://www.wpmayor.com/plugin-reviews/best-wordpress-bookingplugins/

Más témák 39 Közgáz alapú téma webes megvalósítása (lízing, mérleg készítés, hitel kalkulátor, stb) Online-bank szimulátor Befektetés kezelő rendszer megvalósítása Házi feladat beküldő/ellenőrző rendszer On-line jelenléti napló Diákok nyilvántartása bentlakásban Raktárkezelő webes alkalmazás elkészítése PHP alapú webáruház megvalósítása egy gyakorlati példán keresztül Használtautó-kereskedés nyilvántartó rendszere Online munkaközvetítő készítése Gépjármű nyilvántartó PHP-ben