Objektbaserad programmering

Relevanta dokument
Loopar och objekt i JavaScript

Formulär, textsträngar och en del annat

1ME323 Webbteknik 3 Lektion 6 API. Rune Körnefors. Medieteknik Rune Körnefors

Introduk+on +ll programmering i JavaScript

Textsträngar och formulär i JavaScript

Labora&on 2 Funk&oner, if och loop övningar/uppgi:er

Laboration 3 HTML och struktur samt frågorna A - C övningar/uppgifter

Introduk+on +ll JavaScript if- sats, funk+oner, bilder

Labora&on 1 Variabler och beräkningar övningar/uppgi9er

E03 "Day 3: 2:00 p.m 3:00 p.m"

Strukturering med XML och DTD

E02 "The Review" Föreläsning 2, HT2013 Grunderna, repetition. Johan Leitet. Kurs: 1dv403 Webbteknik I

Classes och Interfaces, Objects och References, Initialization

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

DAT043 - Föreläsning 7

En snabb titt på XML LEKTION 6

Labora&on 3 HTML och struktur övningar/uppgi:er

Objektsamlingar i Java

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Att förstå hur man konstruerar modulära program Att kunna skapa nya funktioner Att förstå hur data skickas mellan funktioner

JAVASCRIPT. Beteende

Arbeta med databas. Översikt. Lektion 1: Arbeta med Entity Data Models. Arbeta med Entity Data Models. LINQ (Language Integrated Query).

EDA095 JavaScript. Per Andersson. Maj 4, Lund University Per Andersson EDA095 JavaScript Maj 4, / 23

INTRODUKTION TILL ANGULAR JS

Optimering av webbsidor

OOP Objekt-orienterad programmering

Modeller, Objekt och Klasser

E13 Behind the Wild. Dagens agenda. Cookies Context/ändra context Augmentation (förstärkning) Klassiskt arv Att låna metoder Namespaces Postludium

Laboration 6 Formulär och stränghantering övningar/uppgifter

Labora&on 5 Dynamisk HTML och &mers övningar/uppgi=er

E13 "Behind the Wild"

Struktur & Layout med CSS

Motivation. Programmeringsuppgift: En första ansats: Lagra info om anställda Håll reda på varje anställds närmaste chef. som också är en anställd!

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

Objektorienterad programmering

Personal Objektorienterad programmeringsmetodik 5DV081 5DV109

Objektorienterad Programmering DAT043

E12 "Evil is going on"

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14

Innehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och

Innehåll. Introduktion till objektorientering. OOP (objektorienterad programmering) Objekt, instanser, klasser

Användarcentrerad design Interak3on och informa3on

729G74 IT och programmering, grundkurs. Tema 2, Föreläsning 1 Jody Foo,

Java, klasser, objekt (Skansholm: Kapitel 2)

Labora&on 3 Objekt i JavaScript övningar/uppgi:er

TDDC74 Programmering: Abstraktion och modellering Tentamen, lördag 29 augusti 2015, kl 8 12

TUTORIAL: KLASSER & OBJEKT

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Johannes Åman Pohjola, 2017

JS & beteende. TNMK30 - Elektronisk publicering

Innehåll. JavaScript - Grundkurs. Vad är JavaScript? Vad är JavaScript? Vad behövs? Lite historia

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

Dynamisk bindning och polymorfism

Föreläsning 8: Exempel och problemlösning

E07 "Greased Lightning"

JavaScript. Innehåll. Historia. Document object model DHTML. Varför Javascript?

Medieteknologi Webbprogrammering och databaser MEB725, 5p (7,5 ECTS) Klientprogrammering JavaScript Program på flera sidor

DOM (Document Object Model) är modellen efter vilken en webbläsaren är uppbyggd. Alla objekt/element i webbläsaren finns hierarkiskt ordnade i DOM.

Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper

Introduktion Översikt av kursen och området webbteknik

Användarcentrerad design Structure plane (tredje nivån)

Exempel: Exempel: Exempel: Exempel: $djur=array("ko","katt","älg"); foreach ($djur as $d) { echo $d. " "; } Resultat. ko katt älg

Programmering för webben

Kursplanering Utveckling av webbapplikationer

OOP Objekt-orienterad programmering

Programmeringsteknisk översiktskurs för yrkeshögskoleprogram

Övningar i JavaScript del 3

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Djup/ytlig kopiering av containrar med referensobjekt. Allmänt. Vad ska container innehålla?

Programmeringsteknik I. Föreläsning 3: Klasser och arrayer

TDDC74 FÖRELÄSNING 9 ANDERS MÄRAK LEFFLER IDA/HCS

Övningar i JavaScript del 5

1ME323 Webbteknik 3 Lek0on 6 API. Rune Körnefors. Medieteknik Rune Körnefors rune.kornefors@lnu.se

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Arrayer. results

Tentamen *:58/ID100V Programmering i C Exempel 3

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Länkade strukturer. (del 2)

Föreläsning 4. CSS Stilmallar för webben

Språk för webben introduk4on 4ll HTML

Tentamen. Programmeringsmetodik, KV: Java och OOP. 17 januari 2004

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 11 Jonas Lindgren, Institutionen för Datavetenskap, LiU

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Föreläsning 9 Innehåll

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 16 Arv. Jan Lönnberg T Grundkurs i programmering

TDDC74 Programmering: Abstraktion och modellering Dugga 3, kl 14 16, 25 mars 2015

! HTML Formulär! JavaScript! Syntax! Events! DOM. ! URL variabler i en query string (get) ! HTTP post request (post)

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Objektorienterad programmering Föreläsning 5

