Videregående programmering i Java
|
|
- Per Lorentzen
- 7 år siden
- Visninger:
Transkript
1 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 Udgår: Introduktion til J2ME, midletter og programmering af mobiltelefoner Læsning: Evt VP 14 (VP 13 udgår) Dette materiale er under Åben Dokumentlicens, se
2 Sidste gang - spørgsmål? 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
3 Java 2 Enterprise Edition (J2EE) - til store servere J2EE platformens dele Webserver EJB (Enterprise JavaBeans) CORBA fjernkald af objekter (ikke kun Java, sværere end RMI) JTS (Java Transaction Service) transaktioner (commit, rollback) JMS (Java Message Service) til MQ systemer. tjeneste til at sende og modtage synkrone eller asynkrone meddelelser mellem programmer JavaMail, XML behandling,... Sun varetager 'kun' J2EE specifikationen Mange uafhængige udbydere af J2EE platforme Borland AppServer Oracle IBM WebbSphere JBoss (med åben kildekode) Sun (referenceimplementation)... (>10 andre) J2EE!= udviklingsplatform Mange udbydere har også egen, 'strømlinet' webudviklingsmodel
4 Enterprise JavaBeans (EJB) - objekter i serveren J2EE container varetager EJB objekter Persistens, transaktioner, sikkerhed Kald kan ske lokalt eller over netværket F.eks. fra JSP sider! EJB koncentrerer sig om programlogik Serveren sørger for al 'benarbejdet' Sessionsbønner repræsenterer et forløb Entitetsbønner repræsenterer data fra en tabel Containerstyret persistens (CMP) Al databasekode bliver genereret af containeren (!) Bønnestyret persistens (BMP) Programmøren skriver selv databasekoden Meddelelses drevne bønner
5 Princippet i kald af metoder i objekter over netværket Maskine A Maskine B klient RMI skel kald kald interface til serverobjekt RMI stub serverobjekt En EJB bønne kører en en J2EE applikationsserver muligvis adskilt fra klienten Hver EJB bønne udgøres af tre stykker kildetekst (to interfaces og en klasse): 1)Et fjerninterface (eng.: remote interface), der specificerer hvordan bønnen kan bruges af klienten. 2)Et hjemmeinterface (eng.: home interface), der specificerer, hvordan bønnen kan fremfindes, oprettes og nedlægges af klienten. 3)En implementationsklasse af bønnen, med den programkode, der beskriver, hvad der skal ske, når de forskellige metoder i fjerninterfacet kaldes.
6 Implementationen af bønnen package vp.ejb; import java.rmi.remoteexception; import javax.ejb.*; public class VekslerBean implements SessionBean public void ejbcreate() public void setsessioncontext(sessioncontext sc) public void ejbactivate() public void ejbpassivate() public void ejbremove() public double eurotildollar(int euro) throws RemoteException return euro/1.1; Kildekoden i en EJB public double dollartileuro(double dollar) throws RemoteException return dollar*1.1;... plus noget information til EJB containeren (XML) <?xml version = '1.0' encoding = 'UTF-8'?> <!DOCTYPE ejb-jar PUBLIC "-//Sun Microsystems, Inc.//DTD Enterprise JavaBeans 1.1//EN" " <ejb-jar> <enterprise-beans> <session> <description>en veksle-bønne (tilstandsløs sessionsbønne)</description> <display-name>veksler</display-name> <ejb-name>veksler</ejb-name> <!-- JNDI-navn klient bruger --> <remote>vp.ejb.veksler</remote> <!-- fjerninterfacets navn --> <home>vp.ejb.vekslerhome</home> <!-- hjemmeinterfacets navn --> <ejb-class>vp.ejb.vekslerbean</ejb-class><!-- klassenavn på bønnen --> <session-type>stateless</session-type> <!-- bønnen er tilstandsløs --> <transaction-type>container</transaction-type> </session> <!--... beskrivelse af flere bønner kunne komme her... --> </enterprise-beans> </ejb-jar> Fjerninterfacet (hvordan objektet kan bruges af klienten): package vp.ejb; import java.rmi.remoteexception; import javax.ejb.ejbobject; public interface Veksler extends EJBObject public double dollartileuro(double dollar) throws RemoteException; public double eurotildollar(int euro) throws RemoteException; Hjemmeinterfacet (fremfinding) package vp.ejb; import java.rmi.remoteexception; import javax.ejb.*; public interface VekslerHome extends EJBHome public Veksler create() throws RemoteException, CreateException;
7 Brug af Veksler-bønnen package vp.ejb; import javax.naming.*; // pakken med JNDI import javax.rmi.portableremoteobject; public class BenytVeksler public static void main(string[] args) throws Exception Bruge en EJB // Angiv data til JNDI til dens kontekst. // Disse kunne også i stedet angives i jndi.properties Hashtable env = new Hashtable(); env.put(context.initial_context_factory, "com.evermind.server.rmi.rmiinitialcontextfactory"); env.put(context.security_principal, "admin"); env.put(context.security_credentials, "welcome"); env.put(context.provider_url, "ormi://localhost:23891/current-workspace-app"); Context ctx = new InitialContext(env); VekslerHome hjem = (VekslerHome)ctx.lookup("Veksler"); Hjemmeinterfacet (fremfinding) package vp.ejb; import java.rmi.remoteexception; import javax.ejb.*; public interface VekslerHome extends EJBHome public Veksler create() throws RemoteException, CreateException; Veksler valutaveksler = hjem.create(); double beløb = valutaveksler.eurotildollar(100); System.out.println("100 euro er "+beløb+" dollar."); beløb = valutaveksler.dollartileuro(100); System.out.println("100 dollar er "+beløb+" euro."); Klienten slår først bønnen op med JNDI og får derved fat i hjemmeinterfacet. Ved hjælp af dette oprettes (en fjernreference til) bønnen, som derefter anvendes. Fjerninterfacet (hvordan objektet kan bruges af klienten): package vp.ejb; import java.rmi.remoteexception; import javax.ejb.ejbobject; public interface Veksler extends EJBObject public double dollartileuro(double dollar) throws RemoteException; public double eurotildollar(int euro) throws RemoteException;
8 Typer af EJB Sessionsbønner repræsenterer et eller andet forløb og indeholder de data der knytter sig til dette forløb Tilstandsløse (eksempel: Veksler bønnen) Flere klienter kan dele samme instans Tilstandsfulde Hver klient får sin egen instans Entitetsbønner repræsenterer data fra en tabel. De er persistente (dvs. deres data 'bakkes op' af en database). Containerstyret persistens (CMP) Al databasekode bliver genereret af containeren (!) Bønnestyret persistens (BMP) Programmøren skriver selv databasekoden Meddelelses drevne bønner
9 Entitetsbønner med CMP Udvikleren designer databasen... CREATE TABLE kunder (navn varchar(32), kredit float) INSERT INTO kunder VALUES('Jacob', -1799) INSERT INTO kunder VALUES('Brian', 0)... og beder derefter udviklingsværktøjet generere en Kunde-EJB Bruge Kunder-objekter fra klienten Hashtable env = new Hashtable(); env.put(context.initial_context_factory, "com.evermind.server.rmi.rmiinitialcontextfactory"); env.put(context.security_principal, "admin"); env.put(context.security_credentials, "welcome"); env.put(context.provider_url, "ormi://localhost:23891/current-workspace-app"); Context ctx = new InitialContext(env); KundeHome kunderhome = (KundeHome)ctx.lookup("Kunde"); Kunde kunder; // Use one of the create() methods below to create a new instance // kunder = kunderhome.create( ); // kunder = kunderhome.create( java.lang.string navn ); // Retrieve all instances using the findall() method // (CMP Entity beans only) Collection coll = kunderhome.findall(); Iterator iter = coll.iterator(); while (iter.hasnext()) kunder = (Kunde)iter.next(); System.out.println("navn = " + kunder.getnavn()); System.out.println("kredit = " + kunder.getkredit()); System.out.println(); Hjemmeinterfacet (fremfinding) public interface KunderHome extends EJBHome Kunder create() throws RemoteException, CreateException; Kunder findbyprimarykey(string primarykey) throws RemoteException, FinderException; Collection findall() throws RemoteException, FinderException; Fjerninterfacet (hvordan objektet kan bruges af klienten): public interface Kunder extends EJBObject String getnavn() throws RemoteException; void setnavn(string newnavn) throws RemoteException; Float getkredit() throws RemoteException; void setkredit(float newkredit) throws RemoteException;
10 EJB Query Language
11 EJB Query Language <entity> <description>entity Bean ( CMP )</description> <display-name>personer</display-name> <ejb-name>personer</ejb-name> <home>mypackage1.personerhome</home> <remote>mypackage1.personer</remote> <local-home>mypackage1.personerlocalhome</local-home> <local>mypackage1.personerlocal</local> <ejb-class>mypackage1.impl.personerbean</ejb-class> <persistence-type>container</persistence-type> <prim-key-class>java.lang.long</prim-key-class> <reentrant>false</reentrant> <cmp-version>2.x</cmp-version> <abstract-schema-name>personer</abstract-schema-name> <cmp-field> <field-name>personer_pk</field-name> </cmp-field> <cmp-field> <field-name>navn</field-name> </cmp-field> <cmp-field> <field-name>kredit</field-name> </cmp-field> <primkey-field>personer_pk</primkey-field> <query> <query-method> <method-name>finddemmedstoerrekredit</method-name> <method-params> <method-param>int</method-param> </method-params> </query-method> <ejb-ql>select object (p) from Personer p where p.kredit >?1</ejb-ql> </query> </entity> </enterprise-beans> </ejb-jar>
12 EJB: Transaktioner Programmatisk ('i hånden' ) transaktionsstyring Deklarativ transaktionsstyring Metoder markeres med en transaktions attribut Det er containerens opgave at sørge for at oprette, nedlægge, fuldføre og evt. annullere transaktioner i henhold til disse Required metoden er med i den aktuelle transaktion. Der oprettes en ny transaktion af containeren, hvis der ikke er nogen i gang. Supports metoden er med i den aktuelle transaktion. Der oprettes ikke en ny transaktion af containeren, hvis der ikke er nogen i gang. Mandatory metoden skal være med en transaktion. Er der ikke er nogen i gang, kastes undtagelsen TransactionRequiredException. Never metoden må aldrig være med en transaktion. Er der en transaktion i gang, kastes undtagelsen RemoteException af containeren. RequiresNew der oprettes en ny transaktion. Hvis der er en transaktion i gang, suspenderes denne indtil metoden har afsluttet. NotSupported kan ikke være med en transaktion. Hvis der er en transaktion i gang, suspenderes indtil metoden har afsluttet.
13 Værktøj til forbedring af kodekvalitet automatisk koderevision (audit) Nogle værktøjer (JBuilder, JDeveloper,...) kan søge programkoden igennem og revidere den (eng.: audit) Består af forskellige tjek af koden på forskellig måde Almindelige fejl og uhensigsmæssigheder påpeges Griber ind i programmørens kodningsvaner Nok nødvendigt i projekter med mange programmører Hvilke tjek der skal foretages kan indstilles fra projekt til projekt Eksempel: Use Abbreviated Assignment Operator (UAAO) Use the abbreviated assignment operator in order to write programs more rapidly. Also some compilers run faster when you do so. Wrong void oper () int i = 0; i = i + 20; i = 30 * i; Right void oper () int i = 0; i += 20; i *= 30; Andre eksempler: 'switch' Statement Should Include a Default Case (SSSIDC) Assignments to 'for' Loop Variables (AFLV) Accessing Static Members through Objects (ASMO) Assignments to Formal Parameters (AFP)
14 Definere egne generiske klasser Parametriserede klasser/generiske typer = erklæring af en klasse med en eller flere klasser som parametre ~= templates fra C++ Fordele Klarere kode Typesikkerhed
15 Definere egne generiske klasser En generisk Info klasse package generisk; import java.awt.*; /** En klasse til a gemme info om et andet objekt */ public class Info<Obj> public Obj obj; public String txt; public Info(Obj o, String t) obj = o; txt = t; public String tostring() return "INFO "+obj.tostring()+" "+txt; public static void main(string[] args) Info<Point> info = new Info<Point>(new Point(), "origo"); System.out.println(info); // udskriver: INFO java.awt.point[x=0,y=0] origo
16 Definere egne generiske klasser En generisk serialiserings klasse Parametriseret ved en klasse, der skal være serialiserbar package generisk; import java.io.*; public class Serialisering<Type extends Serializable> public void gem(type obj, String filnavn) throws IOException FileOutputStream datastrøm = new FileOutputStream(filnavn); ObjectOutputStream objektstrøm = new ObjectOutputStream(datastrøm); objektstrøm.writeobject(obj); objektstrøm.close(); public Type hent(string filnavn) throws Exception FileInputStream datastrøm = new FileInputStream(filnavn); ObjectInputStream objektstrøm = new ObjectInputStream(datastrøm); Object obj = objektstrøm.readobject(); objektstrøm.close(); return (Type) obj;
17 package generisk; import java.util.*; public class HentOgGem public static void main(string[] arg) throws Exception Serialisering<String> serialiseringstr = new Serialisering<String>(); serialiseringstr.gem("en streng","str.ser"); //Ulovlig: Serialisering<Socket> serialisering3 = new Serialisering<Socket>(); Serialisering<ArrayList<String>> serialiseringals = new Serialisering<ArrayList<String>>(); ArrayList<String> l; try l = serialiseringals.hent("venner.ser"); System.out.println("Læst: " + l); catch (Exception e) e.printstacktrace(); l = new ArrayList(); l.add("jacob"); l.add("brian"); l.add("preben"); System.out.println("Oprettet: " + l); l.add("ven" + l.size()); serialiseringals.gem(l, "venner.ser"); System.out.println("Gemt: " + l);
Web- og serverprogrammering
Web- og serverprogrammering EJB dag 9 EJB (Enterprise Java Beans) Entitetsbønner til databasekommunikation Evt.: EJBQL (EJB Query Language) Evt.: EJB: Transaktioner og sikkerhed Læsning: WJSP kapitel 12
Læs mereJ2EE for begyndere. Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler.
Denne guide er oprindeligt udgivet på Eksperten.dk J2EE for begyndere Denne artikel introducerer J2EE. Den fortæller lidt om de forskellige teknologier i J2EE og kommer med små simple eksempler. Den forudsætter
Læs meremed Java og Linux Jacob Nordfalk Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Center for Videreuddannelse Ingeniørhøjskolen i København
Webprogrammering med Java og Linux Jacob Nordfalk Center for Videreuddannelse Ingeniørhøjskolen i København Linuxforum 2004 Lørdag 6. marts 17.00-17.45 Program Om Jacob Nordfalk Reklame Intro til Java
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 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 mereWeb- 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)
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 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 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 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 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 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 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 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 mereEksempel 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
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 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 mereDatabaseadgang 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,
Læs mereAssignment #5 Toolbox Contract
Assignment #5 Toolbox Contract Created by: René Kragh Trine Randløv E mail address cph rk70@cphbusiness.dk 23 11 2014 1 Introduktion Dette dokument indeholder en vertikal kontrakt for et system som skal
Læs mereGoogle App Engine. Google App Engine som platform. Claus Myglegaard Vagner og Jacob von Eyben
GoogleAppEngine GoogleAppEnginesomplatform ClausMyglegaardVagnerogJacobvonEyben Abstract CloudcomputingerenteknologidervinderfremidengenerelleITinfrastruktur. SocialemediersåsomLinkedIn,TwitterogFacebookharøgetbehovetfor
Læs mereSigmaT.
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
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 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 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 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 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 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 merePrepared Statements. Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC.
Denne guide er oprindeligt udgivet på Eksperten.dk Prepared Statements Denne artikel beskriver hvorfor prepared statements er gode. Den forudsætter lidt kendskab til Java og JDBC. Skrevet den 18. Feb 2010
Læs mereJava-opgraderingskursus
Java-opgraderingskursus Danmarks Meteorologiske Institut Gang 2 Webprogrammering Klient server og forespørgsel/svar HTML og HTML formularer Servletter og JSP sider Fælles biblioteker Programmere i pakker
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 mereObjektorienterede metoder
Objektorienterede metoder Denne gang: Designmønstre Skabende designmønstre: Fabrikeringsmetode/Fabrik, Singleton, Abstrakt fabrik (Toolkit), Prototype, Objektpulje Singleton eksempel: Forskellige slags
Læs mereI profil-feltet kan imastra-kunder vælge om upload skal ske ligesom filerne var indsendt til mailboksen eller
Upload fil Upload fil skal ses som et alternativ til at indsende tællefiler vedhæftet til mails Upload fil kan være en hurtigere og mere håndholdt måde at få data ind i Mastra på. Man starter med via Gennemse
Læs mereVideregå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
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 mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereSerialization i Java
Serialization i Java Tutorial lavet af Jákup W. Hansen TSU 2006 1.semester 06.novemter 2006 Hvad er Serialization? I vores tekstbog Objects First with Java bliver denne del af Java ikke gennemgået. Men
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 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 mereVirkefeltsregler 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
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 mereEn Kort Introduktion til Oracle
En Kort Introduktion til Oracle Henrik Bulskov 12. februar 2001 bulskov@ruc.dk 1 Start SQL*Plus... 1 1.1 TELNET... 1 1.2 WINDOWS SQL PLUS... 2 2 Kør et SQL-script... 3 3 Hjælp i SQL*Plus... 3 4 Editering
Læs mereHvordan 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
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 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 meredmasark Aflevering - Uge 50
dmasark Aflevering - Uge 50 Michael Lind Mortensen, 20071202, DAT4 Michael Dahl, 20073943, DAT4 Katalog: http://www.daimi.au.dk/ u073943/dmasark/uge6/ 13. december 2007 Indhold 1 PingClient implementation
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 mereeducasoft - en professionel samarbejdspartner med speciale i uddannelse!
Velkommen til educasoft's hjemmeside educasoft - en professionel samarbejdspartner med speciale i uddannelse! Professionelle undervisere Undervisning i virksomheden Undervisning dag/aften eller week-end
Læs mereJava Klasse nedarvninger
Denne guide er oprindeligt udgivet på Eksperten.dk Java Klasse nedarvninger Et let lille overblik i hvordan klasse nedarvning virker i java Skrevet den 07. dec 2011 af mochners I kategorien Programmering
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
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 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 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 mereHvilket sprog er hurtigst
Denne guide er oprindeligt udgivet på Eksperten.dk Hvilket sprog er hurtigst Denne artikel forsøger at aflive forskellige myter om hvilke sprog der er hurtigst. Den forudsætter ikke noget særligt. Skrevet
Læs mereOverblik. Class Loader. Java. Class Libraries. Bytecode. Verifier Java. Source (.java) Just in Time Compiler. Java
OOP1 Java intro. Klasser, objekter, interfaces, nedarvning, Association, Aggregation og Composition mvh. Try and catch exceptions. Package Intro. til jar filer. Overblik Compile-time Environment Run-time
Læs merePROJEKT 3. The Design Diaries. LINK TIL BLOG: Af Mikkel Borg Svendsen & Sebastian Frank MUL B
PROJEKT 3 The Design Diaries LINK TIL BLOG: http://mbsgraphic.dk/blog/ Af Mikkel Borg Svendsen & Sebastian Frank MUL B 1 INDHOLDS- FORTEGNELSE HVEM ER BLOGGERNE? 3 USE CASE 4 ATTRIBUT TABEL 5 PHP CODE
Læs mereOracle8i R8.1.5 JAVA. Oracle8i R Oracle8i Enterprise Edition Oracle8i R Oracle8i R Oracle8i R8.1.
2000 6 Oracle8i R8.1.7 Oracle8i R8.1.5 Oracle8i R8.1.6 Oracle8i Enterprise Edition Oracle8i R8.1.6 http://otn.oracle.co.jp/ Oracle8i R8.1.7 Oracle8i Oracle8i R8.1.7 Java XML JAVA Oracle8i R8.1.7 Java Oracle
Læs mereUniversity 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
Læs mereVideregående programmering i Java
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
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 mereGeografisk lokalisering i JSP
Denne guide er oprindeligt udgivet på Eksperten.dk Geografisk lokalisering i JSP Denne artikel forklarer lidt om hvorfor og hvordan man laver geografisk lokalisering og viser noget kode. Der er andre artikler
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
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 mereIT-Basecamp 2013. Real World Java EE Patterns Adam Bien. Real World Java EE Patterns, Adam Bien Copyright Lund&Bendsen A/S
IT-Basecamp 2013 Real World Java EE Patterns Adam Bien 1 Indhold Lidt om mig Baggrund for valg af emnet Bogens opbygning Fra J2EE til JEE 5/6 Overflødiggjorte patterns Fremhæve et par patterns 2 Kenneth
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 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 mereMySQL i Java. Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007
MySQL i Java Tutorial lavet af Jákup W. Hansen TSU 2006 2.semester 05.januar 2007 Hvad er MySQL? Det er et database system, som er gratis for os at bruge. Det er lidt mere besværligt i starten at bruge
Læs mereTest 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
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 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 mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereIntroduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002
Introduktion til Oracle, Datalogi, RUC Af: Jens Lauterbach (jeans@ruc.dk) 2002 På datalogi har vi en databaseserver, som de studerende på datalogi kan benytte til projekter og som også benyttes i forbindelse
Læs mereArkitektur for begyndere
Denne guide er oprindeligt udgivet på Eksperten.dk Arkitektur for begyndere Denne artikel beskriver forskellige basale n-tier arkitekturer. Som man bør kende og have valgt inden man går igang med at udvikle
Læs mereØvelse 9. Klasser, objekter og sql-tabeller insert code here
Øvelse 9. Klasser, objekter og sql-tabeller Denne opgave handler om hvordan man opbevarer data fra databasekald på en struktureret måde. Den skal samtidig give jer erfaringer med objekter, der kommer til
Læs mereXML 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.
Læs mereSAX 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
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
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 mereSend fra Java. Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende fra Java.
Denne guide er oprindeligt udgivet på Eksperten.dk Send email fra Java Denne artikel fortæller hvad man skal bruge og hvordan man skal kode for at sende email fra Java. Simple eksempler ikke noget vildt
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 mereRigtig SQL Programmering
Rigtig SQL Programmering 1 SQL i Rigtige Programmer Indtil nu har vi brugt SQL direkte i kommandolinje promt/gui program, hvor vi kan lave forespørgsler til databasen I virkeligheden: Programmer kontakter
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDesign Diaries.
Design Diaries http://blog.lykkeeilert.dk/ Patricia Gambula Larsen Patrick Lykke Eilert Ninette Andersen cph-pl130@cphbusiness.dk cph-pe58@cphbusiness.dk cph-na96@cphbusiness.dk INDHOLD Use case model
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
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 mereIndledning. 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
Læs mereThreads 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
Læs mereSoftware 1 with Java. Recitation No. 7 (Servlets, Inheritance)
Software 1 with Java Recitation No. 7 (Servlets, Inheritance) Servlets Java modules that run on a Web server to answer client requests For example: Processing data submitted by a browser Providing dynamic
Læs mereUgeseddel 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,
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereJacob Christiansen, Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense
7 DM -. Obligatoriske Opgave Løsning af ligningssystem vha. fipunktmetoden Jacob Christiansen, 8 moffe@imada.sdu.dk Institut for MAtematik og DAtalogi, Syddansk Universitet, Odense. Opgaven Der skal implementeres
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 mereModel Drevet Design i Praksis
Model Drevet Design i Praksis Dansk IT - På Vej Hjem møde d. 8/9-2009 Jeppe Cramon - TigerTeam ApS Lidt om mig 15 års erfaring som software udvikler Partner i TigerTeam Første erfaring med model drevet
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 mereNye Java XML API'er
Denne guide er oprindeligt udgivet på Eksperten.dk Nye Java XML API'er Denne artikel beskriver nye XML features i Java 1.6 - StAX og JAXB, samt XStreams. Den forudsætter kendskab til Java og brug
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereUniversity 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
Læs mereModern Concurrency Abstractions for C#
Modern Concurrency Abstractions for C# Nick Benton Luca Cardelli Cédric Fournet Presenter: Henrik Kragh-Hansen September 27, 2007 Motivation for concurrency Forbedring af concurrency Baggrundsinformation
Læs mere14.1 Internationale programmer
14.1 Internationale programmer Når et program skal anvendes af flere kulturer og sprog opstår behov for at programtekster, beløb og datoangivelser afhænger af landet og sproget, og man må i gang med at
Læs mere