TDDC77 Objektorienterad Programmering

Relevanta dokument
Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) Abstrakta klasser. Abstrakta metoder. Abstrakta klasser. Gränssnitt. Uppräkningar (enum) Ahmed Rezine

Outline. Objektorienterad Programmering (TDDC77) Lösningen heter Collection. Collection gränsnittet. Collection. Iterable. Ahmed Rezine.

Objektorienterad Programmering (TDDC77)

Objektorienterad Programkonstruktion. Föreläsning 9 30 nov 2016

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) En frukt har ett namn. Man kan lägga en frukt i en korg... Hashing. Undantag. Ahmed Rezine.

Objektorienterad Programkonstruktion

Objektorienterad Programmering DAT043. Föreläsning 9 12/2-18 Moa Johansson (delvis baserat på Fredrik Lindblads material)

TDDC77 Objektorienterad Programmering

Samlingar Collection classes

Interfacen Set och Map, hashtabeller

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Föreläsning 10 Innehåll

Föreläsning 10 Innehåll. Diskutera. Hashtabeller. Hashfunktion. hashfunktion. hashkod (ett heltal)

Länkade strukturer. (del 2)

Abstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.

Objektorienterad Programmering (TDDC77)

Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016

Hitta k största bland n element. Föreläsning 13 Innehåll. Histogramproblemet

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

Diskutera. Hashfunktion

TDDC77 Objektorienterad Programmering

Föreläsning 2 Datastrukturer (DAT037)

Objekt-orienterad Programmering och Design. TDA551 Alex Gerdes, HT-2016

Seminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.

DAT043 - föreläsning 8

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Inlämningsuppgift och handledning

Objekt-orienterad Programmering och Design. TDA552 Alex Gerdes, HT-2018

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

Inlämningsuppgift och handledning. Föreläsning 11 Innehåll. Diskutera. Hashtabeller

Objekt-orienterad programmering och design. DIT953 Niklas Broberg, 2018

Försättsblad till skriftlig tentamen vid Linköpings Universitet

F12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 14 Innehåll

Föreläsning 11 Innehåll

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

Seminarium 2 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.

Föreläsning 10. ADT:er och datastrukturer

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 5 Erik Nilsson, Institutionen för Datavetenskap, LiU

Vad handlar kursen om? Algoritmer och datastrukturer. Vad handlar kursen om? Vad handlar kursen om?

Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU

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

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

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

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

Algoritmer. Två gränssnitt

Sammansatta datatyper Generics: Parametrisk polymorfism

Tentamen Objekt-orienterad programmering i Java, 5p distanskurs

Föreläsning 2 Datastrukturer (DAT037)

Övning vecka 5. Denna vecka ska vi titta pa samlingar, generics och designmönstren Decorator, Singleton och Iterator.

Objektorienterad programmering E. Algoritmer. Telefonboken, påminnelse (och litet tillägg), 1. Telefonboken, påminnelse (och litet tillägg), 2

Agenda. Objektorienterad programmering Föreläsning 13

Datastrukturer. föreläsning 6. Maps 1

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Laboration 2 Datastrukturer En liten uppgift Frågor

Tentamen Objekt-orienterad programmering med Java, 1DL100 Sommarkurs och distanskurs

Magnus Nielsen, IDA, Linköpings universitet

Tommy Färnqvist, IDA, Linköpings universitet. 1 ADT Map/Dictionary Definitioner Implementation... 2

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

Objektorienterad Programmering (TDDC77)

TDDC30 Programmering i Java, Datastrukturer och Algoritmer Lektion 2. Länkade listor Stackar Köer MyList Iteratorer Lab 2 Exceptions Paket

Obs! Inget ur Javas standardbibliotek får användas i ett svar (om det inte står att man får det).

