Presentasjon lastes. Vennligst vent

Presentasjon lastes. Vennligst vent

Høgskolen i Oslo Web-programmering Objektorientert programmering i PHP del 2.

Liknende presentasjoner


Presentasjon om: "Høgskolen i Oslo Web-programmering Objektorientert programmering i PHP del 2."— Utskrift av presentasjonen:

1 Høgskolen i Oslo Web-programmering Objektorientert programmering i PHP del 2

2 I dag l Litt mer avansert bruk av objektorientert PHP l Gjennomgang av kode. l Oppgaveløsning –Ukeoppgaver. –Oblig 1 leveres 6. mars

3 Objektorientert PHP forts. l Omfang (Scope) på attributter og metoder l Get, Set funksjoner l Arv l Bruk av sessions

4 Objekter og metoder/funksjoner tank/$this->forbruk; return $rekkevidde; } } $volvo = new bil(); $volvo->tank = 80; $volvo->forbruk = 0.7; $rekkeviddeImil = $volvo->rekkevidde(); echo "Rekkevidden til bilen er "; echo number_format($rekkeviddeImil,0)." mil"; ?> Rekkevidden til bilen er 114 mil

5 Omfang (scope) på attributter l Public (åpen utenfor klassen) l Private (kan bare brukes inne i klassen) l Protected (brukes inne i klassen og arvede klasser) l Const (konstant) l Var (samme som public)

6 Eksempel på omfang av variabler tank = 80; $volvo->forbruk = 0.7; // dette går ikke! $volvo->antallHK = 230; echo $volvo->antallHjul; ?> Vil resultere i en ”fatal” error når det kjøres

7 Omfang av metoder (functions) l Public (åpen utenfor klassen) l Private (kan bare brukes inne i klassen) l Protected (brukes inne i klassen og arvede klasser) l Ikke noe før function = public

8 Eksempel, omfang metoder tank/$this->forbruk; return $rekkevidde; } public function rekkevidde() { $res=this->beregn(); return $res; } $volvo = new bil(); $volvo->tank = 80; $volvo->forbruk = 0.7; echo $volvo->rekkevidde(); echo $volvo->beregn(); ?> Vil resultere i en ”fatal” error når det kjøres

9 Bruk av private attributter l Bruk Privat for alle attributter i klasser l Skriv så egne metoder for å operere på disse l Eks: l Private $navn l Public Function set_navn($navn) l Public Function get_navn();

10 Eksempel, get, set tank = $innTank; } public function get_tank() { return $this->tank; } $volvo = new bil(); $volvo->set_tank(80); echo $volvo->get_tank; ?> l Dette for å sikre at all manipulasjon av variabelen tank skjer via metoder. l Kan utvide disse

11 Eksempel, get, set, utvidelse 0) { $this->tank = $innTank; } public function get_tank() { return $this->tank; } $volvo = new bil(); $volvo->set_tank(80); echo $volvo->get_tank; ?> l Nå kan det bare settes inn lovlige verdier l En tank kan ikke inneholde et negativt tankvolum.

12 Arv l Kan definere en klasse som arver egenskaper (metoder og attributter) fra en annen klasse. l Eksempel: –En klasse bil –En klasse lastebil som arver egenskapene til bil- klassen (extends) –Lastebil-klassen kan ha egne egenskaper og benytte egenskapene til bil-klassen.

13 Eksempel, arv lasteKapasitet=$last; } class bil { private $tank; public function set_tank($tank) { $this->tank=$tank; } public function get_tank($tank) { return $this->tank; } $volvo = new lastebil(); $volvo->set_tank(70); $volvo->set_lasteKapasitet(1000); ?> Lastebil $lastekapasitet Bil $tank set_tank($tank) get_tank($tank) set_lastekapasitet($last)

14 Eksempel, arv, bruk av constructor lasteKapasitet=$last; } public function get_lasteKapasitet() { return $this->lasteKapasitet; } class bil { private $tank; public function __construct($tank) { $this->tank=$tank; } public function get_tank() { return $this->tank; } $volvo = new lastebil(1000,70); echo "Tanken er ".$volvo->get_tank(); ?>

15 Statiske metoder (som i Java) l Brukes der det ikke er hensiktsmessig å opprette objekter l Generelle klasser/metoder l Kanskje litt overkill da man bare kan bruke en funksjon. class filhandterer { // håndterer all filskriving static function skriv_fil($tekst) { $filref=fopen("kjoretoy.txt","a"); $ok = fwrite($filref,$tekst); } // kall til denne klassen/metoden: filhandterer::skriv_fil($stringTilFil);

16 Sessions og objekter l Kan legge objekter inn i sessionvariable l Husk å ha alle klasse definisjonene i alle filene som bruker objektene i sessionene. –Samle gjerne alle klassene i en fil og inkluder den i alle de andre l Noen mer komplekse strukturer fungerer ikke som sessionsvariable –Bla. referanser til objekter.


Laste ned ppt "Høgskolen i Oslo Web-programmering Objektorientert programmering i PHP del 2."

Liknende presentasjoner


Annonser fra Google