Videregående programmering i Java
|
|
|
- Sidsel Dagmar Bjerre
- 9 år siden
- Visninger:
Transkript
1 Videregående programmering i Java Dag 12 Introspektion og optimering Introspektion af klasser på køretidspunktet (reflektion) Evt.: JAR filer og oprettelse af eksekverbare JAR filer Optimering af programmer Evt.: Optimeringsværktøjer (Borland OptimizeIt) Projektvejledning Læsning: VP 9, VP 11 Dette materiale er under Åben Dokumentlicens, se
2 Sidste gang - opsamling Fra sidst: JNI og kald til maskinkode/c/c++ fra Java Fra sidst: Internationalisering
3 De to sidste gange - nogen ønsker? Dag 13 valgfrie emner Evt: Introduktion til J2EE og EJB Evt.: Værktøjer til forbedring af kodekvalitet kodemetrikker og audit Evt.: Udskrift til printer/sideformattering Projektvejledning Udgår: Introduktion til J2ME, midletter og programmering af mobiltelefoner Dag 14 afrunding (og valgfrie emner) Evt.: Nye faciliteter i JDK 1.4, herunder XML processering, det nye I/O API, logning og antagelser. Evt.: Nye faciliteter i JDK 1.5, herunder ny syntaks Evt.: AOP Aspekt orienteret programmering Om eksamen og eksamensforberedelse Spørgetime Fremlæggelse af projekter
4 Introspektion af klasser på køretidspunktet (reflektion) Introspektion (eng.: Introspection eller reflection): hvordan man under kørslen af programmet kan inspicere et vilkårligt objekt (pakken java.lang.reflect.*) finde dets klasse finde ud af, hvilke metoder og variabler klassen har kalde metoderne og aflæse/sætte variablerne Specielle faciliteter til javabønner (i java.beans.*) oprette nye objekter fra klassen etc. etc. Introspektion bruges sjældent, men kan være nyttigt i specielle tilfælde: Udviklingsværktøj debuggerens mulighed for introspektion af variabler GUI design med (alle mulige) javabønner Serialisering (og dermed RMI) XML serialisering af javabønner (XMLEncoder) anvender det også Overkommeligt at skrive egen 'serialisering' til at hente/gemme data Det er godt at kende til mulighederne for introspektion for at forstå, hvordan andre klasser fungerer
5 Introspektion import java.lang.reflect.*; import java.awt.*; public class UndersoegKlasse public static void main(string[] args) Object o = new Frame(); // Find klassen Class klasse = o.getclass(); System.out.println("Klassen navn er: "+klasse.getname()); // Find superklasserne Class superklasse = klasse.getsuperclass(); while (superklasse!= null) System.out.println("... og den har superklasse: "+superklasse.getname()); superklasse = superklasse.getsuperclass(); Klassen navn er: java.awt.frame... og den har superklasse: java.awt.container... og den har superklasse: java.awt.component... og den har superklasse: java.lang.object
6 import java.lang.reflect.*; import java.awt.*; String getname() Introspektion Vigtigste metoder i Class (der repræsenterer en klasse) giver en streng med klassens navn (og pakkenavn) public class FindMetoder Class getsuperclass() giver Class objektet, der repræsenterer superklassen Class[] getinterfaces() giver et array med de interfaces, klassen implementerer public static void main(string[] args) Field[] getfields() giver et array med de variabler, der er erklæret public i klassen Object o = new Button(); Constructor[] getconstructors() giver et array med de konstruktører, der er erklæret public Method[] getmethods() giver et array med de metoder, der er erklæret public i klassen // Find klassen Class[] getclasses() Class klasse = o.getclass(); giver et array af de indre klasser (og interfaces), der er public i klassen System.out.println("Klassen navn er: "+klasse.getname()); Method[] metoder = klasse.getmethods(); for (int i=0; i<metoder.length; i++) Method m = metoder[i]; System.out.print("Metode "+m.getname()); System.out.print(" har returtype: "+m.getreturntype().getname()); Class[] parametertyper = m.getparametertypes(); System.out.print(" og parametertyper:"); for (int j=0; j<parametertyper.length; j++) System.out.print(" " + parametertyper[j].getname()); System.out.println(); Klassen navn er: java.awt.button... Metode: notify har returtype: void Metode: notifyall har returtype: void Metode: tostring har returtype: java.lang.string... Metode: getlabel har returtype: java.lang.string Metode: setlabel har returtype: void og parametertyper: java.lang.string...
7 import java.lang.reflect.*; import javax.swing.*; import java.beans.*; Introspektion public class Boenneintrospektion mnemonic: the keyboard character mnemonic (værdi=0) public static void main(string[] args) throws Exception Object objekt = new JButton(); Class klasse = objekt.getclass(); BeanInfo bønneinfo = Introspector.getBeanInfo(klasse); PropertyDescriptor egenskaber[] = bønneinfo.getpropertydescriptors(); for (int i=0; i<egenskaber.length; i++) PropertyDescriptor e = egenskaber[i]; inputmap: inputmap (værdi=javax.swing.inputmap@6e3d60) insets: insets (værdi=java.awt.insets[top=5,left=17,bottom=5,right=17]) alignmenty: The preferred vertical alignment of the component. (værdi=0.5) alignmentx: The preferred horizontal alignment of the component. (værdi=0.0) tooltiptext: The text to display in a tool tip. (værdi=null) verticalalignment: The vertical alignment of the icon and text. (værdi=0) defaultbutton: Whether or not this button is the default button (værdi=false) rolloverenabled: Whether rollover effects should be enabled. (værdi=false) horizontalalignment: The horizontal alignment of the icon and text. (værdi=0) borderpainted: Whether the border should be painted. (værdi=true) System.out.print(e.getName()+": "+e.getshortdescription()); Method læsemetode = e.getreadmethod(); if (læsemetode!= null) Object[] tomparameterliste = ; Object værdi = læsemetode.invoke(objekt,tomparameterliste); System.out.print(" (værdi="+værdi+")"); // sæt egenskaben til true, hvis den kan sættes og er af type boolean Method skrivemetode = e.getwritemethod(); if (skrivemetode!=null && e.getpropertytype()==java.lang.boolean.type) Boolean[] parameterlistemedtrue = Boolean.TRUE ; skrivemetode.invoke(objekt, parameterlistemedtrue ); // sæt egenskab System.out.println();
8 Pakken java.lang.reflect
9 Egne rutiner til at hente/gemme data Det er ret nemt at skrive 'serialiseringsrutiner' til at indlæse/gemme data i eget format Eksempel: Læse data fra fil og gemme i Boks objekt Kræver at objektvariablerne er public String navn = bidder.nexttoken(); double værdi = Double.parseDouble(bidder.nextToken()); if (navn.equals("længde")) boks.længde = værdi; if (navn.equals("bredde")) boks.bredde = værdi; if (navn.equals("højde")) boks.højde = værdi; //... osv. Osv osv... String navn = bidder.nexttoken(); double værdi = Double.parseDouble(bidder.nextToken()); // smartere: Udnyt variabelnavn=navn i datafil! try boks.getclass().getfield(navn).setdouble(boks,værdi); catch (Exception e) e.printstacktrace();
10 Egne rutiner til at redigere i data import java.lang.reflect.field; import javax.swing.*; import javax.swing.table.abstracttablemodel; public class RedigerObjekt extends JPanel JScrollPane jscrollpane1 = new JScrollPane(); JTable jtable1 = new JTable(); private Object objektet; private Class klassen; private Field[] felter; public void setobjekt(object objekt) this.objektet = objekt; klassen = objektet.getclass(); felter = klassen.getdeclaredfields(); jtable1.setmodel(new ObjektTableModelAdapter()); public Object getobjekt() return objektet; public RedigerObjekt() try jbinit(); catch (Exception ex) ex.printstacktrace();
11 Egne rutiner til at redigere i data class ObjektTableModelAdapter extends AbstractTableModel public int getcolumncount() return 2; public int getrowcount() return felter.length; public Object getvalueat(int ræk, int kol) if (kol==0) return felter[ræk].getname(); try return felter[ræk].get(objektet); catch (Exception ex) ex.printstacktrace(); return "???"; public String getcolumnname(int kol) if (kol==0) return "felt"; else return "værdi"; public boolean iscelleditable(int ræk, int kol if (kol==0) return false; else return true; public void setvalueat(object værdi, int ræk, System.out.println("setValueAt(" + værdi); try Field f = felter[ræk]; Class t = f.gettype(); if (t == Double.TYPE) f.setdouble(objektet, Double.parseDouble(værdi.toString())); else if (t == Integer.TYPE) f.setint(objektet, Integer.parseInt(værdi.toString())); else if (t == String.class) f.set(objektet, værdi); else JOptionPane.showMessageDialog(null f + " ej understøttet"); catch (Exception ex) ex.printstacktrace(); JOptionPane.showMessageDialog(null, ex);
12 Metoder/variabler der ikke er public getmethod() > getdeclaredmethod() getfield() > getdeclaredfield()... setaccessible(true) for at slå adgangskontrol fra Kræver at security manageren tillader det! String navn = bidder.nexttoken(); double værdi = Double.parseDouble(bidder.nextToken()); // sætter også private variabler! try java.lang.reflect.field f; f = boks.getclass().getdeclaredfield(navn); f.setaccessible(true); f.setdouble(boks,værdi); catch (Exception e) e.printstacktrace();
13 JAR-filer JAR fil er en ZIP fil med klasser jar cf program.jar BenytPakker.class minpakke zip r program.jar BenytPakker.class minpakke Værktøjet kan lave den for en! Oprettelse af eksekverbare JAR filer JAR fil med META INF/MANIFEST.MF Her er klassen med main metoden angivet Manifest-Version: 1.0 Main-Class: BenytPakker Manifest-Version: 1.0 Created-By: (Sun Microsystems Inc.) Main-Class: java2d.java2demo Kan aktiveres ved dobbeltklik (ligesom.exe fil) eller med java jar program.jar
14 Optimering af programmer Programmér først optimér bagefter Identificere flaskehalsene og optimer kun disse dele af koden Spild af tid (og overblik) at optimere unødvendigt Optimering af hukommelsesforbrug Vær bevidst om hvad objekter fylder Mange små objekter kan være et problem Brug et eller flere array Flerdimensionelle array er faktisk array af array (et array er et objekt) Størrelse af new byte[1][ ]: 1MB (+ array objekt á 16 byte) Størrelse af new byte[ ][1]: 17MB (= array á 16+1 byte!) CPU forbrug Undgå: at oprette mange objekter som skal nedlægges igen Vær især opmærksom på String (og andre uforanderlige objekter) at oprette mange tråde at kaste og fange mange undtagelser synkroniserede blokke/metoder mange (evt. anonyme) klasser introspektion
15 Optimering af programmer // Demonstrerer hastighedsforskellen mellem String og StringBuffer // ved sammensætning af mange strenge public class HastighedsforskelMellemStringOgStringBuffer public static void main (String[] arg) long tid1 = System.currentTimeMillis(); String s = ""; for (int i=0; i<10000; i++) s = s + "x"; // her oprettes objekter long tid2 = System.currentTimeMillis(); System.out.println("Antal sekunder med String: "+ (tid2-tid1)*0.001 ); StringBuffer sb = new StringBuffer(10000); // reservér plads til tegn for (int i=0; i<10000; i++) sb.append("x");// her ændres i det samme objekt String s2 = sb.tostring(); long tid3 = System.currentTimeMillis(); System.out.println("Antal sek med StringBuffer: "+ (tid3-tid2)*0.001 ); Antal sekunder med String: Antal sek med StringBuffer: 0.021
16 Optimering: Java versus C/C++ Hukommelsesforbrug Java programmer fylder mere end C programmer CPU forbrug Java 'hotspot' JIT oversætter 'hotspot' kun kode der løbes igennem mange gange JIT Just In Time oversætter bytekode til maskinkode Java kan optimere efter hvordan programmet rent faktisk kører det meste af tiden Java i visse tilfælde hurtigere end C! Opstart af Java program er (altid) langsommere end et C program
17 Evt.: Optimeringsværktøjer (Borland OptimizeIt)
Videregå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
Kursus 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
Videregå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
Videregå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),
Dag 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,
AAU, 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 [email protected]. Besvarelsen skal
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 2
DM502 Forelæsning 2 Repetition Kompilere og køre Java program javac HelloWorld.java java HeloWorld.java Debugge Java program javac -g HelloWorld.java jswat Det basale Java program public class HelloWorld
University 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
Videregående programmering i Java
Videregående programmering i Java Dag 13 valgfrie emner Evt: Introduktion til J2EE og EJB Hvordan definere egne generics Evt.: Værktøjer til forbedring af kodekvalitet kodemetrikker og audit Projektvejledning
Jacob 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
Indledning. Hvorfor det forholder sig sådan har jeg en masse idéer om, men det bliver for meget at komme ind på her. God fornøjelse med læsningen.
Indledning...2 Variabler...13 Eksempel: 1...13 Eksempel 2:...13 Eksempel 3:...15 Eksempel 4:...16 Metoder...17 Metode (intet ind og intet ud)...17 Metode (tekst ind)...18 Metode (tekst ind og tekst ud)...19
Objektorienterede metoder
Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags
Ugeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
RMI 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
Tree 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
SWC 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
Software 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 /
University of Southern Denmark Syddansk Universitet. DM502 Forelæsning 3
DM502 Forelæsning 3 Indlæsning fra tastatur Udskrift til skærm Repetition Beregning af middelværdi Gentagelse med stop-betingelse (while) Heltalsdivision Division med nul Type-casting ( (double) ) Betinget
Hvad 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øsning af møntproblemet
Løsning af møntproblemet Keld Helsgaun RUC, oktober 1999 Antag at tilstandene i problemet (stillingerne) er repræsenteret ved objekter af klassen State. Vi kan da finde en kortest mulig løsning af problemet
Kursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Videregående programmering i Java
Videregående programmering i Java Dag 2 Objektorienterede principper Fastlæggelse af emne for projekt Ansvarsområder, kobling og indkapsling Programmere i pakker Specificere funktionalitet i et interface
//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
SigmaT.
Java + Groovy Disposition Om SigmaT Eksempel på indlejring af Groovy Overvågning af PEM Ønske om dynamisk loaded Java uden at fifle med classloaderen Groovy til hjælp Opsamling hvad jeg ikke har fortalt
BRP 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:
Web- og serverprogrammering
Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Web- og serverprogrammering Databasekommunikation - dag 7 Strategier til databaseadgang JDBC (Java DataBase Connectivity)
Threads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
DM502. Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/
DM502 Peter Schneider-Kamp ([email protected]) http://imada.sdu.dk/~petersk/dm502/ 1 DM502 Bog, ugesedler og noter De første øvelser Let for nogen, svært for andre Kom til øvelserne! Lav opgaverne!
Kursus 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
DANMARKS 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
XML parsning i Java. Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM.
Denne guide er oprindeligt udgivet på Eksperten.dk XML parsning i Java Denne artikel beskriver hvordan man parser XML i Java. Den beskriver W3C DOM, SAX og JDOM. Den forudsætter kendskab til Java og XML.
Singleton 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.
A 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
SAX Simple API for XML.
SAX Simple API for XML. En API (Application Programming Interface) et bibliotek eller et sæt af funktioner eller metoder. SAX er et sådant bibliotek af abstrakte metoder som f. eks. startdocument() eller
Videregå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
Skriftlig 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
Databaseadgang fra Java
Databaseadgang fra Java Grundlæggende Programmering med Projekt Peter Sestoft Fredag 2007-11-23 Relationsdatabasesystemer Der er mange databaseservere Microsoft Access del af Microsoft Office MySQL god,
Virkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Grundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Hvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Kursus 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
Test af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Introduktion til ActionScript
Introduktion til ActionScript Kaspar Rosengreen Nielsen [email protected] i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, [email protected] 1 Dagens program Opsamling på
Hvordan vælger jeg dokumentprofilen?
Hvordan vælger jeg dokumentprofilen? Valget af OIOUBL profil i en konkret dokumentudveksling vil bl.a. afhænge af, hvilke OIOUBL profiler den anden part i udvekslingen understøtter. Et konkret eksempel
Videregående programmering i Java
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
Eksempel på en database: studenter, kurser, eksamener
Udvidet Programmering 1999 Forelæsning 20, fredag 12. november 1999 Relationsdatabaser: relationer, tupler, attributter Forespørgselssproget SQL Databasesystemet PostgreSQL Tilgang til relationsdatabaser
RMI 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
Introduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen [email protected] i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, [email protected] 1 Dagens program Opsamling
Programmering. Udvidet Programmering. Kurserne. Kurset: programmering i sproget Java. Lærerne: Morten Larsen og Peter Sestoft
Kurserne Kurset: programmering i sproget Java Programmering og Udvidet Programmering Lærerne: Morten Larsen og Peter Sestoft Kursusmål: I skal lære at skrive interessante programmer i Java Forudsætninger:
Anvendelse 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øsning af skyline-problemet
Løsning af skyline-problemet Keld Helsgaun RUC, oktober 1999 Efter at have overvejet problemet en stund er min første indskydelse, at jeg kan opnå en løsning ved at tilføje en bygning til den aktuelle
Bits, bit operationer, integers og floating point
Denne guide er oprindeligt udgivet på Eksperten.dk Bits, bit operationer, integers og floating point Denne artikel beskriver hvordan data gemmes som bits og hvordan man kan manipulere med bits. Den forudsætter
Webserverprogrammering
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
Skriftlig 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
Forelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