Övning vecka 6. public void method2() { //code block C method3(); //code block D }//method2

Samlingar Collection classes

Föreläsning 2. Länkad lista och iterator

TDDC77 Objektorienterad Programmering

Tentamen, EDAA01 Programmeringsteknik fördjupningskurs

Arrayer (fält)

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

Datastrukturer och algoritmer. Innehåll. Tabell. Tabell - exempel. Gränsyta till Tabell. Tabell. Modell. Hashtabell Relation, lexikon.

Föreläsning 11. ADT:er och datastrukturer

Datastrukturer. Arrayer. Arrayer. Arrayer. Array av arrayer. Array av arrayer

Collection classes. Interface, första exempel. Interface (forts) Men först

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

Tillämpad Programmering (ID1218) :00-13:00

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

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

F9 - Polymorfism. ID1004 Objektorienterad programmering Fredrik Kilander

Föreläsning 4 Innehåll

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Föreläsning REPETITION & EXTENTA

Java Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki

Föreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp

Repetition av OOP- och Javabegrepp

TDDC77 Objektorienterad Programmering

Föreläsning 2 Innehåll

ADT Prioritetskö. Föreläsning 12 Innehåll. Prioritetskö. Interface för Prioritetskö. Prioritetsköer och heapar

Repetition av OOP- och Javabegrepp

Föreläsningsanteckningar, Introduktion till datavetenskap HT S4 Datastrukturer. Tobias Wrigstad

Föreläsning 8. Mängd, Avbildning, Hashtabell

Objektorienterad Programmering (TDDC77)

Övningen vill visa på vikten av valet av datastruktur, trots att de ofta erbjuder samma funktionalitet genom sina gränssnitt.

Föreläsning 10 Innehåll. Prioritetsköer och heapar. ADT Prioritetskö. Interface för Prioritetskö. Exempel på vad du ska kunna

Laboration 13, Arrayer och objekt

Signalflödesmodellen. Två (gamla) exempel: Kvadratera alla jämna löv.

Objektorienterad programmering

Transkript:

TDDC77 Objektorienterad Programmering Föreläsning 11 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018

Outline Uppräkningar (enum) Klasshierarki Generics Kollektioner Iterable

Uppräkningar(enum)

En enkel uppräkning (enum)

Uppräkningar

Uppräkningar Uppräkningar kan inte ärva från andra uppräkningar eller klasser. Det är inte tillåtet att ärva från uppräkningar. Uppräkningar kan implementera interfaces.

Task 1-5 minuter Skriv en enum för att presentera veckans dagar. Uppräkningen ska innehålla en konstruktör som tar emot namnet på dagen och en metod som skriver ut namnet.

Klasshierarki

Klasshierarki

Klasshierarki

Klasshierarki Class Interface Class ärver implementerar Interface - ärver

Task 2-5 minuter Skapa en klass hierarki genom att använda följande klasser och interfaces: Klasser Creature Tiger Mammal Nonmammal Predator Snake Interface: Flyer Crawler

Generics

Generics En generictyp är en klass eller ett gränsnitt som är parametriserad med en eller flera typer.

Kollektioner

Att lagra värden En variabel: Data av en sort Problem: om det blir många variabler En array: En rad av data av samma sort Problem: Måste veta storlek i förväg, även svårt att bearbeta data i arrayen (söka, sortera osv)

Kollektion (Collection) är ett objekt som grupperar flera element i en enda enhet. används för att lagra, hämta, manipulera, och kommunicera aggregerade data. bildar en naturlig grupp, såsom en kort hand (en samling av kort), en post mapp (en samling av brev) eller en telefonkatalog (en kartläggning av namn till telefonnummer).

Lösningen heter Collection Samling av klasser för effektiv och avancerad lagring av data Finns i paketet java.util Är uppdelade i Interface och implementationer Sök efter Collection i API:et http://docs.oracle.com/javase/7/docs/api/ Finns även bra tutorials, ex http://docs.oracle.com/javase/tutorial/collections

Lösningen heter Collection

Set - Mängd Oordnad mäng av data utan kopior Interfacet heter Set Implementationer: exempelvis HashSet

Set

Map Kopplade par av data Interfacet heter Map Implementationer: exempelvis HashMap

Map

Hashing Alla klasserna ovan som innehåller Hash i namnet använder något som heter hashing för att öka hastigheten på vissa operationer, exempelvis när man ska göra snabba sökningar i en lista. Det ingår inte i kursen att förstå exakt hur det fungerar, men ni måste förstå tillräckligt för att kunna använda hjälpligt.

Hashing Hashing går ut på att man för varje objekt beräknar ett så kallad hash (heltal) Heltalet används sedan för att dela upp mängden i flera mindre mängder, vill man veta vilken del man ska leta i behöver man bara hasha värdet man letar efter Hashfunktionen måste man alltid returnera samma värde för samma objekt, och för alla andra objekt där equals() returnerar sant För er ordlistlaboration så räcker det bra att returnera värdet för textsrängens haschcode()

Klassen Collections Klassen Collections har statiska metoder för att manipulera listor, mängder m.m. frequency() min(), max() reverse() sort(), shuffle()

Iterable

Iterable Iterable är ett interface som implementeras av alla klasser som man kan gå igenom sina innehåll element för element. Iterable innehåller bara en metod: iterator() som returnerar ett speciellt Iterator-objekt som man kan använda för att gå igenom mängden.

Iterator Iterator är ett interface med metoderna hasnext() next() remove() //valfritt Man får inte ändra på den underliggande samlingen medan iteratorn används, annars blir det fel.

Iterator

Iterator Enklare med for-each

Thanks for listening!