Objektorientert programmering i PHP del 2

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Bygg web på Opplæring Presentasjon Idium AS Bygg web på Opplæring.
Høgskolen i Oslo Webprogrammering Tilstandsbevaring Sessions og cookies.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Filbehandling (Kapittel 8)
Høgskolen i Oslo Webprogrammering Grunnleggende PHP.
JSP presentasjon Arild Strømhylden NTNU 26 June 2014.
Java database persistence framework.  SELECT by FROM postnr AS p WHERE ( SELECT DISTINCT postnr FROM addr AS a WHERE user.adrId = a.Id ) = p.postnr;
Introduksjon til objektorientert programmering i PHP
TIF seminar -Visual Basic (VBA) og RExcel Elisabeth Orskaug Norsk Regnesentral Oslo, 8. november 2011.
Uke 8 - Mer om: Objekter, klasser og pekere
Webprogrammering SQL og databaser del 2.
1 Litt om OO og programmering Arne Maus. 2 OO og Java (og C++, C#)  Arven fra Simula  Programstruktur i Java  Generering av objekter  Beskyttelse.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Høgskolen i Oslo Webprogrammering Introduksjon til Java-scripting.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Objektorientert programmering Objektorientert systemutvikling
IS-102 Klassedefinisjoner
#include Ligner litt på import i java. Setter inn hele fila stdio.h i programteksten. Definerer en del io funksjoner slik at signaturen er kjent. I dette.
© Lars-Erik Kindblad.  Et platformuavhengig verktøy for å automatisere build prosesser.  Støttes og drives av Apache Software Foundation.  Kommer ferdig.
C# for javaprogrammerere
Operativsystemer.  Tilstandsmaskiner kalles på engelsk Finite State Machines.  Tilstandsmaskiner er en metode til å beskrive systemer med logisk og.
Feilhåndtering. Feil er uunngåelige! Erfaring viser at feil i dataprogrammer som består av mer enn noen få linjer ikke er til å unngå. For å få et godt.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 2.10 Default values – standardverdier ved oppstart MER OM: Sub-prosedyrer og sub-funksjoner.
Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse.
Objekt Orientert Programmering (OOP). Objektorientering (OO)1/6 Objektorientering er en grunnleggende måte å organisere komplekse fenomener på.
Læring og tenkning Systemutvikling er læring Gjensidig respekt og samarbeid Følge en konkret oppskrift Velge blant flere oppskrifter Nå målet uten oppskrift,
Strukturerende elementer i UML
Introduksjon til Java 5.0. Hva er nytt i 5.0? Generiske typer For-løkke med iterator (for-hver løkke) Automatisk innpakking av primitive typer Metadata.
Singleton & Adapter Pattern Gruppe 3. Singleton Pattern Sørger for at en klasse kun kan ha en instans Vanligvis implementert med globale variabler –Singleton.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
INF 295 Algoritmer og datastrukturer Forelesning 2 - kapittel 1 Hans F. Nordhaug (Ola Bø)
1 Arrayer og form(ularer) (Kapittel 4). 2 Mål  Forstå assosiative og superglobale arrays  Kunne behandle webformularer (forms)  Kjenne forskjellen.
1 Organisering av kode (Kapittel 5). 2 Mål ● Forstå inkludering er og hvilken gevinst det gir ● Lære å utvikle egne funksjoner ● Forstå variablenes virkemåte.
Høgskolen i Oslo Webprogrammering Filbehandling i PHP.
Høgskolen i Oslo Web-programmering Feilhåndtering i PHP.
Høgskolen i Oslo Webprogrammering Ajax og PHP. I dag l Hvordan få en bedre brukeropplevelse via Ajax- script l Gjennomgang av kode l Oppgaveløsning på.
Høgskolen i Oslo Webprogrammering Java-scripting 2 Klientvalidering.
Stringmanipulasjon, RegEx og validering
Dynamiske nettsider PHP Del 1 – variable. PHP  PHP (Personal Home Page)  Fritt tilgjengelig programmeringsspråk  åpen kildekode  Plattformuavhengig.
Java 11 Programmering med og uten objekter: hva er forskjellen?
VI LAGER EN PLATEBUTIKK
Jæger: Robuste og sikre systemer INF150 Programmering mandag 18.9 Lesing av data fra fil og skriving av data til fil. Side 411 – 4.. Kap 4.
Programmering sif8005. Praktisk informasjon  Innleveringsfrist øvinger: mandag kl  Alle øvinger er obligatoriske  Studass tilgjengelig 6 timer.
CORBA Noen hull som må fylles: ORB Object Adapters CORBA services IDL Factory Objects.
Testing av objektorienterte systemer Testplanlegging
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Objekt, Instanser og referanser + litt til. Objekter  Instanser  Kan sees på som det samme. Personen Per kan være både et objekt og en instans av klassen.
Objektorientert utforming In 140 Sommerville kap. 12.
Android-Programmering Våren Introduksjon ActionBar Behovet for forandring Hva er Android ActionBar Tilpasning av ActionBar ActionBar - versjonshåndtering.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF Objektorientert programmering
Object  Klassen i java  Alle klasser arver fra denne om ikke noe annet blir spesifisert  ArrayList.add(Object instans)  Alle elementer formes til Object.
Ekstra mange tips til Oblig 3! 12. mars 2007 Are Magnus Bruaset og Arild Waaler Inst. for informatikk, UiO.
Jæger: Robuste og sikre systemer INF150 Programmering mandag 25.9 MER OM: Sub-prosedyrer og sub-funksjoner Kap 4.
Upload av bildefiler Utdrag fra ImageIn Ved Kirsten Klæbo Tirsdag 25/11-03.
Objektorientert utforming In 140 Forelesning Nr 11 Sommerville kap 12 – del 1.
Inf1000 (Uke 5) Arrayer, filer og tekst
INF1000 (Uke 11) Programmering
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Kapittel 9 Polymorfi. 9.1 Sein binding Ofte er det perfekt match mellom typen til ein variabel og objektet han refererer til ChessPiece bishop;... bishop.
Objektorientert design In 140 Sommerville kap 12 – del 1.
Android Programmering 10 timers kurs. Forutsetninger Noe bakgrunn i Java eller et annet objektorientert språk Litt peiling på XML Vi bruker Windows 7.
Arv Gjenbruk. Begreper Super Overriding – Samme signatur Polymorfi – «en ting kan bety mange ting»
Lokale variable Hvis vi trenger å ta vare på en verdi, inne i en metode kan vi definere en lokal variabel: int amount = 0; vi må fortelle hvilken type.
Triks Avslutt alle klasser, metoder og løkker samtidig som du lager dem. Deklarer alle variablene/referansene på begynnelsen av klassen. Hvis du definerer.
IS-102 Interaksjon med objekter
Objektorientert programmering i Java
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Objektorientert programmering i PHP del 2 Web-programmering Objektorientert programmering i PHP del 2

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

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

Objekter og metoder/funksjoner <?php Class bil { public $tank; public $forbruk; function rekkevidde() $rekkevidde = $this->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

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

Eksempel på omfang av variabler <?php Class bil { public $tank; private $forbruk; var $antallHK; const $antallHjul = 4; } $volvo = new bil(); $volvo->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

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

Eksempel, omfang metoder <?php Class bil { public $tank; public $forbruk; private function beregn() $rekkevidde = $this->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

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

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

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

Arv Kan definere en klasse som arver egenskaper (metoder og attributter) fra en annen klasse. 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.

Eksempel, arv <?php class lastebil extends bil{ private $lasteKapasitet; public function set_lasteKapasitet($last) { $this->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); ?> Eksempel, arv Lastebil Bil $tank $lastekapasitet set_tank($tank) get_tank($tank) set_lastekapasitet($last)

Eksempel, arv, bruk av constructor <?php class lastebil extends bil{ private $lasteKapasitet; public function __construct($last,$tank) { parent:: __construct($tank); $this->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(); ?> Eksempel, arv, bruk av constructor

Statiske metoder (som i Java) 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); Brukes der det ikke er hensiktsmessig å opprette objekter Generelle klasser/metoder Kanskje litt overkill da man bare kan bruke en funksjon.

Sessions og objekter Kan legge objekter inn i sessionvariable 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 Noen mer komplekse strukturer fungerer ikke som sessionsvariable Bla. referanser til objekter.