Översikt Programmering tillämpningar och datastrukturer 729G58 (HKGBB7) Kursinformation Objektorienterad programmering: Klasser och objekt Arv Polymorfism Metoder Programexempel Programmering tillämpningar och datastrukturer 2 Vad kursen täcker Lärare Objektorienterad programmering Centrala begrepp Designverktyg: UML Språket Java Utvecklingsmiljö NetBeans el. Eclipse Datastrukturer Examinator Rita Kovordányi, ritko@ida.liu.se Kursassistent Johan Jernlås, jojer@ida.liu.se Kursadministratör Marie Ekström, marek@ida.liu.se Algoritmer Komplexitet Programmering tillämpningar och datastrukturer 3 Programmering tillämpningar och datastrukturer 4 Kursmål Rekommenderad litteratur Färdigheter i objektorienterad programmering Kommersiella mjukvaruprojekt Testning, felsökning Java är grafikorienterat Programmering av enkla grafiska gränssnitt Grundläggande datastrukturer och algoritmer Skansholm (2005): Java direkt med Swing (5:e upplagan) ISBN: 91-44-03843-7 och/eller Koffman & Wolfgang (2005): s, abstraction, data structures and design using Java ISBN: 0-471-66151-1 Programmering tillämpningar och datastrukturer 5 Programmering tillämpningar och datastrukturer 6 1
Kursupplägg Föreläsningar varvat med labbar Labbintensiv kurs 1-2 labbtillfällen i veckan (kvartsfart) En tredjedel av tiden lärarledd Du förväntas som student att jobba 4 h på egen hand inför/efter varje föreläsning och lärarlett labbtillfälle Kursupplägg (forts) Egen inläsning av nödvändig litteratur Råd: Läs inte från pärm till pärm Läs allteftersom kunskaperna behövs Kursen går på kvartsfart Avsikt: Ge tillräckligt med tid för att bli van med Java Se dock till att hålla jämn takt Lätt att glömma vad man redan kunde, om längre uppehåll Programmering tillämpningar och datastrukturer 7 Programmering tillämpningar och datastrukturer 8 Examination Tentamen Gamla tentor: se kurshemsidan U/G/VG Tre labbar Lämna till kursassistent Klassdiagram Väl kommenterad kod Egna tankar om labben (på särskilt blad) Var beredd att svara på muntliga frågor U/G utom på labb3: U/G/VG Laboration1 Grundläggande objektorientering i Java: Klasser Instanser Polymorfism Relationer Programmering tillämpningar och datastrukturer 9 Programmering tillämpningar och datastrukturer 10 Datastrukturer och algoritmer: Laboration2 Grafikorienterat äventyrsspel Laboration3 Länkade strukturer Listor, köer Iteration Sortering Simulering av en stormarknad Värld med platser och varelser Egen spelare och fiender Mål: samla poäng, överleva Fienderna letar efter egna spelaren genom Sökningsalgoritmer Programmering tillämpningar och datastrukturer 11 Programmering tillämpningar och datastrukturer 12 2
Java Utvecklingsmiljöer J2SE 1.5 (Java 2 Standard Edition version 1.5) IDE (Integrated Development Environment): NetBeans el. Eclipse NetBeans Speciellt för Java Ren miljö Få kringbegrepp Eclipse Stöder även andra språk (bl.a. C++) Kom ihåg att ställa in Java version (1.5) Emacs eller annan texteditor Programmering tillämpningar och datastrukturer 13 Programmering tillämpningar och datastrukturer 14 Hur starta Eclipse på Unix Sätta Java-version i Eclipse > module initadd prog/jdk > module initadd prog/eclipse > source.login > eclipse & Obs! Ställ in rätt Java-version när du skapar ett nytt projekt! Programmering tillämpningar och datastrukturer 15 Programmering tillämpningar och datastrukturer 16 Kortkommandon i Eclipse Ctrl-Shift-M Importera rätt paket (markören ska stå på den klass som ska importeras) Ctrl-Shift-/ Kommentera bort dessa rader Ctrl-Shift-/ Ta bort kommentarmarkering från dessa rader Ctrl-Shift-F Indentera koden Objektorienterad programmering Programmering tillämpningar och datastrukturer 17 3
Klass: Hus, Djur, BankKonto Objekt: mitthus, annashus ludde pettersonskonto Metoder: äta kollasaldo Klasser och objekt Namnkonvention Klasser startar med versaler (stor bokstav) Ex. Objektreferenser (variabelnamn i allmänhet) startar med gemener Ex. pelle Använd versaler för att skilja åt ord Ex. mittkonto Programmering tillämpningar och datastrukturer 19 Programmering tillämpningar och datastrukturer 20 Klasshierarki Exempel Går från generella klasser i topp Till specifika klasser i botten Superklass subklass Objekt Programmering tillämpningar och datastrukturer 21 Programmering tillämpningar och datastrukturer 22 Subklasser ärver egenskaper (variabler) Ärver sätt (metoder) Exempel: Räcker med att definiera flygförmåga i klassen Fåglar Alla subklasser kommer att kunna flyga (om inget annat anges) Arv Unified Modeling Language UML Standardiserat sätt att rita upp sina klasser och visa relationer mellan klasserna I framtiden: automatisk generering av kod Programmering tillämpningar och datastrukturer 23 Programmering tillämpningar och datastrukturer 24 4
Klasshierarki i UML Arv i UML Programmering tillämpningar och datastrukturer 25 Programmering tillämpningar och datastrukturer 26 Polymorfism (overriding) Polymorfism Programmering tillämpningar och datastrukturer 27 fågel; String fågeltyp; fågeltyp = JOptionPane.showInputDialog( Which bird do you want to create, Penguin (P) or Dove (D)?"); if (fågeltyp == P ) { fågel = new (); } else { fågel = new (); } fågel.flyga();.flyga() eller.flyga() Programmering tillämpningar och datastrukturer 28 Kursinfo Klasser Arv Metoder Exempel Polymorfism Polymorfism = många former (knutna till samma namn) Flyga betyder olika saker i olika klasser Vilken metod som kommer att exekveras bestäms av vilket objekt som döljer sig bakom en variabel Finns definition i subklassen är det den som gäller Överskuggar (overrides) definitionen i superklassen Programmering tillämpningar och datastrukturer 29 5