Konstruktion av datorspråk

Agenda. Objektorienterad programmering Föreläsning 13

Rekursion. Att tänka rekursivt Att programmera rekursivt i Java Exempel. Programmeringsmetodik -Java 254

Exemple på Tentauppgifter Webbprogrammering

Subtyping, co- och contra-variance. Objekt-orienterad programmering och design Alex Gerdes, 2016

Programmering för språkteknologer II, HT2014. Rum

Lösningar för tenta 3 DAT043,

Transkript:

1ME323 Webbteknik 3 Lektion 4 Objektbaserad programmering Rune Körnefors Medieteknik 1 2018 Rune Körnefors rune.kornefors@lnu.se

Agenda Objekt i JavaScript Strukturering av data Strukturering av programkod 2

Från föreläsning 3 i 1ME322 Objekt Gruppering av: egenskaper (variabler) metoder (funktioner) instans objektklass instans instans instans = new Object() d = new Date(); x = new Date(2016,1,9); s1 = new String("abc"); s2 = "abc"; r = Math.random(); McPeak, J. & Wilton, P. (2015) Beginning JavaScript, Fifth Edition, John Wiley & Sons, Inc., s.100f 3

Allt är objekt <img src="bild.jpg" alt="bildbeskrivning"> <a href="somewhere.htm" target="_blank">gå dit</a> p {color:#de4; font-size:18px;} s1 = "en text"; n = s1.length; d = new Date(); y = d.getfullyear(); elems = document.getelementsbyid("abc").getelementsbytagname("p"); elems[i].innerhtml = "en text"; elems[i].style.color = "#3C9"; movie* category [attr] title year 4 <movie category="western"> <title>sheriffen</title> <year>1952</year> </movie> <movie> </movie>

Från lektion 3 DOM (Document Object Model) Events Node Style Document Element Attr CharacterData HTMLDocument HTMLElement Text Comment a body img document style element element element attr event text text nodevalue element element nodevalue text text style nodevalue nodevalue 5

Generellt objekt {egenskap1:data, egenskap2:data, } Skapa ett generellt objekt obj = new Object(); obj.e1 = x; obj.e2 = y; obj.e3 = z; obj= {} obj.e1 = x; obj.e2 = y; obj.e3 = z; obj= {e1:x,e2:y,e3:z} Egenskaper obj.egenskap = data Variabel som är referens till objektet Namn på egenskapen Kan vara enkel data som text, tal, etc. eller ett objekt 6

Objekt och variabler a = 123; b = "text"; x = { e1:56; e2:78; }; a b 123 text x e1:56 e2:78 c = a; y = x; c y 123 7

Garbage Collection x = { e1:56; e2:78; }; y = x; x y e1:56 e2:78 x = null; x y e1:56 e2:78 y = null; x y e1:56 e2:78 Automatisk "garbage collection" då det inte längre finns någon referens till objektet. 8

lekt4-ex1-1 lekt4-ex1-2 lekt4-ex1-3 Exempel 1 Skapa objekt på några olika sätt 1. Tre olika objekt 2. Array av objekt 3. Lägg till underobjekt Struktur movie title year director Jämför med XML <movie> <title> </title> <year> </year> <director> </director> </movie> McPeak, J. & Wilton, P. (2015) Beginning JavaScript, Fifth Edition, John Wiley & Sons, Inc., s.144f 9

lekt4-ex2 Exempel 2 Funktioner för att lägga till och ta bort filmer movielist push(m) addmovie() film film film film film obj movielist movielist splice deletemovie() film film film film film film film film film film 10

lekt4-ex3 Exempel 3 Reference Type "Constructor function" för att skapa ett nytt objekt "Mall" för objektet // Constructor function MyObject(d1,d2,d3) { this.e1 = d1; this.e2 = d2; this.e3 = d3; } obj= new MyObject(x,y,z); McPeak, J. & Wilton, P. (2015) Beginning JavaScript, Fifth Edition, John Wiley & Sons, Inc., s.148f 11

lekt4-ex4 Exempel 4 Sammansättning av flera objekt Beroende mellan objekt movielist film film film film film namn namn namn directorlist 12

Strukturera programkoden i objekt Objekt med endast data var objekt1 = { egenskap1: "data", egenskap2: "data", egenskap3: "data" } Objekt med både data och funktioner (egenskaper och metoder) var objekt2 = { egenskap1: "data", egenskap2: "data", egenskap3: "data", Obs! Kommatecken mellan varje egenskap och metod. Ej efter sista. } metod1:function() { // programsatser }, metod2:function() { // programsatser }, metod3:function() { var a = objekt1.egenskap2; objekt2.egenskap3 = 5; objekt2.metod1(); } 13

lekt4-ex5 Exempel 5 Strukturering av programkoden som objekt Dela upp i objekt Globala variabler görs om till egenskaper i objekten Varje objekt har en init-funktion Övriga funktioner fördelas mellan objekten Döp om egenskaper och metoder, så de blir kortare och passar ihop med objektens namn directors list, formelem, init(), add() movies list, formelem, reselem, init(), write(), add(), delete() egenskaper metoder objekt global init-funktion som anropar directors.init() och movies.init(). 14

lekt4-ex6 Exempel 6 Spara objekt i localstorage Objekten måste göras om till textsträngar Alternativ 1: firstname lastname firstname lastname firstname lastname firstname,lastname;firstname,lastname;firstname,lastname Alternativ 2: directorlist firstname;firstname;firstname lastname;lastname;lastname 15