Videregående programmering i Java
|
|
- Helena Nissen
- 7 år siden
- Visninger:
Transkript
1 Videregående programmering i Java Dag 4 objektorienteret design & hyppigt anvendte designmønstre Hyppigt anvendte designmønstre: Proxy, Adapter, Iterator, Facade, Dynamisk Binding Objektorienteret design Udskudt JNI og kald til maskinkode/c/c++ fra Java Udgår Styring af eksterne komponenter (OpenOffice.org / COM) Udskudt Automatiseret afprøvning med JUnit Dette materiale er under Åben Dokumentlicens, se
2 Modularitet Programmer er ofte for store og for komplekse til at blive designet og implementeret som ét system. De bør derfor deles op i håndtérbare moduler "Del og hersk" Principper for modulerne: Hvert modul bør have et klart ansvarsområde Modulerne bør have lav kobling indbyrdes
3 Kohæsion og kobling Kohæsion Hvor relaterede funktionerne, der varetages inden for et modul, er Metoderne i en klasse bør gøre relaterede ting Ergo: Høj kohæsion er godt Kobling Handler om graden af afhængighed, der er mellem modulerne Modulerne bør stort set være uafhængige og kun løst forbundet Ergo: Lav kobling er godt
4 Ansvarsområder Ansvarsområder for et objekt/modul kan være: At oprette nye objekter eller udføre en beregning At foretage en handling i andre objekter At kontrollere og koordinere aktiviteter i andre objekter At kende private data At kende relaterede objekter At kende ting, som objektet kan beregne Høj kohæsion (sammenhæng eng.: high cohesion) at et objekt har ét overskueligt og let forståeligt ansvarsområde (eller eventuelt flere områder tæt relaterede til hinanden)
5 Designfase Hvordan skal programmet fungere Redskaber til objektorienteret design Ord til klasser Kollaborationsdiagrammer Klassediagrammer Vi bruger nu 10 minutter til hvert punkt! Fremlæggelse næste gang!
6 Ord til klasser Tommelfingerregler: Navneord (substantiver) i ental bliver ofte til klasser Klassenavne skal altid være i ental Udsagnsord (verber) bliver ofte til metoder
7 Kollaborationsdiagrammer Husk ansvarsområder Forskelligt antal => forskellige klasser Tegn (har)relationer på opdaterer fremviser har Regel Blok Blokvindue har tjekker har bruger Raflebaeger Spiller har Spiller Terning er en Computerspiller er en Menneske opdaterer fremviser Turvindue er en DumComputerspiller GraadigComputerspiller
8 Klassediagrammer To vejs redigering med et UML udviklingsværktøj TogetherJ JDeveloper PoseidonUML
9 Designmønstre (
10 Designmønstret Adapter Problem: Et system forventer et objekt af en bestemt type (der implementerer et bestemt interface eller arver fra en bestemt klasse), men det objekt, man ønsker at give til systemet, har ikke denne type. Løsning: Definér et Adapter objekt af den type, som systemet forventer, og lad Adapter objektet delegere kaldene videre til det rigtige objekt. En Adapter fungerer som omformer mellem nogle klasser Få et objekt til at passe ind i et system ved at bruge et Adapter objekt, der passer ind i systemet, og som kalder videre i det rigtige objekt
11 Designmønstret Adapter Eksempel: Få et Opgave objekt omformet til at passe til Threads forventning om et Runnable objekt public class OpgaveRunnableAdapter implements Runnable Opgave opg; OpgaveRunnableAdapter(Opgave o) opg = o; public void run() // Oversæt kald af run() til kald af udfør() opg.udfør();
12 Designmønstret Adapter Eksempel: Få data (en liste af Kunde objekter) til at passe ind i en JTables forventning om et TableModel objekt import java.util.*; import javax.swing.table.*; public class KundelisteTableModelAdapter extends AbstractTableModel private List liste; public KundelisteTableModelAdapter(List liste1) liste = liste1; public int getrowcount() return liste.size(); public int getcolumncount() return 2; // navn og kredit public String getcolumnname(int kol) return kol==0? "Navn" : "Kredit"; public Object getvalueat(int række, int kol) Kunde k = (Kunde) liste.get(række); return kol==0? k.navn : ""+k.kredit;
13 Designmønstret Proxy Problem: Et objekt, der bliver brugt af klienten, skal nogen gange bruges lidt anderledes, men ikke altid, så det er uhensigtsmæssigt at ændre i klassen eller i klienten. Løsning: Lav en Proxy klasse, der lader som om, den er det rigtige objekt, og kalder videre i det rigtige objekt. Proxy på dansk "stråmand" eller "mellemmand" Ordet brugtes oprindeligt i banksektoren Internet: En proxy server Oftest ved klienten ikke at den bruger en proxy. Når proxyen bliver kaldt, vil den som regel delegere kaldet videre til det andet objekt, men den kan også vælge f.eks.: at returnere med det samme og udføre kaldet i baggrunden at afvise kaldet (f.eks. ved at kaste en undtagelse) at udføre kaldet på en anden måde (f.eks. anderledes parametre)
14 Designmønstret Proxy Staklogger: en Stak, der delegerer videre til en anden Stak: Stak s = new Staklogger( new StakMedNedarving2() ); public class Staklogger implements Stak private Stak rigtigestak; public Staklogger(Stak s) rigtigestak = s; public void lægpå(object o) System.out.print("Staklogger: lægpå("+o+")"); rigtigestak.lægpå(o); public Object tagaf() Object o = rigtigestak.tagaf(); System.out.print("Staklogger: tagaf() gav: "+o); return o;
15 Designmønstret Proxy Uforanderlige samlinger: Collection d = new ArrayList(); d.add("hej"); d.add("med"); d.add("dig"); d = new UforanderligSamling(d); // Her: vores egen implementation // d = Collections.unmodifiableCollection(d) // Her: fra standardbiblioteket // herefter kan dataene ikke mere ændres gennem d... d.add("igen"); // undtagelse opstår I standardbiblioteket findes Collections.unmodifiableCollection(): Uforanderligt Proxy objekt Collections.synchronizedCollection(): Trådsikkert Proxy objekt
16 public class UforanderligSamling implements Collection, Serializable private Collection c; // til videredelegering Designmønstret Proxy UforanderligSamling(Collection c) if (c==null) throw new NullPointerException(); this.c = c; // videredelegering af kald, der ikke ændrer samlingen c public int size() return c.size(); public boolean isempty() return c.isempty(); public boolean contains(object o) return c.contains(o); public boolean containsall(collection coll) return c.containsall(coll); public String tostring() return c.tostring(); private static void fejl() throw new UnsupportedOperationException("Denne samling kan ikke ændres"); // afvisning af kald, der ændrer samlingen public void clear() fejl(); public boolean add(object o) fejl(); return false; public boolean remove(object o) fejl(); return false; // iteratorer skal afvise ændringer, men ellers fungere som c's iterator public Iterator iterator() return new Iterator() // anonym klasse, der implementerer Iterator Iterator i = c.iterator(); // videredelegering til c's iterator public boolean hasnext() return i.hasnext(); public Object next() return i.next(); public void remove() fejl(); ;
17 Variationer af designmønstret Proxy Fjernproxy (eng.: Remote Proxy) bruges, når man har brug for en lokal repræsentation af et objekt, der ligger på en anden maskine. Afsnit Dataforbindelse over netværk er et eksempel på dette. RMI (Remote Method Invocation) beskrevet i afsnit 14.3 anvender også dette princip. Cache fungerer som proxy for et objekt med nogle omkostningsfulde metodekald. I de tilfælde hvor en tidligere cachet returværdi fra metodekaldet kan bruges, foretages kaldet ikke, men den cachede værdi returneres i stedet (se afsnit , Dataforbindelse, der cacher forespørgsler). Adgangssproxy bestemmer, hvad klienten kan gøre med det virkelige objekt (Eksempel: UforanderligSamling). Virtuel Proxy udskyder oprettelsen af omkostningsfulde objekter, indtil der er brug for dem.
18 Doven Initialisering/Virtuel Proxy public class VirtuelStak implements Stak private Stak rigtigestak; public void lægpå(object o) if (rigtigestak==null) rigtigestak = new StakMedNedarving2(); rigtigestak.lægpå(o); public Object tagaf() if (rigtigestak==null) rigtigestak = new StakMedNedarving2(); return rigtigestak.tagaf(); Fordele og ulemper: Det rigtige objekt kan ikke oprettes endnu, f.eks. fordi det afhænger af andre objekter, der ikke er klar endnu, At oprette det rigtige objekt er dyrt i hukommelses eller CPUforbrug, og det er måske slet ikke sikkert, at programmet kommer til at bruge objektet, så det er en fordel at udskyde oprettelsen. Hver gang objektet skal bruges, skal det først tjekkes, om det rigtige objekt er blevet oprettet.
19 Designmønstret Iterator Problem: Du er i gang med at lave et system, som andre (klienter) skal anvende, hvor de skal kunne gennemløbe dine data. Du ønsker ikke, at de skal kende noget til, hvordan data er repræsenteret i dit system (f.eks. antal elementer eller deres placering i forhold til hinanden). Løsning: Definér et hjælpeobjekt (en Iterator), som klienten kan bruge til at gennemløbe data i dit system. En Iterator er beregnet til at gennemløbe data En Iterator har som minimum: en metode til at spørge, om der er flere elementer, og en metode til at hente næste element En Iterator bruges i stedet for en tællevariabel. Fordelen ved at definere en Iterator er, at klienten ikke behøver at vide noget om strukturen af de data, der gennemløbes.
20 public class UforanderligSamling implements Collection, Serializable private Collection c; // til videredelegering Designmønstret Iterator UforanderligSamling(Collection c) if (c==null) throw new NullPointerException(); this.c = c; // videredelegering af kald, der ikke ændrer samlingen c public int size() return c.size(); public boolean isempty() return c.isempty(); public boolean contains(object o) return c.contains(o); public boolean containsall(collection coll) return c.containsall(coll); public String tostring() return c.tostring(); private static void fejl() throw new UnsupportedOperationException("Denne samling kan ikke ændres"); // afvisning af kald, der ændrer samlingen public void clear() fejl(); public boolean add(object o) fejl(); return false; public boolean remove(object o) fejl(); return false; // iteratorer skal afvise ændringer, men ellers fungere som c's iterator public Iterator iterator() return new Iterator() // anonym klasse, der implementerer Iterator Iterator i = c.iterator(); // videredelegering til c's iterator public boolean hasnext() return i.hasnext(); public Object next() return i.next(); public void remove() fejl(); ;
21 Designmønstret Facade Problem: Et sæt af beslægtede objekter er indviklede at bruge, og der er brug for en simpel grænseflade til dem. Løsning: Definér et hjælpeobjekt, en Facade, der gør objekterne lettere at bruge. En Facade er altså et objekt, der giver en "brugergrænseflade" til nogle andre objekter og dermed forenkler brugen af disse objekter. Eksempel: URL URL er facade til URLConnection Eksempel: Socket og ServerSocket Er to forskellige facader til SocketImpl, der varetager den egentlige netværkskommunikation
22 Designmønstret Dynamisk Binding Problem: Programmet skal senere kunne udvides til at bruge nogle flere klasser, uden at programmet skal skrives om. Løsning: Definér et fælles interface (eller superklasse) for klasserne, og søg efter egnede klasser på køretidspunktet, indlæs dem og brug dem. Indlæs klasser dynamisk under kørslen, efter at programmet er startet. Dynamisk Binding/ Lænkning (eng.: Dynamic Linkage) Class.forName() Class klassen = Class.forName("java.util.Vector"); Object objektet = klassen.newinstance(); Eksempel: JDBC
23 Designmønstret Dynamisk Binding public interface Funktion public double beregn(double x); public class Funktion_sin implements Funktion public double beregn(double x) return Math.sin(x); public class FunktionsfortolkerDynBind public Funktion findfunktion(string navn) try // Prøv at indlæse en klasse der hedder f.eks. Funkt Class klasse = Class.forName("Funktion_"+navn); // Opret et objekt fra klassen Funktion f = (Funktion) klasse.newinstance(); return f; catch (Exception ex) ex.printstacktrace(); throw new IllegalArgumentException("ukendt funktion: public class BenytFunktionsfortolkerDynBind public static void main(string arg[]) public Funktion fortolk(string udtryk) FunktionsfortolkerDynBind analysator = new FunktionsfortolkerDynBind(); Funktion f = analysator.fortolk("sin(5*cos(x))"); // endnu ikke implementeret - returner bare noget. System.out.println("f(1)=" + f.beregn(1) return ); findfunktion("sin");
Objektorienterede metoder
Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 9 Andre designmønstre Andre designmønstre: Uforanderlig, Fluevægt, Lagdelt Initialisering, Komposit/Rekursiv Komposition, Kommando/Ændring Fremlæggelse af programmering/status
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 7 Swing og MVC Swing: MVC, Datamodeller, JTable, evt. JTree Evt.: Swing: Præsentations og kontroldel Læsning: VP 6 Dette materiale er under Åben Dokumentlicens, se
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereVideregående Programmering Obligatorisk opgave - 3. semester, efterår 2004
Overvågningssystem Beskrivelse Bagagesorteringssystemet består af et antal skranker (check-in) til modtagelse og registrering af bagage, et automatiseret sorteringsanlæg samt et antal terminaler (gates),
Læs mere9.8 Kildekode. side 88. Pakke Klasse Sidenummer. fortsætter..
9.8 Kildekode Pakke Klasse Sidenummer db Aktivitetstype 91 Behandler 91 ConnectDB 92 DagensKommentar 93 Helligdag 94 IkkePrimaerTid 94 Patient 96 Patientaftale 96 PatientAktivitet 97 Patientgruppe 98 PatientgruppeItem
Læs mereJacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004
Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret
Læs mereRMI introduktion. Denne artikel beskriver Java RMI (Remtote Method Invocation).
Denne guide er oprindeligt udgivet på Eksperten.dk RMI introduktion Denne artikel beskriver Java RMI (Remtote Method Invocation). Den beskriver teorien bag RMI, viser et simpelt kode eksempel og forklarer
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereDM01 DM01. 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk. D12, Elias 18/3-2003. Side 1 af 11
DM01 DM01 3. Obl. Afl. Jacob Christiansen, 130282, jacob.ch@mail.tdcadsl.dk D12, Elias 18/3-2003 Side 1 af 11 DM01 Indholdsfortegnelse: BILAG:...2 1 FORMÅL:...3 2 KLASSER:...4 2.1 DILEMMA:...4 2.1.1 METODER:...4
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 3 Skabende designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Eksempel: Forskellige slags
Læs mereDag 10 Flertrådet programmering
Videregående programmering i Java Dag 10 Flertrådet programmering Fremlæggelse af programmering/status for projekter Dokumentation med javadoc Flertrådede designmønstre: Arbejdstråd, Producent Konsument,
Læs mereCRMProxy. Installation og opsætning
CRMProxy Installation og opsætning Sådan starter du Hvis du har installeret en tidligere Proxy version, anbefaler vi, at du afinstallere denne, før du påbegynder en ny installation. Er der blevet ændret
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag ArrayList klassen Gør det let at lave en objektsamling (collection) med et variabelt antal elementer Der er mange andre slags objektsamlinger (se Collection interfacet i JavaDoc)
Læs mereVideregående programmering i Java
Videregående programmering i Java VPJ dag 1 Introduktion og overblik over kurset Datastrukturer: Lister, mængder og iteratorer Opsamling: Grafikprogrammering, komponenter, containere og layout Bruge komponenter
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereForelæsning Uge 6 Mandag
Forelæsning Uge 6 Mandag Tingene i denne forelæsning er ikke eksamenspensum Forelæsningen afrunder kurset, og forklarer nogle af de begreber, som I har mødt under kurset uden at få detaljeret forklaring
Læs merepublic Set(int size) { this.listelement = new LinkedList<Integer>(); }
// Henri AYCARD import java.util.linkedlist; public class Set { private LinkedList listelement; public Set(int size) { this.listelement = new LinkedList(); public boolean contains(int
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet
Læs mereKursus navn: Indledende programmering Kursus nr. 02101
Danmarks Tekniske Universitet Side 1 af 8 sider Skriftlig prøve, den 15. december 2007 Kursus navn: Indledende programmering Kursus nr. 02101 Tilladte hjælpemidler: Alle skriftlige hjælpemidler Vægtning
Læs meredintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser
Læs mereTabelbegrebet. Klassediagrammer (III) Oversigt. Anvendelse af Tabeller. Tabeller og qualified associations
Tabelbegrebet Klassediagrammer (III) Tabeller og qualified associations originally by Michael R. Hansen modified/extended by Anne E. Haxthausen Informatics and Mathematical Modelling Technical University
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag ArrayList Collection (samling af objekter) med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel
Læs mereParallelle algoritmer
Parallelle algoritmer Von Neumann s model John von Neumann 1903-57 Von Neumanns model: Instruktioner og data er lagret i samme lager, og én processor henter instruktioner fra lageret og udfører dem én
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereHvad er et distribueret objekt? Plan 12.3. Objekter, objektreferencer, metoder, parameteroverførsel. Objekter: notation
Plan 12.3. Oversigt over grundlæggende begreber Java: eksempel på applikation, programmering og oversættelse Uddybning af grundlæggende begreber Java RMI implementation Forklaring af øvelsen Hvad er et
Læs mereWebserverprogrammering
Webserverprogrammering WSP fortsat - dag 11 Behandling af XML (StAX) Syndikering og RSS med XML JAXB - XML Java-objekter Projekthjælp Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereÅrsafslutning i SummaSummarum 4
Årsafslutning i SummaSummarum 4 Som noget helt nyt kan du i SummaSummarum 4 oprette et nyt regnskabsår uden, at det gamle (eksisterende) først skal afsluttes. Dette betyder, at det nu er muligt at bogføre
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereA Profile for Safety Critical Java
A Profile for Safety Critical Java Martin Schoeberl Hans Søndergaard Bent Thomsen Anders P. Ravn Præsenteret af: Henrik Kragh-Hansen November 8, 2007 Forfatterne Martin Schoeberl Udvikler af JOP processoren
Læs mereAU-HR Sharepoint Vejledning Medarbejder indplacering
2012 AU-HR Sharepoint Vejledning Medarbejder indplacering Version 2.3 Aarhus Universitet 23-02-2012 Velkommen til AU-HR sharepoint site Databasen Medarbejder indplacering skal anvendes til at sikre, at
Læs mereNote om RMI af Peter Kjærsgaard
Note om RMI af Peter Kjærsgaard 1. Filosofi Filosofien i RMI er, at et objekt på en server skal kunne kaldes fra en klient, som om server-objektet lå på klienten. RMI er dermed på et højere niveau end
Læs mereVERSION 3.1.20 JULI 2013
HIGHLIGHTS EPOS LØN VERSION 3.1.20 JULI 2013 Indholdsfortegnelse 1 Tag skærmprint af gemte kriterier... 3 2 Nyhed: Definér lønseddel pr. lønseddelgruppe... 4 3 Ny importskabelon lønkonteringsfordeling...
Læs mereCivilingeniøreksamen 49104 12. januar 2001. Skriftelig prøve den 12. januar 2001 Kursusnummer 49104
Skriftelig prøve den 12. januar 2001 Kursusnummer 49104 Kursusnavn: Programmering. Tilladte hjælpemidler: Alle skriftlige hjælpemidler Opgavesættet består af fire opgaver, der har følgende vægtning: Opgave
Læs merePolymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion
Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereBRP 6.9.2006 Kursusintroduktion og Java-oversigt
BRP 6.9.2006 Kursusintroduktion og Java-oversigt 1. Kursusintroduktion 2. Java-oversigt (A): Opgave P4.4 3. Java-oversigt (B): Ny omvendings -opgave 4. Introduktion til næste kursusgang Kursusintroduktion:
Læs mereUNI Login brugeradministration. - fra Lectio til UNI Login
UNI Login brugeradministration - fra Lectio til UNI Login 1. udgave, december 2010 Indhold 1 Formålet med denne vejledning... 2 2 Eksportér csv-fil med elev- og/eller lærerdata fra Lectio... 3 3 Importér
Læs mereStakke, køer og lidt om hægtede lister - kapitel 16 og 17
Datastrukturer & Algoritmer, Datalogi C Forelæsning 2/11-2004 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Fundamentale datastrukturer man får brug for igen og igen Et
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mereRMI avanceret. Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer.
Denne guide er oprindeligt udgivet på Eksperten.dk RMI avanceret Denne artikel beskriver nogle mere avancerede features i RMI. Den gør det muligt at lave mere realistiske applikationer. Den forudsætter
Læs mereKlasser og nedarvning
Datalogi C, Efterår 2004 OH er, forelæsning 21/9-2004 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Opgaven til senere: Generalisere
Læs mereForelæsning Uge 3 Mandag
Forelæsning Uge 3 Mandag ArrayList Collection med variabelt antal elementer Der er mange andre Collection typer (se Collection interfacet i JavaDoc) MusicOrganizer projektet Eksempel på brug af ArrayList
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereDet sprogpædagogiske kørekort 2012/2013. Modul 2: Blog for begyndere
Det sprogpædagogiske kørekort 2012/2013 Modul 2: Blog for begyndere Ana Acosta og Christoph Schepers Indholdsfortegnelse Gloseliste... 2 Log på bloggen (punkt 1-3) 3 Opret og rediger en side med undersider
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereWeb- og serverprogrammering
Web- og serverprogrammering Arkitekturer i webprogrammer - dag 6 Model-View-Controller-arkitukturen Flerlags-arkitekturer Læsning: WJSP 10 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereOrdbogsværktøjet mikrov.dk
Kom godt i gang med Ordbogsværktøjet mikrov.dk Forord - et læse- og skrivestøttende sprogværktøj Ordbogsværktøjet kan anvendes som betydnings- og retskrivningsordbog eller som et undersøgende og støttende
Læs mereTabeller (I) Tabeller
Tabeller (I) Klassediagrammer (III) Tabeller og qualified associations Michael R. Hansen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark En tabel fra en mængde A til
Læs mereSDB. MySQL Installation Guide
SDB MySQL Installation Guide MERE 2003 D. 05 July, 2003 Installation af MySQL databasen Introduktion...2 Krav for at installere MySQL...2 Installationen...3 Udpak zip filen...3 Start Installationen...3
Læs mereDansk Ride Forbunds Stævnesystem Netværksopsætning
Dansk Ride Forbunds Stævnesystem Netværksopsætning Redigeret april 2009 Stævnesystemet kan bruges i netværksopsætning med flere stævnesystemer der benytter en fælles database. På denne måde kan man arbejde
Læs mereBrugerguide Integration af erhvervsdata fra NN Markedsata til Microsoft Dynamics NAV 2015
Brugerguide Integration af erhvervsdata fra NN Markedsata til Microsoft Dynamics NAV 2015 Indledning Med Navne & Numre Erhverv Webservice til Microsoft Dynamics NAV kan du oprette og vedligeholde data
Læs mereKursus i OOP og Java
Kursus i OOP og Java Sidst opdateret 24. november 2001 kun afpudset t.o.m lektion 12 Indholdsfortegnelse Kursus i OOP og Java 1 Til underviseren 5 Om transparenterne 5 Om ugesedlerne 5 Lektion 1 6 Mål
Læs merePia Schiermer, Underviser ved UNI-C og Amtscentrene 2 pia@schiermer.dk
Pia Schiermer, Underviser ved UNI-C og Amtscentrene 2 Bloggen er et online medie for både de store og de små, høje og lave, lange og brede. Bloggen er for alle på nettet også de andre. En blog, også kaldet
Læs mereSkolemedarbejder 9. klasse. Brugervejledning Optagelse.dk
Skolemedarbejder 9. klasse Brugervejledning Optagelse.dk Skolemedarbejder 9. klasse Brugervejledning Optagelse.dk Forfatter: Ulrik Sølgaard-Nielsen Styrelsen for It og Læring Styrelsen for It og Læring,
Læs mereForelæsning Uge 12 Torsdag
Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mereProjekt ID. Funktionen anvendes til:
2016/07/09 04:09 1/5 Projekt ID Projekt ID Funktionen anvendes til: Oprette/Åbne/Slette Novapoint projekter, terrænmodeller og vejmodeller. Administrere terrænmodellen og vejmodellen. Gemme projekt parametre
Læs mereService i rengøring. Service i rengøring. Daglig erhvervsrengøring
Service i rengøring Daglig erhvervsrengøring 1 Forord At udføre erhvervsrengøring kræver uddannelse dette undervisningsmateriale er udarbejdet som grundbogsmateriale til kurset Daglig erhvervsrengøring.
Læs mereDATALOGI 0GB. Skriftlig eksamen tirsdag den 6. januar 2004
Københavns Universitet bacheloruddannelsen i datalogi side 1 af 6 DATALOGI 0GB Skriftlig eksamen tirsdag den 6. januar 2004 Dette opgavesæt består af 6 nummererede sider. Eksamensdeltagerne bør straks
Læs mereArbejdsmiljøgruppens problemløsning
Arbejdsmiljøgruppens problemløsning En systematisk fremgangsmåde for en arbejdsmiljøgruppe til løsning af arbejdsmiljøproblemer Indledning Fase 1. Problemformulering Fase 2. Konsekvenser af problemet Fase
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave
Læs mereSpørgsmål og svar om håndtering af udenlandsk udbytteskat marts 2016
Indhold AFTALENS FORMÅL... 2 Hvilken service omfatter aftalen?... 2 Hvad betyder skattereduktion, kildereduktion og tilbagesøgning?... 2 AFTALENS INDHOLD OG OPBYGNING... 3 Hvilke depoter er omfattet af
Læs mereLederadfærdsanalyse II egen opfattelse af ledelsesstil
Lederadfærdsanalyse II egen opfattelse af ledelsesstil Instruktion Formålet med Lederadfærdsanalyse II Egen er at give dig oplysninger om, hvordan du opfatter din ledelsesstil. I det følgende vil du blive
Læs mereBorgerens Plan. Innovationspartnerskab til bedre tværsektorielt samarbejde med udgangspunkt i borgeren
Borgerens Plan Innovationspartnerskab til bedre tværsektorielt samarbejde med udgangspunkt i borgeren Borgerens Plan Strategierne & Visionerne Et sundhedsvæsen der er Borgerinddragende Borgernært Sammenhængende
Læs mereSæt ord pa sproget. Indhold. Mål. November 2012
Sæt ord pa sproget November 2012 Indhold Mål... 1 Baggrund... 1 Projektets mål... 1 Sammenhæng... 2 1 Beskrivelse af elevernes potentialer og barrierer... 2 2 Beskrivelse af basisviden og hverdagssprog...
Læs mereDokumentation. Udbyder : sms1919.dk Service : sms-dialog Version : v1.01
Dokumentation Udbyder : sms1919.dk Service : sms-dialog Version : v1.01 Indholdsfortegnelse Versionshistorik... 3 Konceptet... 4 Oprettelse af konto... 5 Via sms1919.dk... 5 E-mailinterface... 5 Redigering
Læs mereRediger eller opret institutionsmedarbejder på en ungdomsuddannelse
Rediger eller opret institutionsmedarbejder på en ungdomsuddannelse Institutionens brugeradministrator på Optagelse.dk kan oprette medarbejdere med forskellige roller og rettigheder. Når du opretter en
Læs mereInfrastruktur i primærsektoren
Platform, teknisk organisering og netværk 1985-1995 Praksissektorens klinikker var i starten næsten udelukkende baseret på lokale netværk (LAN) med lokal server og et antal PC ere tilknyttet denne ene
Læs mereGODE RÅD. Vild med dansk 8 - Sprog der handler. Hvad skal stå hvor i sætningsskemaet? Biled 1 eller biled 2? Hvilke ord hører til samme led?
GODE RÅD Hvad skal stå hvor i sætningsskemaet? Biled 1 eller biled 2? Hvilke ord hører til samme led? Hovedsætning eller ledsætning? Forfeltet er tomt Grundleddet er væk Hvad er genstandsled, hensynsled
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Niveauer af programbeskrivelser Statiske / dynamiske beskrivelser Klassevariabler og klassemetoder Variabler og metoder der et tilknyttet klassen (i stedet for at være tilknyttet
Læs mereSpørgeskema på HVAL.DK
Skive, d. 24-05-2006 Journal nr. 7.5.286 Spørgeskema på HVAL.DK Et webbaseret værktøj udviklet af Programdatateket i Viborg amt i forbindelse med Videndeling. Indholdsfortegnelse INDHOLDSFORTEGNELSE 2
Læs mereNetværksguide. sådan bruger du dit netværk. Danmarks måske stærkeste netværk
Netværksguide sådan bruger du dit netværk Danmarks måske stærkeste netværk Step 1 Formålet med guiden Hvor kan netværk hjælpe? Netværk er blevet et centralt middel, når det gælder om at udvikle sig fagligt
Læs mereStakke, køer og lidt om hægtede lister
Datastrukturer & Algoritmer, Datalogi C Forelæsning 4/11-2003 Henning Christiansen Stakke, køer og lidt om hægtede lister - kapitel 16 og 17 Hvorfor? Fundamentale datastrukturer man får brug for igen og
Læs merePROGRAM. using System; using System.Collections.Generic; using System.Text; using System.Collections;
PROGRAM using System; using System.Collections.Generic; using System.Text; using System.Collections; namespace EventManager class Program static void Main(string[] args) string hovedmenu = ""; string svar;
Læs mereFAQ Værd at vide om nyt ForældreIntra
FAQ Værd at vide om nyt ForældreIntra En række af funktionerne i Classic findes ikke i det nye ForældreIntra. Vi har lavet en FAQ med forklaringer og forslag til, hvilke andre muligheder der findes for
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 5 Model View Controller arkitekturen Model View Controller arkitekturen (MVC) Evt.: Rekursion Læsning: VP 19 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html
Læs mereDen bedste dåse, en optimeringsopgave
bksp-20-15e Side 1 af 7 Den bedste dåse, en optimeringsopgave Mange praktiske anvendelser af matematik drejer sig om at optimere en variabel ved at vælge en passende kombination af andre variable. Det
Læs mereForelæsning Uge 12 Mandag
Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mereBogstavregning. Formler... 46 Reduktion... 47 Ligninger... 48. Bogstavregning Side 45
Bogstavregning Formler... 6 Reduktion... 7 Ligninger... 8 Bogstavregning Side I bogstavregning skal du kunne regne med bogstaver og skifte bogstaver ud med tal. Formler En formel er en slags regne-opskrift,
Læs mereKommuniker: Symbolskrivning 2 Kom godt i gang med tavler 1
Denne aktivitet viser, hvordan du kan lave en enkelt tavle til skrivning Dette hjælpeark følger efter Kom godt i gang med at skrive og forudsætter, at du er fortrolig med de grundlæggende funktioner i
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Sortering ved hjælp af klassen Collections Ved hjælp af interfacet Comparable Ved hjælp af interfacet Comparator findbest som sorteringsproblem Køreprøven i uge 7 Form Forberedelse
Læs mereForelæsning Uge 5 Mandag
Forelæsning Uge 5 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Brug af klassen Collections og interfacet Comparable BlueJ s Debugger Nyttig til at inspicere
Læs mereOOP e uge kursusgang: Samtidighed (II) Safety = sikkerhed. Safety
= sikkerhed I denne sammenhæng: = "trådsikkerhed" " conditions.. stipulate that nothing bad will ever happen" (XP s. 377) Trådsikkerhed betyder sikkerhed mod inkonsistens pga. flertrådning ikke f.eks.
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereRMI med BlueJ. Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007
RMI med BlueJ Tutorial lavet af Jákup W. Hansen TSU 2006 3.semester 11. desember 2007 Hvad er RMI? Når man arbejder med Distribuerede Systemer, som igen vil sige at man ønsker at flere end én komputer
Læs mereHar du ikke tidligere arbejdet, kan du altså tjene op til 30.000 kr., uden at skulle bekymre dig om, at din pensionsydelse bliver mindre.
FOLKEPENSIONIST Få folkepension samtidig med, at du arbejder Tjen 30.000 kr. ekstra Nu kan det bedre betale sig at arbejde samtidig med, at du modtager folkepension. Du kan nu tjene op til 30.000 kr. mere
Læs mereStart med at vælge hvilken afdeling der skal laves ændringer i f.eks. fodbold.
Start med at vælge hvilken afdeling der skal laves ændringer i f.eks. fodbold. Her ses da alle sider og undersider som siden fodbold indeholder. Nu kan du gå i gang med f.eks. at tilføje nye sider. Klik
Læs mereVejledende løsninger
Roskilde Universitetscenter side 1 af 8 sider Vejledende løsninger Opgave 1 Spørgsmål 1.1 a = b - a; b = b - a; a = b + a; Opgaven har flere løsninger. En anden løsning er: a = b + a; b = a - b; a = a
Læs mereÆldresagen datastue Aktivitetsteltscentret Bavnehøj Nørre Snede Tema: Internettet på ipad. Tema. Internettet. på ipad Opdateret 29.
n Tema Internettet på ipad Opdateret 29. marts 2016 Sofus Opdateret d. 29. marts 2016 Side 1 Indhold Side 3 Side 4 Side 5 Side 6 Side 7-8 Side 9 Side 10 Side 11 Side 12 Side 13 Side 14 Side 15 Side 16
Læs mere1. Send Digitalt knappen anvendes til at afsende meddelelsen til de valgte modtagere. (Alt- S)
Send Digitalt. Elementerne i Send Digitalt vinduet 1. Send Digitalt knappen anvendes til at afsende meddelelsen til de valgte modtagere. (Alt- S) 2. Tjek kan anvendes til at kontrollere, om der kan sendes
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mere//Udskriver System.out.println("Hej " + ditfornavn + " " + ditefternavn + "."); System.out.println("Du er " + dinalder + " aar gammel!
Denne guide er oprindeligt udgivet på Eksperten.dk Brugerinput i Java Denne her artikel gennemgår diverse ting ved brug af brugerinput i Java. Den starter med det simple og fortæller derefter skridt for
Læs mereVideregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
Læs mere