Collectionklasser Klassifikation og anvendelse. Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær,

Slides:



Advertisements
Lignende præsentationer
Velkommen til Softwarekonstruktion
Advertisements

C# introduktion. using System; Namespace MyFirst { class eks1 { public static void Main() { Console.WriteLine("Hej!"); Console.Write("Skriv dit navn her:
Array og ArrayList Et slideshow. Som er sødt.. Hvordan virker ArrayList?  ArrayList NAVN = new ArrayList ();  NAVN.add(”Værdi”);  NAVN.add(index, ”værdi”)
KONCEPT Klasser og objekter En klasse beskriver et World ArrayList
C#: Udtryk og metoder. Indhold “With regards to programming statements and methods, C# offers what you would come to expect from a modern OOPL…” Udtryk.
Datastrukturer og Collections Oversigt og forskel imellem Jave og.net Collections library Collection interfaces ArrayList IList interface Hashtable Hashtable.
06 – Java Packages Packages og ClassPath. 2 NOEA2009Java-kursus – Packages og class path Hvad er Packages? En package er en gruppering af relaterede typer.
Item gennemgang  Item: 01 – Static factory methods  Item: 09 – Override hashCode  Item: 17 – Design & document inheritence  Item: 25 – Lists over arrays.
Programmeringsteknologi: Lektion 1
Array vs. ArrayList. Arrays Et array er en struktureret metode til at gemme flere værdier af den samme datatype. Data’en i et array ligger op ad hinanden.
Grundlæggende programmering Efterår 2001
Hvordan man skriver koden.
Tietgen Skolen Syntaks: while ( betingelse for loop ) statement; Eksempel: int tal = 0; while ( tal/3 != 4 ) { System.Console.WriteLine(tal); tal = tal.
Abstrakte klasser og interfaces i Java
FEN IntroJava AAU1 Java grundelementer Variable og datatyper Sætninger og udtryk Metoder.
Begreber og Redskaber 9. Plan for idag I dag: Datastrukturer Tabeller Lister, mængder, maps, grafer Hægtede lister.
Arrays ● Arrangere erklærede ens datatyper ● Giver mulighed for indeksering med tal ● Valgfri størrelse ved oprettelse ● Er integreret i sproget/compileren.
Gruppe sort Morten, Peter, Jesper, Spencer & Støving.
Collectionklasser Ekstra materiale. Collections Motivation – hvorfor bruge collections? Realisering af en-til-mange relationer – Importer, erklær, initialiser.
Begreber og Redskaber 5. Collections i Java 1.2 Framework: samling af datastrukturer og algoritmer som generelt værktøj. En ramme til at arbejde med søgning.
Begreber og Redskaber 5. Plan for idag Overblik over klasser,objekter,nedarvning –Repetition fra Dat A/Indledende programmering –Centrale begreber om.
Iteration og parametrisering
Forelæsning 3.1 Collections Javas for-each løkke
Interfaces – brug. Overblik Tidligere: –Interfaces Comparable gør det muligt at bruge Collections metoderne –min, max, sort, … –Algoritmemønstre Find.
Fundamentale datastrukturer
Mønstre En lille introduktion. Singleton Tilgå et objekt igennem klassereference i stedet for objektreference.  Overflødiggør referencer til objektet.
Forelæsning 5.1 Brug af klassen Collections og interfacet Comparable samt parametriserede typer Projektuge: Ants and Spiders / Lommeregner dIntProg,
10. Datastrukturer. 2 Nordjyllands Erhvervakademi Collections library Datastrukturer i.NET kaldes normalt Collections Findes i namespace System.Collections.
1 Fundamentale datastrukturer. 2 Definitioner: abstrakt datatype, datastruktur Elementære datastrukturer og abstrakte datatyper : arrays, stakke, køer,
Repetition: Introduktion til OOP med C# og .NET
8 RÅD VEDRØRENDE GOD PROGRAMMERING Effective (brown) Java.
FEN IntroJava AAU1 Klasser og objekter Grundbegreber Student-Course.
Fundamentale sprogbegreber
FEN IntroJava AAU1 Endnu mere om Klasser og Objekter Mange til mange relationer Student-Course v3.
Længste plateau En klassisk problemstilling (Gries, 1981) - og her i Java!!! Denne opgave drejer sig om at bestemme længden af det længste plateau i en.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Repetition af dIntProg v/ Morten D. Bech. Tour de force Variabler Løkker Comparable ImErKo-reglen Eksamenssæt dIntProg, E13.
Begreber og Redskaber 11. Plan for idag Lidt afrunding: Collections Framework i Java Noget om oversættere og sprog Evaluering Sidste gang øvelser før.
Forelæsning 7.1 – repetition
Effective Java Blå gruppe. Item 18: Interfaces frem for abstrakte klasser Kan implementeres i klasser der ikke nedarver Eksisterende klasser kan nemt.
Begreber og Redskaber 4. Plan for idag Om metoder, parametre, returværdier Et par ord om objekt-orientering Håndkøring af programmer.
Begreber og Redskaber 3. Plan for idag Om metoder, parametre, returværdier Overblik over klasser,objekter,nedarvning Et par ord om objekt-orientering.
Introduktion til programmering Repetition - ArrayList.
 Michael E. Caspersen, 2000Introducerende objektorienteret programmering6B.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
 Jens Bennedsen 2002Objektorienteret systemudvikling Design -> kode Mapning af et klassediagram til kode.
Klasser og objekter. dIntProg, E08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
DAIMIIntroducerende objektorienteret programmering3B.1 Definition af klasser Klasseskelet, metoder, et eksempel: dato.
Klassehierarkier Specialisering vha. subklasser. dIntProg, E05Klassehierarkier.2 Oversigt Eksempler på specialisering –Aktør, Koreograf, Skuespiller,
Klasser og objekter – grundbegreber.  Michael E. Caspersen, 2001Introducerende objektorienteret programmeringKlasser og objekter.2 Klasser og objekter.
Collectionklasser Klassifikation og anvendelse. dIntProg, F08Collectionklasser.2 Samlinger af objekter Objektreferencer –for at holde fast i et objekt.
 Jens Bennedsen 2001Multimedie programmering4.1 Definition af begreber Interface, implements, klasse.
Klasser og objekter. dIntProg, F08Klasser og objekter.2 Grundbegreber Klasser og objekter –beskrivelse –oprettelse Attributter og metoder –tilstand –opførsel.
Introduktion til programmering Repetition. dIntProg, F08Repetition.2 dIntProg Sidste forelæsning (12/10) –kort tilbagemelding på evaluering –repetition.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
I o p o DAIMI, AU, September 1999Introducerende objektorienteret programmering5C.1 Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence.
Containerklasser – klassifikation og brug.  Michael E. Caspersen, 2003IOOPContainerklasser.2 Mange objekter Containerklasser –antag at man skal repræsentere.
Virkefeltsregler i Java int i; int j; int k; i = i+j; String t; Sequence s; int i; int j; Sequence s; String s; int i; int j;
Forelæsning Uge 3 – Mandag Niveauer af programbeskrivelser – Statiske / dynamiske beskrivelser ArrayList –Collection med variabelt antal elementer –Der.
Forelæsning Uge 6 – Mandag
Forelæsning Uge 6 – torsdag – repetition
Forelæsning Uge 3 – Mandag
Forelæsning Uge 3 – Mandag
Klasser og objekter (Afsnit i manualen).
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 3 – Mandag
Quiz – Uge 4 – mandag – første time
Forelæsning Uge 3 – Mandag
Quiz – Uge 3 – torsdag – første time
Forelæsning Uge 3 – Mandag
Forelæsning Uge 4 – Torsdag
Præsentationens transcript:

Collectionklasser Klassifikation og anvendelse

Collections Motivation –hvorfor bruge collections? Realisering af en-til-mange relationer –Importer, erklær, initialiser Den udvidede for-løkke dIntProg, E12

iTunes – et motiverende eksempel Track Playlist

iTunes klassemodel dIntProg, E12 Track String getName() String getArtist() int getTime() Player void add(PlayList p) List find(String q) void print() * PlayList String getName() void addTrack(Track t) void print() Track shortestTrack() Track longestTrack() List search(String q) List longerThan(int r) void shuffle() * *  Associeringer Vilkårligt mange objekter af den pågældende type Playlist Track

Endnu et eksempel En adressebog hvor man kan: –Tilføje kontakter (personer) – så mange som man vil –Udskrive adressebogen –Finde et telefonnummer, givet et navn –Finde gennemsnitsalderen på kontakterne Problem –Hvordan kan jeg huske på personerne? –Hvordan realiseres en-til-mange relationen? dIntProg, E12 AddressBook void addPerson(Person p) void print() String getPhone(String name) int averageAge() Person String getName() String getNumber() int getAge() ? *

dIntProg, E12 Collections - Samlinger af objekter Objektreferencer –for at holde fast i et objekt skal der bruges en objektreference (en variabel) –for at holde fast i objekter skal der bruges objektreferencer... Collections –en særlig slags objekter der kan opbevare (referencer til) objekter –f.eks. ArrayList java.util –en pakke der bl.a. indeholder klasserne i Javas såkaldte collection framework

dIntProg, E12 Eksempel: Liste af personer public void testMethod1() { Person tp; ArrayList l= new ArrayList (); tp= new Person( "Jeppe", " ", 33 ); l.add(tp); tp= new Person( "Ole", " ", 28 ); l.add(tp); tp= new Person( "Linda", " ", 21 ); l.add(tp); }

dIntProg, E12 Objektmodel for personeksempel l: ArrayList size() = 3 name: number: age: 21 ”Linda” ” ” name: number: age: 33 ”Jeppe” ” ” name: number: age: 28 ”Ole” ” ” tp:

Realisering af en-til-mange - UML dIntProg, E12 AddressBook ArrayList persons void addPerson(Person p) void print() String getPhone(String name) int averageAge() Person String getName() String getNumber() int getAge() *

Realisering af en-til-mange - Kode For at realisere en en-til-mange relation i koden skal man : 1.Importere en objekttype (f.eks. en liste) import java.util.ArrayList; 2.Erklære en feltvariablen af passende type private ArrayList persons; 3.Initialisere feltvariablen i konstruktøren public AddressBook(){ persons = new ArrayList (); } dIntProg, E12

Collection ArrayList –lister (sekvenser) af objekter af typen E public class ArrayList { boolean add(E o){} void add(int index, E element){} E get(int index){} boolean contains (Object o){} boolean isEmpty(){} Iterator iterator(){} boolean remove(Object o){} int size(){}... } Se JavaDoc...

dIntProg, E12 Gennemløb med udvidet for-løkke public void testMethod1() { Person tp; List pl= new ArrayList (); tp= new Person( ”Jeppe”, ” ”, 33 ); pl.add(tp); tp= new Person( ”Ole”, ” ", 28 ); pl.add(tp); tp= new Person( ”Linda”, ” ”, 48 ); pl.add(tp); // for alle personer p i pl... for ( Person p : pl ) { System.out.println(p); }

dIntProg, E12 Eksempel: gennemsnitsalder /** * return the average age of the people in the addressbook */ public int averageAge() { ? } Specifikation (hvad)

dIntProg, E12 Implementation (1) /** * return the average age of the people in the address book */ public int averageAge() { return ageSum() / persons.size(); } Implementation (hvordan) /** * return the sum of the age of the people in the address book */ private int ageSum() { ? }

dIntProg, E12 Implementation (2) /** * return the sum of the age of the people in the address book */ private int ageSum() { int result= 0; // accumulate the sum of... in variable result return result; }

dIntProg, E12 Implementation (3) /** * return the sum of the age of the people in the address book */ private int ageSum() { int result= 0; for (Person p : persons) { result= result + p.getAge(); } return result; }

Collections, recap… Motivation –hvorfor bruge collections? Realisering af en-til-mange –Importer, erklær, initialiser Den udvidede for-løkke dIntProg, E12