Objecter Introduktion Webintegrator HF1 PHP Object orienteret.

Slides:



Advertisements
Lignende præsentationer
Kort om JavaScript Afvikles i browser på klienten Sendes fra server (php, asp, aspx, htm) eller startes i klient som htm/html fil. Skabelon: –”main” -
Advertisements

Dag 4 Fortryk-knap og videre til kasse Dagens program: 1.Fortryd-knappen ud for hver vare i kurven skal virke Formiddagens arbejde:
Velkommen til Softwarekonstruktion
Programmeringsparadigmer.
07 – Kort om OO Introduktion.
T1 – OPGAVE 14.2 LINETT & SABRINA Klasse Varer namespace Opgave_14._2 { class Varer { private string vare; private string farve; private double.
Indledende Programmering Uge 2 - Efterår 2006 Selektioner og interaktion mellem objekter Susanne Brix Lindros.
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
Programmeringsteknologi: Lektion 1
Object-Orienteret Programmering og Design. 2 Nordjyllands Erhvervakademi – 2009 Indhold “Classes, objects and object-oriented programming (OOP) play a.
Lavet af: Paw Petersen Design Design Class Diagram (DCD)
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Grundlæggende programmering Efterår 2001
Objektorienteret programmering
09 – Arv og polymorfi i java
Hvordan man skriver koden.
VOOP, 8 april Refleksion i objekt orienterede programmeringssprog Mandag 8/ Kasper Østerbye.
Structs Structs allokeres på stakken Memory-allokering sker ved oprettelse af variabel og ikke ved new Der kan defineres metoder incl. Constructor. Eksempel.
Dag 2 varekatalog Broadcast: session-id (samme session-id hver gang) Formiddagens arbejde:
Dag 3 Indkøbskurv Jeres sider er nu synlige på Dagens program:
Grundlæggende elementer i UML
Forelæsning 3.1 Collections Javas for-each løkke
GP6, Martin Lillholm 1 Grundlæggende Programmering (GP) Efterår 2005 Forelæsning 6 Slides ligger på nettet. Du er velkommen til at printe dem nu. Vi begynder.
Eksempel på realisering af domænemodel
GP 8, 24/ Grundlæggende programmering Efterår 2001 Forelæsning 8 onsdag 24/ kl. 9:15 – 12:00.
FEN KbP/seminar2: design11 Kontraktbaseret programmering Seminar 2 Klassedesign – grundprincipper Eksempler: Stack Dictionary.
Objekter og klasser Rasmus D. Lehrmann DM
Repetition: Introduktion til OOP med C# og .NET
Comparable Students German Students Composite Pattern State Pattern Observer Pattern Collections Interfaces Abstrakte klasser Design Patterns.
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Forelæsning 2.2 Tilstand og opførsel (repetition)
KF04 GRAY Item 2, 12, 22, 32, 42, 52. Consider a builder when faced with many constructor parameters Item 2.
03 – Udtryk og metoder. 2 NOEA2009Java-kursus – Udtryk og metoder Udtryk i Java Java har standard udtrykene… Værditildeling Subrutiner og funktionskald.
9. Interfaces. 2 Nordjyllands Erhvervakademi Objectives “Good class design starts with good application design — how many classes, do they relate.
Forelæsning 7.1 – repetition
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design klasse model ”Klassemodellen på vej til kode”
DAIMIIntroducerende objektorienteret programmering4B.1 Typer og tilstand i Java Typer, tilstand, erklæring, variable, primitive datatyper, reference- og.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
DAIMIIntroducerende objektorienteret programmeringkd.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
 Henrik Bærbak, 2000Introducerende objektorienteret programmering11B.1 Destilleret UML Oversættelse fra UML til Java.
DAIMIIntroducerende objektorienteret programmering4B.1 Grundlæggende og Reference Typer i Java Typer, tilstand, erklæring, reference- og værdi semantik,
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Polymorfi Abstrakte klasser, substitutionsprincippet, statisk og dynamisk type.
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
 Jens Bennedsen 2001Multimedie programmering10B.1 Interfaces En ren kontrakt.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge46 Ancestor.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
 Jens Bennedsen 2001Multimedie programmering3B.1 Specifikationer Betingelser, specifikationer og JavaDoc.
DAIMIIntroducerende objektorienteret programmering1 Et lille banksystem Modellering beskrevet ved et UML klassediagram.
 Jens Bennedsen 2001Multimedie programmering3A.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Jesper Mosegaard Multimedie Programmering E2003 MMProg uge44 Java til Lingo Klasser, statements og lister.
DAIMI, AUIntroducerende objektorienteret programmering11A.1 Destilleret UML Oversættelse fra UML til Java.
Variable og arrays Webintegrator HF1 PHP Object orienteret.
Opgave med funktioner Webintegrator HF1 PHP Object orienteret.
Form i PHP Webintegrator HF1 PHP Object orienteret.
Programmering I Java/C# Datatekniker Dit første projekt.
Password hashing Webintegrator HF1 PHP Object orienteret.
PHP Intro Webintegrator PHP. PHP Baggrund PHP er et server-side programmeringssprog anvendt til udvikling af dynamiske webapplikationer og websteder.
1587 Server - Blandet miljø Webintegrator HF1
WebApi service x.
1587 Server - Blandet miljø Webintegrator HF1
1587 Server - Blandet miljø Webintegrator HF1
1587 Server - Blandet miljø Webintegrator HF1
Klasser og objekter (Afsnit i manualen).
Dokumentation.
Præsentationens transcript:

Objecter Introduktion Webintegrator HF1 PHP Object orienteret

Class I object orienteret programmering benytter vi os af begrebet klasser. En klasse beskriver hvad objektet indeholder. Vi har tidligere set på hvordan vi kunne gemme oplysninger om en person i et assosiativ array, her gør vi det samme blot vha en klasse i stedet. I beskrivelsen af klassen fortæller vi hvilke attributter klassen skal have, det svarer til de keys eller index vi kender fra arrayet. Derefter opretter vi $p som et object (en variabel) at typen Person, og sætter værdier ind. © Mercantec 2014 class Person { public $navn; public $gade; public $nr; public $ ; } $p = new Person(); $p->navn = "Peter"; $p->nr = 2; $p->gade = "Vestergade"; $p-> = print (" "); print_r($p); print(" ");

Attributter (Public og private) Attributter er de variable som klassen indeholder. Hvis vi vil beskytte vores attributter så de ikke kan ændres sker det ved at skrive private foran navnet. Se hvordan vi her har gjort private, og bemærk fejlen i browser vinduet. class Person { public $navn; public $gade; public $nr; private $ ; } $p = new Person(); $p->navn = "Peter"; $p->nr = 2; $p->gade = "Vestergade"; $p-> = print (" "); print_r($p); print(" "); © Mercantec 2014

Constructor For alligevel at kunne bruge $ laver vi en konstruktør. Det er den funktion som hedder Person($ ). Konstruktøren tager som parameter og gemmer. Bag efter kan vi hente og anvende $ med funktionen get (), men vi kan ikke få lov til at ændre den. class Person { public $navn; public $gade; public $nr; private $ ; //Constructor function Person($ ){ $this-> = $ ; } function get (){ return $this-> ; } } //Kald til constructor $p = new $p->navn = "Peter"; $p->nr = 2; $p->gade = "Vestergade"; print_r($p); © Mercantec 2014

Methods Attributterne på en klasse er de parametre som siger noget om objektet (navn, kundenr…), men en klasse kan også indeholde metoder (funtioner) der er noget klassen kan gøre. I eksemplet herunder har vi tilføjet metoden sayHello($n). class Person { public $navn; ….. //Constructor function Person($ ){ $this-> = $ ; } function get (){ return $this-> ; } function sayHello($n){ printf(" Hello %s my name is %s ",$n,$this->navn); } } //Kald til constructor $p = new $p->navn = "Peter"; $p->nr = 2; $p->gade = "Vestergade"; $p->sayHello("Kurt"); © Mercantec 2014

Inheritance Når vi har lavet en klasse kan vi senere lave specialiseringer af klassen. I det viste tilfælde er klassen Person udvidet med klassen Ansat som har attributten $mdLoen og klassen Kunde som har attributten $kundeNr. Begge klasser arver $navn og metoden sayHello fra klassen Person. class Ansat extends Person{ public $mdLoen; function calcAarsLoen(){ return $this->mdLoen * 12; } } class Kunde extends Person{ public $kundeNr; } $a = new $a->navn = "Peter"; $a->mdLoen = 25000; print $a->calcAarsLoen(); print $a->sayHello("Jens"); $k = new $k->navn = "Kurt"; $k->kundeNr = 123; print $k->sayHello($a->navn); © Mercantec 2014

Constructor overload For klassen Person var $ private, og skulle angives når vi kaldte klassens constructor. $p = new Hvis vi ønsker at klassen Ansat skal have $mdLoen Private så den ikke kan ændres, må vi blot tilføje en construktor til Ansat, som tager både $ og $mdLoen som parameter. $mdLoen gemmer construtoren selv, medens $ sendes vidre til constructoren for Person. class Ansat extends Person{ private $mdLoen; function Ansat($mail,$mdLoen){ $this->mdLoen = $mdLoen; $this->Person($mail); } function calcAarsLoen(){ return $this->mdLoen * 12; } } $a = new $a->navn = "Peter"; print ($a->calcAarsLoen()); $a->sayHello("Jens"); print ($a->get ()); © Mercantec 2014

Relationer mellem klasser Klasser kan godt tage en anden klasse som attribut. I viste eksempel har vi lavet klassen Bil der har atributten $ejer. Inden vi opretter en bil laver vi Personen $p, der efter følgende sættes som ejer af bilen $b. class Bil { public $ejer; private $regnr; function Bil($regnr,$ejer){ $this->regnr = $regnr; $this->ejer = $ejer; } function visdata(){ printf(" Bil med registreringsnr: %s ",$this->regnr); printf(" Ejes af: %s ",$this->ejer->navn); } } $p = new $p->navn = "Peter"; $b = new Bil("AA123456",$p); $b->visdata(); © Mercantec 2014

UML Med et UML klassediagram kan man illustrere sammenhæng imellem klasserne. Diagrammet herunder viser hvordan Ansat og Kunde arver fra Person, men også hvordan Bil har relationer til Person. © Mercantec 2014