ObjektOrienterad analys och design. SVP Vt2009. Introduktionsföreläsning måndag 6 april kl. 10-12 Presentation av medverkande lärare Kursinformation (se.

Slides:



Advertisements
Liknande presentationer
Sätt kryss vid ett av följande alternativ:
Advertisements

Inloggning Mobil Administration Finns på Ange ditt användarnamn och PIN-kod. Klicka på OK. Ett SMS skickas till din mobil.
Anneli och Christians Datorskola
Utveckla en applikation Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
SSQ12-B Instruktioner Namn Datum Ålder
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Föreläsning 7, Kapitel 7 Designa klasser Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Access med Sebastian och Robert
Klasser och objekt.
Funktioner och programorganisation
5. Grafiska objekt Redan på övning fem av sex! Här handlar det om att rita själv, färglägga och att låta kreativiteten flöda. Något för dig? Ritverktyg.
Fortsättningskurs i Programmering lektion 6
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Föreläsning 1.
ObjektOrienterad analys och design. SVP Vt2009 Föreläsning nr 2, måndag 8 april kl Diskussion (kurshemsida): Om designuppgiften Om projektuppgiften.
Arv.
Inkapsling.
Polymorfism.
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
i olika programmeringsspråk
Programmering B PHP Lektion 2
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Programmering B PHP Lektion 2
Sid 41 Fordon int antalhjul; int vikt;
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Föreläsning 8, kapitel 8 Förbättra strukturen med arv Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Arv.
Programmeringsteknik för Media1 & K1
Välkomna hit! Film – på vilket sätt är bedömning en (liten) del av all vår verksamhet? Kursplanens uppbyggnad. Skillnad strävansmål / uppnåendemål? Kunskapssynen.
PROCESSPROGRAMMERING Föreläsning ‏ Innehåll: Högnivå objekt för trådprogrammering: - Trådgrupper (”Thread pools”)‏ - Exekverare (Executor.
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
Logoped Lena Nilsson Logoped Elin Berglund
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
Jonny Karlsson GRUNDKURS I PROGRAMMERING MED JAVA Föreläsning 9 ( ) INNEHÅLL: -Tabeller av klassobjekt -Användning av Java API specifikationen.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Utvecklingsprocessen Webbutveckling. Utvecklingsprocessen Bli inte rädd för alla begrepp och alla verktyg man verkar behöva kunna. Du måste inte använda.
Introduktion till klasser, objekt och BlueJ Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling.
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Föreläsning 4 Klasser Och Objekt.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
Välkommen till kursen objektorienterad programmering med Java Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes.
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 8: Exempel och problemlösning
Presentationens avskrift:

ObjektOrienterad analys och design. SVP Vt2009. Introduktionsföreläsning måndag 6 april kl Presentation av medverkande lärare Kursinformation (se också kurshemsida)kurshemsida –Mål och inriktning. –Kursuppläggning och examination. Kort historik om Objektorientering. Oslo; Kristen Nygaard, Ole-Juhan Dahl med Simula 67. XEROX PARC och Smalltalk80. C++ och java AXE och PLEX. SDL, Ivar Jacobsson, Objectory, RUP och UML. Oslo; Kristen Nygaard, Ole-Juhan Dahl med Simula 67 XEROX PARCSmalltalk80C++java AXEPLEX SDLIvar JacobssonObjectoryRUPUML Intuitivt om klasser, objekt, metoder, tillstånd etc. Introduktion till java och systemet BlueJ. Exemplet "Hund"

ObjektOrienterad analys och design. SVP Vt2009. Kursuppläggning: Ett par år har jag använt kursboken: David J. Barnes & Michael Kölling: Objects First with Java - A Practical Introduction using BlueJ. Fourth edition, Pearson Education, ISBN Den kostade : 439:- + frakt på AdLibris. Den har i huvudsak fungerat bra, och jag använder den därför också nu vt Kursens organisation, liksom synen på förståelse, lärande, programmeringsförmåga och examination, har anpassats till de grundläggande idéerna bakom denna kursbok.

ObjektOrienterad analys och design. SVP Vt2009. Kursuppläggning: Grundläggande idé: Den förståelse och förmåga som krävs för att kunna skriva fungerande datorprogram, måste var och en bygga upp själv genom egen träning, genom att själv våga prova och göra fel och förstå varför det var fel. Förståelsen och förmågan kommer efter väldigt många och väldigt små sådana egna steg. Den kommer inte genom att man läser program andra skrivit eller genom att man sitter vid sidan om och tittar på, när någon annan skriver!

ObjektOrienterad analys och design. SVP Vt2009. Kursuppläggning: Grundläggande idé (forts.): Kursen (och kursboken) syftar till att utveckla en grundläggande förståelse och förmåga när det gäller objektorienterad programmering allmänt och inte användning av ett specifikt programme- ringsspråk. Det konkreta språk som används i exempel och resonemang, är java, version jdk1.6, men begreppen och kunskapen gäller också för andra objektorienterade språk.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Objektorientering som begrepp inom datorprogrammering uppstod i samband med att man utvecklade datorprogram, som skulle simulera konkreta förlopp i verkligheten. Om man t.ex. ville simulera ett trafikflöde med bilar lät man varje konkret bil vara en enhet, ett objekt, som fanns också i programmet. Strukturen i programmet fick bestämmas av den verklighet, som programmet skulle simulera.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Anledningen till att man ville simulera var ofta att verkligheten var väldigt komplex. Där fanns väldigt många exemplar av olika saker, t.ex. bilar, korsningar, trafiksignaler, vägar och gator, osv. Man hade ett behov av att beskriva de program-enheter som skulle representera alla dessa "saker" på ett effektivt och överskådligt sätt. För denna typ av tillämpningar utvecklades vid Norsk Regnesentral i Oslo under 1960-talet språket Simula, byggt på klasser (= klassdeklara-tioner), objekt (= klassinstanser), ärvning (=subklasser till klasser) och metoder. Simula fick direkt en ganska stor spridning i de nordiska länderna.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Exempel bilregister: En klass kan ses som en kategori eller ett begrepp. Det är naturligt att införa en klass Bil. Underkategorier eller subklasser kan vara Lastbil, Buss och Personbil. Varje konkret verklig fysisk lastbil blir ett Lastbilsobjekt, varje buss ett Bussobjekt, och varje personbil ett Personbilsobjekt. Ett objekt är en instantiering av en klass dvs ett konkret exemplar av det som klassen beskriver eller definierar.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Exempel bilregister (forts): Klassen Bil anger vilka egenskaper en bil kan ha: bilmodell, färg, registreringsnummer, ägare, maxlast, motorstyrka osv. För ett konkret bilobjekt som t ex MinGamlaVolvo måste jag definiera vilka “värden” just detta exemplar har när det gäller de olika egenskaperna: Modell 740SE, vit, OFN 562, Bengt Lennartsson etc, 760 kg, 120 kW, osv.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Exempel bilregister (forts): Metoder är det som objekten gör (på beställning). Det kan vara att skapa sig själv (lägga in en ny bil i registret), att ändra egenskaper, t.ex. byta ut (delar av) informationen om ägaren, att leverera något till omvärlden, t.ex. skriva ut registerutdrag. Det kan också vara att avskaffa sig själv, dvs avföra det aktuella bilobjektet från registret.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp Intuitiva begrepp: Du bör nu ha en föreställning om vad begreppen klass, objekt och metod står för. Den metod som skapar nya objekt har en särställning och kallas som i språket java ofta konstruktor. När det gäller att ta bort objekt har java, liksom Simula, automatisk skräpsamling, garbage collection, som plockar bort objekt som inte längre används eller behövs.

ObjektOrienterad analys och design. SVP Vt2009. Objektorienteringens allmänna grundidéer och begrepp: Kort om steget från Simula till java: Idéerna och begreppen från Simula fördes vidare till systemet Smalltalk vid Xerox PARC under 1970-talet, där en betydande del av den web- och Internetteknik vi ser idag föddes. Smalltalk var, liksom Simula, banbrytande i många avseenden och fick stor uppmärksamhet, men krävde då, liksom många andra innovationer vid PARC speciella processorer, vilket hindrade spridning till bred praktisk användning. Man försökte då införa principerna i existerande traditionella språk och system, C blev C ++ eller Objective C, etc. Det gjordes också flera försök att utveckla helt nya helt objektorienterade språk och system. Ett sådant är java, som används mycket i undervisning och vid implementation av grafiska användargränssnitt, GUIs.

ObjektOrienterad analys och design. SVP Vt2009. Ett inledande exempel Jag definierar begreppet, kategorin, eller i programmeringtermer, klassen Hund, och jag skapar ett par hundindivider, hundexemplar, hundinstanser eller hundar helt enkelt; hundobjekt i programmeringstermer. Jag gör ett exempel där kategorin hund bara beaktar två egenskaper: namn och färg. Jag börjar med att i BlueJ definiera New Project : hundar och New Class: Hund

ObjektOrienterad analys och design. SVP Vt2009. Ett inledande exempel: Om jag högerklickar på Hund och väljer Open Editor kan jag skriva in den javakod som skall definiera klassen hund. Först anger jag på första raden klassens namn: public class Hund { private String mittNamn; private String minFärg; och definierar sedan namnen mittNamn och minFärg på de två egenskaperna i deklarationerna där dessa namn införs/definieras. String är namnet på en klass som redan finns i javabiblioteken så mittNamn och minFärg blir namn på objekt från klassen String.

ObjektOrienterad analys och design. SVP Vt2009. Ett inledande exempel: Efter dessa deklarationer följer konstruktorn, dvs det som utförs när någon beställer ett nytt hundobjekt: public Hund(String beställdaNamnet, String beställdaFärgen) { mittNamn = beställdaNamnet; minFärg = beställdaFärgen; } Se detta som beställningscentralen i kenneln, dvs den enhet som tar emot och effektuerar beställningar av hundobjekt. Beställaren har i blanketten fyllt i beställdaNamnet och beställdaFärgen, och ordermottagningen ser till att den hund som levereras får egenskaper mittNamn och minFärg som överensstämmer med detta. Efter konstruktorn följer de två metoderna som gör att levererade hundar kan utför/besvara dessa två. Se det som att kenneln "byggt in" eller dresserat hundarna till dessa förmågor.

ObjektOrienterad analys och design. SVP Vt2009. Ett inledande exempel: De två metoderna: public String angeDinFärg() { return minFärg; } public boolean heterDu(String angettNamn) { return mittNamn.equals(angettNamn); } där equals är en metod som redan finns i klassen String. Den returnerar true och de två strängarna mittNamn och minFärg innehåller samma teckenföljd, annars false. Nu kan vi se hur man skapar hundobjekt i BlueJ efter det att klassen Hund har kompilerats.

ObjektOrienterad analys och design. SVP Vt2009. Ett inledande exempel: Högerklicka på klassen Hund och välj första alternativet, som är en "beställning" new Hund(String beställdaNamnet, String beställdaFärgen) till konstruktorn. Du får nu en pop-up-ruta, där du ombeds fylla i de två önskade egenskaperna. Om du vill ha en hund som heter Davina och är svart, fyller du i "Davina"och "svart" inklusive citationstecknen. När du klickat OK får du upp en ny röd figur i nedre delan av BlueJ-fönstret. Beställer man en hund till, Davinas gula halvsyster Jenka, Får man en BlueJ enligt nästa sida.

ObjektOrienterad analys och design. SVP Vt2009. Nu kan man högerklicka på de två hundobjekten och be dem utföra/ besvara de två saker de "fått lära sig" eller "fått inbyggda i sig" innan de levererades av konstruktorn. Högerklickar man på ett hundobjekt (i BlueJ, inte i bilden här till höger:-) kommer en pop-up-ruta där man kan välja på angeDinFärg() och t.ex: heterDu("Bamse") och få svar på detta. Den kompletta koden för klassen hund finns på nästa sida.

ObjektOrienterad analys och design. SVP Vt2009. public class Hund { private String mittNamn; private String minFärg; /** Kommentar för mänsklig läsning: * Konstruktor. "Beställning", dvs anrop, till denna levererar ett nytt hundobjekt */ public Hund (String beställdaNamnet, String beställdaFärgen) { mittNamn = beställdaNamnet; minFärg = beställdaFärgen; } /** Kommentar för mänsklig läsning: * Metoder, dvs sådant objekt från denna klassen kan utföra/besvara. */ public String angeDinFärg() { return minFärg; } public boolean heterDu(String angettNamn) { return mittNamn.equals(angettNamn); } }

ObjektOrienterad analys och design. SVP Vt2009. Kursbok (man kan inte klara kursen utan att ha tillgång till den): David J. Barnes & Michael Kölling Objects First with Java - A Practical Introduction using BlueJ. Forth edition, Pearson Education ISBN X. AdLibris, 439:-+frakt Du måste också ha tillgång till en dator, som har java version 1.6.nånting, och som har systemet BlueJ version eller senare, för att kunna göra uppgifterna i kursen. CD med BlueJ finns med i boken.

ObjektOrienterad analys och design. SVP Vt2009. Av javas 53 reserverade ord har vi i detta lilla exempel i koden använt fem: boolean, class, private, public, och return, och i resonemanget ytterligare tre: true, false och new. Vi har i koden själva definierat/deklarerat åtta "ord": Hund, mittNamn, minFärg, beställdaNamnet, beställdaFärgen, angeDinFärg, heterdu och angettNamn. Vi har också använt namn på två saker som är definierade i redan existerande klasser i javas programbibliotek: String och equals.

ObjektOrienterad analys och design. SVP Vt2009. Kursbok (man kan inte klara kursen utan den): David J. Barnes & Michael Kölling Objects First with Java - A Practical Introduction using BlueJ. Fourth edition, Pearson Education ISBN X. AdLibris, 439:-+frakt Du måste också ha tillgång till en dator, som har java version 1.6.nånting, och som har systemet BlueJ version eller senare, för att kunna göra uppgifterna i kursen. CD med BlueJ finns med i boken.