Størrelse: px
Begynne med side:

Download ""

Transkript

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22 C:\>cd \eclipse\workspace C:\eclipse\workspace>mkdir exampleproject C:\eclipse\workspace>cd exampleproject C:\eclipse\workspace\exampleproject>copy..\lib-coretrek-buildsys\antscript\webapp-build.xml-TEMPLATE build.xml C:\eclipse\workspace\exampleproject>ant create cd eclipse/workspace/ mkdir exampleproject cd exampleproject cp../lib-coretrek-buildsys/antscript/webapp-build.xml-template build.xml

23 ant create

24

25

26

27 ## I webmacro, linjer som begynner med ## er kommentar linjer ## Eksempel variabel navn: $variabel ## Kalle opp metoden getvalue(): $variabel.getvalue() ## Hente ut instans variabel "public String instancevar": $variabel.instancevar ## Hente ut statisk variabel "public static String STATIC_VAR": $variabel.static_var

28 ## Gitt følgende WebMacro tekst: $variable.name ## Så vil følgende oppslag bli prøvd: 1. Instans variabelen "Name" på objektet $variable 2. Den statisk variaben "Name" på objektet $variable 3. $variable.getname() 4. $variable.isname() 5. $variable.get("name") $variable.object.value $variable.getobjectbyid($id).name

29 #set $variablereference = <Expression> ## En variabel kan settes til en streng #set $var = "Value" ## En kan også kalle på metoder og lagre resultatet #set $varlength = $var.length() ## Å bruke uttryk er også gyldig #set $sum = #if () BLOCK [#elseif () BLOCK] [#else BLOCK] #if (<test>) Resultat1 #elseif (<test2>) Resultat2 #else Resultat3 #end

30 #foreach $listentry in $collection[indexing $indexvariable[ from $fromvariable][ limit $ <table> #foreach $entry in $list <tr> <td>$entry.name</td> <td>$entry.value</td> </tr> #end </table> #count $i from $start to $end[ step $step] #set $start = 100 #set $end = 1 #set $step = -1 #count $i from $start to $end step $step $i. I like WebMacro<br /> #end #alternate $variable through $collection ## Notasjonen [ <var>, <var> ] lar deg lage lister rett i WebMacro koden ## Listen kan ha flere enn bare 2 elementer som vist her #alternate $rowcolor through ["#ffffff", "#dddddd"] <table>

31 <tr bgcolor="$rowcolor"> </tr> <tr bgcolor="$rowcolor"> </tr> <tr bgcolor="$rowcolor"> </tr> </table> ## resultatet her blir #ffffff for første og siste, og #dddddd for den i midten. #text BLOCK #text #if her vil ikke bli tolket som en #if #end #macro ($argument,...) BLOCK ## Her definerer vi en macro som tar ett argument, $param, som den skriver ut i bold #macro testmacro($param) <b>$param</b> #end ## Her sender vi inn teksten "test" som ett parameter, resultatet blir at det her står <b>test</b> #macro("test")

32 #include [as text as template as macro] $filename ## Include as text gjør at filen blir lest rått og innholdet satt inn #include as text "info.txt" ## Include as template gjør at filen blir parset som om innholdet stod direkte her #include as template "template.wm" ## Include as macro brukes for filer der en sammler sammen flere #macro kommandoer #include as macro "macros.wm" import java.io.bytearrayoutputstream; import java.io.ioexception; import java.io.outputstream; import java.util.map; import org.webmacro.context; import org.webmacro.fastwriter; import org.webmacro.initexception; import org.webmacro.propertyexception; import org.webmacro.resourceexception; import org.webmacro.template; import org.webmacro.wm; /** * Dette er en liten hjelpeklasse for å rendere webmacro filer. */ public class WebMacroRenderer { private String _template; private WM _wm; public WebMacroRenderer(String template) throws InitException { _template = template; // initialiser WebMacro instansen _wm = new WM(); public void render(outputstream stream, Map contextmap) throws ResourceException, PropertyException, IOException { // For å kunne rendere en WM fil, så trenger vi Template objeketet. Dette // er fordi WebMacro cacher parse resultatet fra en fil. Template template = _wm.gettemplate(_template);

33 // For å parse en fil så trenger vi en FastWriter til å skrive. Denne // peker vi på OutputStreamen som vi får inn, og setter encoding til ISO FastWriter fastwriter = new FastWriter(_wm.getBroker(), stream, "ISO "); // Contexten er det objektet som inneholder alle variabler som er tilgjengelig i en // WebMacro fil. Vi kan også fylle den med data før parsing for å sende variabler inn // til WM filen. Contexten er en utvidelse av Map, og vi fyller den med det mapet // som har blitt sendt inn. Context context = _wm.getcontext(); context.putall(contextmap); // Render templaten med det FastWriter objektet vi har laget og den konteksten vi // har template.write(fastwriter, context); // Flush fastwriteren, slik at resultatet blir skrevet ut. fastwriter.flush(); public String rendertostring(map context) throws PropertyException, ResourceException, IOException { ByteArrayOutputStream baos = new ByteArrayOutputStream(); render(baos, context); baos.close(); return new String(baos.toByteArray(), "ISO "); import java.util.hashmap; import java.util.map; public class WebMacroMain { // Generer template navn utifra klassenavn. Dette slik at det bare er å lage en template med // samme navn som klassen i den pakken som WebMacroMain ligger. private static final String TEMPLATE = WebMacroMain.class.getName().replace('.','/')+".wm"; public static void main(string[] args) throws Exception { // Opprett en renderer for filen vår. WebMacroRenderer renderer = new WebMacroRenderer(TEMPLATE); // Lag og fyll en Context Map context = new HashMap(); // Render resultatet til Syste,out. renderer.render(system.out, context);

34

35 public class SomeCorelet extends Corelet { private static final String TEMPLATE = SomeCorelet.class.getName().replace('.','/')+".wm"; public String gettemplate() { return TEMPLATE;

36 package com.coretrek.kurs; import com.corelet.corelet; public class HelloWorld extends Corelet { private static final String TEMPLATE = HelloWorld.class.getName().replace('.','/')+".wm"; private static final String TITLE = "Hello World"; public String gettitle() { return TITLE; public String gettemplate() { return TEMPLATE;

37 <span class="normal">hello World</span> <Module id="example"> <Corelet id="helloworld" class="com.coretrek.kurs.helloworld" size="small"> <Addable application="true" portal="true" /> </Corelet> </Module>

38 ModuleId[.ModuleId] CoreletId

39 <a href="parameters?$this:key=value">send key=value to $this</a> <form method="post" action="parameters"> <input type="text" name="$this:text" /> </form> public void process(coreletrequest creq, CoreletResponse cres)

40 public void sendparameter(string coreletid, String parametername, Object parametervalue)

41

42 <img src="$spaceimage" width="1" height="1" />

43

44

45

46 <?xml version="1.0" encoding="utf-8" standalone="no"?> <!DOCTYPE Config SYSTEM "corelets.dtd"> <Config> <!-- Mange forskjellige tager som kun gjelder for server oppsettet --> <Modules> <Module id="test"> <Corelet id="test" class="com.test.test" size="small"> <Addable portal="true" application="true" /> </Corelet> </Module> </Modules> </Config>

47 <!-- Den første Entryen her inneholder kun en String --> <Entry key="string">stringvalue</entry> <!-- Denne Entryen inneholder en liste, man må caste til java.util.list når den hentes ut. --> <Entry key="list"> <Value>Entry 1</Value> <Value>Entry 2</Value> <Value>Entry 3</Value> <Value>Entry 4</Value> </Entry> <!-- Denne entryen inneholder ett nytt map inne i seg selv. En må cate til java.util.map når verdien henter ut. --> <Entry key="map"> <Entry key="subkey1">subvalue 1</Entry> <Entry key="subkey2">subvalue 2</Entry> <Entry key="subkey3">subvalue 3</Entry> <Entry key="subkey4">subvalue 4</Entry> </Entry> <!-- Her er ett eksempel som bruker flere ting om en annen. Man må kjenne til strukturen i koden der man leser ut innholdet --> <Entry key="mix"> <Value> <Entry key="submap">submapvalue</entry> <Entry key="somethingelse">value</entry> </Value> <Value>String</Value> <Value> <Value>2</Value> <Value>4</Value> <Value>6</Value> <Value>8</Value> </Value> <Value> <Entry key="map">

48 <Value>TEXT</Value> </Entry> </Value> </Entry> #set $coreletid = $this.getsiblingid("popupcorelet") #set $popupwidth = 200 #set $popupheight = 400 ## Vanlig popup <a href="javascript:popup($coreletid, $popupwidth, $popupheight)">popup</a> ## popup mede paramter <a href="javascript:popup("$coreletid&$coreletid:para1=val&$coreletid:para2=val", $popupwidth, $popupheight)">popup</a>

49

50

51

52 mins hours dates months days 0,30 * * * *

53 0 0 1 * * run()

54

55 com.corelet.event.event Listener.EVENT_ID_USER_ SESSION_ADDED_MASTER com.corelet.event.event Listener.EVENT_ID_USER_ SESSION_ADDED_SHARED com.corelet.event.event Listener.EVENT_ID_REMOV E_USER_SESSION_MASTER com.corelet.event.event Listener.EVENT_ID_REMOV E_USER_SESSION_SHARED com.corelet.event.event Listener.EVENT_ID_DOMAI N_LOGGEDIN com.corelet.event.event Listener.EVENT_ID_LOGOU T_DOMAIN fireevent

56 corelets.xml corelets.xml corelets.xml <Authentication masterchainid="--chain ID ref--" optionalchainid="--chain ID ref--" logoutchainid="--chain ID ref--"> <AuthenticationSystemMappings defaultmasterchainid="--chain ID ref--" fileuploaddownloadchainid="--chain ID ref--" optionalchainid="--chain ID ref--" /> <StateStore class="--statestore class--"> </StateStore> <SessionKeepers> <SessionKeeper id="--session keeper ID--" class="--session keeper class--"> </SessionKeeper> </SessionKeepers> <AuthenticationSources> <AuthenticationSource id="--authentication source ID--" class="--authentication source class--"> </AuthenticationSource> </AuthenticationSources>

57 <AuthenticationSourceStacks> <AuthenticationSourceStack id="--authentication stack ID--"> <AuthenticationSourceRef sourceref="--authentication source ID ref--" /> </AuthenticationSourceStack> </AuthenticationSourceStacks> <AuthenticationMethods> <AuthenticationMethod id="--authentication method ID--" class="--authentication method class--"> </AuthenticationMethod> </AuthenticationMethods> <AuthenticationChains> <AuthenticationChain id="--chain ID--" defaultstackref="--authentication stack ID ref--" sessionkeeperref="--session keeper ID ref--" mastersession="--true/false--"> <AlreadyLoggedInAuthenticationMethodRef methodref="--authentication method ID ref--" /> <AuthenticationMethodRef methodref="--authentication method ID ref--" /> </AuthenticationChain> </AuthenticationChains> </Authentication> <AuthenticationSources> <!-- Simple SQL authentication with users and domains. No groups, etc. --> <AuthenticationSource id="simpledb_ct-domain" class="com.coretrek.machete.auth.std.source.simpledb.simpledbauthenticationsource"> <Alias absoluteid="dbsrc_ct-domain" /> <Entry key="connectionid">ct-domain</entry> <Entry key="databasefailurehaltsstartup">false</entry> </AuthenticationSource> </AuthenticationSources> <AuthenticationSourceStacks>

58 <!-- Only use the simple SQL based authentication system --> <AuthenticationSourceStack id="dbstack"> <Alias id="default" /> <AuthenticationSourceRef sourceref="dbsrc_ct-domain" /> </AuthenticationSourceStack> </AuthenticationSourceStacks> <AuthenticationMethods> <AuthenticationMethod id="htmlform" class="com.coretrek.machete.auth.std.method.htmlformauthenticationmethod"> <!-- <Entry key="singledomain">default</entry> --> <Entry key="loginpage">com/coretrek/machete/auth/std/method/login.wm</entry> <Entry key="takenoverpage">com/coretrek/machete/auth/std/method/takenover.wm</entry> </AuthenticationMethod> </AuthenticationMethods>

59 <SessionKeepers> <SessionKeeper id="httpsessionbasedsessionkeeper" class="com.coretrek.machete.auth.std.sessionkeeper.servlet.httpsessionbasedsessionkeeper"> <Alias absoluteid="default" /> </SessionKeeper> </SessionKeepers> <StateStore class="com.coretrek.machete.auth.std.statestore.sql.sqlstatestore"> <Entry key="connectionid">ct-domain</entry> <Entry key="databasefailurehaltsstartup">false</entry> </StateStore>

60 <AuthenticationChains> <AuthenticationChain id="html Form" defaultstackref="default" sessionkeeperref="default" mastersession="true"> <AlreadyLoggedInAuthenticationMethodRef methodref="htmlform" /> <AuthenticationMethodRef methodref="sessionkeeper" /> <AuthenticationMethodRef methodref="ccscookie" /> <AuthenticationMethodRef methodref="popupblocker" /> <AuthenticationMethodRef methodref="htmlform" /> </AuthenticationChain> </AuthenticationChains> <Authentication masterchainid="html Form" optionalchainid="optional-shared" logoutchainid="logout-chain">

61 <AuthenticationSystemMappings defaultmasterchainid="html Form" fileuploaddownloadchainid="http BASIC-shared" optionalchainid="optional-shared" />

62 <AuthenticationChain id="html Form + Anonymous" defaultstackref="default" sessionkeeperref="httpsessioninactivityintervalboostingsessionkeeper" mastersession="true"> <AlreadyLoggedInAuthenticationMethodRef methodref="htmlform" /> <AuthenticationMethodRef methodref="cookietester" /> <AuthenticationMethodRef methodref="anonymoushtmlsnoop" /> <AuthenticationMethodRef methodref="sessionkeeper" /> <AuthenticationMethodRef methodref="ccscookie" /> <AuthenticationMethodRef methodref="popupblocker" /> <AuthenticationMethodRef methodref="anonymoususer" /> <!-- This method generates a AnonymousUser --> </AuthenticationChain> corelets.xml

63 corelets.xml <AdminServlet password="default" />

64

65

66

67 logconfig.xml logconfig.xml

68 registerrss getrssnewsitems reloadrss getregisteredrssfeeds incrementcounter getcurrentvalue getupdatetimes percentagehit eventtofire percentagehit eventtofire

69 public class ExampleStateCorelet extends Corelet implements Stateful { private ExampleState _instancestate; private ExampleState _globalstate; public void setinstancestate(state state) { _instancestate = (state == null)? new ExampleState() : (ExampleState) state; public void getinstancestate() { return _instancestate; public void setglobalstate(state state) { _globalstate = (state == null)? new ExampleState() : (ExampleState) state; public void getglobalstate() { return _globalstate; // Corelet methods // State class definiton public static class ExampleState extends State { setxxxstate getxxxstate

70 public class ExampleStatefulCorelet extends StatefulCorelet { private ExampleState _instancestate; private ExampleState _globalstate; public void process(coreletrequest creq, CoreletResponse cres) { if (_instancestate == null) { _instancestate = (ExampleState) getinstancestate(); if (_instancestate == null) { _instancestate = new ExampleState(); setinstancestate(_instancestate); if (_globalstate == null) { _globalstate = (ExampleState) getglobalstate(); if (_globalstate == null) { _globalstate = new ExampleState(); setglobalstate(_globalstate); // State class definiton public static class ExampleState extends State { getxxxstate setxxxstate getmodulestate setmodulestate public ExampleState getmodulestate() { if (_modulestate == null) { _modulestate = (ExampleState) user.getmodulestate(getcoreletconfig().getmoduleconfig()); if (_modulestate == null) { _modulestate = new ExampleState(); user.setmodulestate(getcoreletconfig().getmoduleconfig(), _modulestate); return _modulestate;

71 _modulestate public ExampleState getdomaincoreletstate() { if (_domaincoreletstate == null) { _domaincoreletstate = (ExampleState) domain.getcoreletstate(getcoreletconfig()); if (_domaincoreletstate == null) { _domaincoreletstate = new ExampleState(); domain.setcoreletstate(getcoreletconfig(), _domaincoreletstate); return _domaincoreletstate; public ExampleState getdomainmodulestate() { if (_domainmodulestate == null) { _domainmodulestate = (ExampleState) domain.getmodulestate(getcoreletconfig().getmoduleconfig()); if (_domainmodulestate == null) { _domainmodulestate = new ExampleState(); domain.setmodulestate(getcoreletconfig().getmoduleconfig(), _domainmodulestate); return _domainmodulestate;

72 <!-- example for connection URLs of the type jdbc:<driver>://<host>/<database> --> <Connection id="--connectionid--" driverclass="--driverclass--" exceptionshaltstartup="--true/false--"> <ConnectionParameters driver="--driver--" host="--host--" database="--database--" /> <ConnectionCredentials username="--dbusername--" password="--dbpassword--" /> <PoolParameters minsize="--minpoolsize--" maxsize="--maxpoolsize--" maxidletime="--maxconnectionidletime--" maxreuse="--maxconnectionreuse--" /> </Connection> <!-- Example using URL instead of parameters --> <Connection id="--connectionid--" driverclass="--driverclass--" exceptionshaltstartup="--true/false--"> <ConnectionURL url="--jdbcurl--" /> <ConnectionCredentials username="--dbusername--" password="--dbpassword--" /> <PoolParameters minsize="--minpoolsize--" maxsize="--maxpoolsize--" maxidletime="--maxconnectionidletime--" maxreuse="--maxconnectionreuse--" /> </Connection>

73

74 // Getting the connection Connection con; try { // in Corelets con = getconnection("ct-domain"); // elsewhere con = Server.getServer().getConnection("ct-domain"); catch (SQLException e) { // Handle connection error try { // Perform SQL operations catch (SQLException e) { // Handle SQL error finally { try { con.close(); catch (SQLException e) { // Handle connection closing error

75 import org.apache.log4j.logger; private static final Logger log = Logger.getLogger(<logger name>); if (log.isdebugenabled()) log.debug("current time is: "+System.currentTimeMillis()+"ms since 1. January 1970");

76 <appender name="demoappender" class="org.apache.log4j.dailyrollingfileappender"> <param name="datepattern" value="'.'yyyy-mm-dd" /> <param name="file" value="${com.coretrek.machete.log.dir/demoappender.log" /> <layout class="org.apache.log4j.patternlayout"> <param name="conversionpattern" value="%d{iso8601 %-5p %-25t %-35c [%x] %m%n" /> </layout> </appender>

77 <category name="demo.democategory" additivity="false"> <priority value="debug" /> <appender-ref ref="demoappender" /> </category>

78

79 public FormParser createform() { InputField field1 = new TextField(/* Constructor parameters*/); InputField field2 = new TextField(/* Constructor parameters*/); InputField field3 = new TextField(/* Constructor parameters*/); FormParser form = new FormParser(getId() getnamespace()); form.addinputfield(field1); form.addinputfield(field2);

80 form.addinputfield(field3); Validator range = new RangeCheckValidator(/* Constructor parameters*/); Validator match = new MatchValidator(/* Constructor parameters*/); form.addvalidator("numberfield", range); form.addvalidator(new String[] {"pass1", "pass2", match); ## This assumes that the Corelet has a method called getform(), which ## returns a FormParser object. $this.form.startform("formname") ## To print out the field named "field1" $this.form.field1 $this.form.endform

81 public void process(coreletrequest req, CoreletResponse res) { String formsubmitted = req.getstringparameter(formparser.parameter_form_submitted); if (formsubmitted.equals("formname")) { form.process(req); if (userrequestedsave && form.validate()) { saveformdata(form); private void saveformdata(formparser form) { String stringfield = form.getstring("stringfieldname"); Date datefield = form.getdate("datefieldname"); int intfield = form.getint("intfieldname"); Object customobject = form.getobject("customobjectfieldname");

82

83

84

85

86 public class ExampleComponent extends WebmacroComponent {

87 // Statisk definert Componenet ID public static final String COMPONENT_ID = "ExampleComponent"; // WebMacro template for Componenten // Det er egen hjelpefunksjon for å lage den som gir den samme navn som klassen +".wm", og // peker til at WebMacro filen ligger i samme mappe/pakke som klassen. private static final String TEMPLATE = classtotemplate(examplecomponent.class); // Default konstruktør - når denne brukes så kan Componenten kun // oppstå en gang under en parent public ExampleComponent() { super(component_id); // Konstruktør som tar ID som parameter public ExampleComponent(String id) { super(id); // Process kan implementeres ved behov protected void process(componentrequest creq, ComponentResponse cres) { // DisplayPrepare kan implementeres ved behov protected void displayprepare() { public String gettemplate() { return TEMPLATE;

88 // ExampleComponentCorelet.java public class ExampleComponentCorelet extends Corelet implements ComponentHolder { // Componentet som vi bruker. private Component _component; // getnamespace metoden som man må implementere fra ComponentHolder public String getnamespace() { // Denne metoden vil alltid se slik ut for Coreletter return getid(); // process for Coreletten public void process(coreletrequest creq, CoreletResponse cres) { // Pass på at vi har en instans av Component if (_component == null) { _component = new ExampleComponenet("Example"); // Kall opp process på Component. Dette vil videre kalle den implementerte // process metoden på Componetet etter at kontekstverdier er satt. _component.process(this, creq); public void displayprepare() { // Kall opp displayprepare på Componenten, som vil kalle videre til den faktisk // implementasjonen etter at kontekst har blitt satt _component.displayprepare(this); /** * Denne metoden vil gjøre det mulig å få tak i Componenten i WebMacro. */ public Component getcomponent() { return _component; // gettemplate metoden må også implementeres her. ## ExampleComponentCorelet.wm ## Dette vil hente ut Componentet, og så vil det i tur rendere seg selv med sin template der det plasseres. $this.component

89 public class StateComponent extends WebmacroComponent { private StateComponentState _state; protected void process(componentrequest creq, ComponentResponse cres) { if (_state == null) { _state = (StateComponentState) getstate(); if (_state == null) { _state = new StateComponentState(); setstate(_state); // Bruk staten private static final class StateComponentState extends State {

90 public TabContainer createtabcontainer() { // Første steg er å opprette selve TabContaineren TabContainer result = new TabContainer("TabContainer", "details"); // Vi har satt at default tabben skal være details, vi må da sikre at vi legger // til en tab med den IDen

91 // Den første tabben vi legger til her er også den som kommer til å // ende opp som default tab. result.addcontainedcomponent(new CompanyDetailComponent("details")); result.addcontainedcomponent(new CompanyAddressComponent("address")); result.addcontainedcomponent(new CompanyContactsComponent("contacts")); // TabContainer er nå initialisert, den må videre brukes som en vanlig Component return result;

92

93 <Themes> <Default id="standard" /> <Common logout="com/corelets/htmldesign/logout.wm" restore="com/corelets/htmldesign/restore.wm" replacementcorelet="com/corelets/htmldesign/replacementcorelet.wm" serverdown="com/corelets/htmldesign/serverdown.wm" exception="com/corelets/htmldesign/exception.wm" /> <Theme id="standard" description="the Blue Dull" frameset="com/corelets/htmldesign/standard/frameset.wm" stylesheet="com/corelets/htmldesign/standard/css.wm" topbar="com/corelets/htmldesign/standard/topbar.wm" topsize="26" corelet="com/corelets/htmldesign/standard/corelet.wm" mainlet="com/corelets/htmldesign/standard/applicationmodemainlet.wm" themeinclude="com/corelets/htmldesign/standard/themeinclude.wm" workbench="com/corelets/htmldesign/standard/workbench.wm" staticcontent="themes/standard" /> </Themes>

94 <link rel="stylesheet" href="$ccs_abscontextpath/stylesheet/$ccs_theme.id" type="text/css" /> #parse "$CCS_Theme.ThemeInclude" #set $themehtmlroot="$htmlroot/$ccs_theme.staticcontent"

95 themes/<themeid>

96

97

98 corelets.xml <?xml version="1.0" encoding="iso "?> <Dictionary> <Key key="module"> <Key key="modulepart"> <Key key="text"> <Value lang="no_no">teksten på norsk</value> <Value lang="en_us">the text in english</value> </Key> </Key> </Key> </Dictionary>

Eksamen i Internetteknologi Fagkode: ITE1526

Eksamen i Internetteknologi Fagkode: ITE1526 Datateknikk Side 1 av 8 Eksamen i Internetteknologi Fagkode: ITE1526 Tid: Mandag, 23.05.05, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 3 oppgaver og

Detaljer

Videregående programmering 6

Videregående programmering 6 Videregående programmering 6 1. Feilkontroll i klasser uten unntaksobjekter Klasser skal lages sikre. Argumentverdier skal kontrolleres, og eventuelle feil skal rapporteres til klienten. I praksis har

Detaljer

INF 1010, vår 2005 Løsningsforslag uke 11

INF 1010, vår 2005 Løsningsforslag uke 11 INF 1010, vår 2005 uke 11 Anders Brunland 11. april 2005 Oppgave 1 Oppgave 1 i kapittel 19, Rett på Java Er følgende metoder lovlige? Hovorfor/hvorfor ikke? a) void koknverter ( int mnd ) { konverterdato

Detaljer

Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Stein Gjessing, Institutt for informatikk, Universitetet i Oslo INF1010 Våren 2015 Feilsituasjoner og unntak i Java (Engelsk: Exception) Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Jeg prøvde å bestille billett med Air France:

Detaljer

Løsningsforslag Test 2

Løsningsforslag Test 2 Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.

Detaljer

INF1000 - Løsning på seminaropppgaver til uke 8

INF1000 - Løsning på seminaropppgaver til uke 8 INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){

Detaljer

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2

Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 Algoritmer og datastrukturer Kapittel 11 - Delkapittel 11.2 11.2 Korteste vei i en graf 11.2.1 Dijkstras metode En graf er et system med noder og kanter mellom noder. Grafen kalles rettet Notasjon Verdien

Detaljer

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06

Implementering av caching ved hjelp av Spring. Christian Vestøl 27.04.06 Implementering av caching ved hjelp av Spring Christian Vestøl 27.04.06 Agenda Kort introduksjon til Spring med Spring Praktiske eksempler Forskjellige rammeverk for caching April 2006 2 Kort om Spring

Detaljer

Socket og ServerSocket

Socket og ServerSocket Side 1 av 5, socket og klient-tjener, V. Holmstedt, HiO 2006 Dette dokumentet er revidert den 29.8.2006, kl:12:30. Det er foretatt rettelser i begge versjoner av klassen A_Server. Socket og ServerSocket

Detaljer

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM

SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM SAS FANS NYTT & NYTTIG FRA VERKTØYKASSA TIL SAS 4. MARS 2014, MIKKEL SØRHEIM 2 TEMA 1 MULTIPROSESSERING MED DATASTEGET Multiprosessering har lenge vært et tema i SAS Stadig ny funksjonalitet er med på

Detaljer

INF Notater. Veronika Heimsbakk 10. juni 2012

INF Notater. Veronika Heimsbakk 10. juni 2012 INF1010 - Notater Veronika Heimsbakk veronahe@student.matnat.uio.no 10. juni 2012 1 Tilgangsnivåer 2 CompareTo Modifier Class Package Subclass World public Y Y Y Y protected Y Y Y N no modifier Y Y N N

Detaljer

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java

INF1010 våren 2017 Onsdag 25. januar. Litt om unntak i Java INF1010 våren 2017 Onsdag 25. januar Litt om unntak i Java Stein Gjessing Nytt tema: Feilhåndtering (IO: Innlesing/Utskrift) n En metode som kan komme til å gjøre en IO-feil på fil må enten behandle denne

Detaljer

OOT Seminar H-97 CORBA. Praktisk del

OOT Seminar H-97 CORBA. Praktisk del OOT Seminar H-97 CORBA Praktisk del Valg av ORB implementasjon Har valgt å bruke Visigenic sin ORB implementsjon ORB en er 100% Java kodet Bygger på OMG sin IDL to Java language mapping fra Jun 97 Gratis

Detaljer

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus

Eksekveringsrekkefølgen (del 1) Oppgave 1. Eksekveringsrekkefølgen (del 2) Kommentar til oppgave 1. } // class Bolighus // class Bygning Oppgave 1 System.out.println( Bolighus ); // class Bolighus Hva blir utskriften fra dette programmet? class Blokk extends Bolighus{ // class Blokk IN105subclassesII-1 Eksekveringsrekkefølgen

Detaljer

INF2100. Oppgaver 23. og 24. september 2010

INF2100. Oppgaver 23. og 24. september 2010 INF2100 Oppgaver 23. og 24. september 2010 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med + og ; grammatikken ser du i figur 1 på neste side. Tallkonstanter består av bare ett

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Mandag 6. august 2012, kl. 15:00-19:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Rune Sætre. Kontaktperson under

Detaljer

Kapittel 8: Programutvikling

Kapittel 8: Programutvikling Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter

Detaljer

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 22. mai Prøveeksamen (Eksamen 12. juni 2012) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF, 22. mai 23 Prøveeksamen 23 (Eksamen 2. juni 22) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Oppgave a Tegn klassehierarkiet for de 9 produkttypene som er beskrevet over. Inkluder også

Detaljer

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo 1 Innledning Dette notatet beskriver noe av det som foregår i primærlageret når et Javaprogram utføres.

Detaljer

Hentet fra Suns Totorial:

Hentet fra Suns Totorial: Sun s Hello-eksempel Hentet fra Suns Totorial: http://java.sun.com/j2se/1.4.2/docs/guide/idl/gshome.html Andre nyttige URIer: Java IDL documentation: http://java.sun.com/j2se/1.4.2/docs/guide/idl/index.html

Detaljer

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen

Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Presentasjon av gruppe 7: Erik Østensen, Henning Østensen og Kenneth Ådalen Hva er ibatis Rammeverk laget for: Forenkling av database oppkoblinger Separering av SQL kode fra kildekode Data access objects

Detaljer

Eksamen Objektorientert Programmering 2013

Eksamen Objektorientert Programmering 2013 Eksamen Objektorientert Programmering 2013 Høgskolen i Østfold 2013-01-07 Emnekode Emne ITF10611 Dato 2013-01-07 Eksamenstid 09:00-13:00 Hjelpemidler Faglærer Objektorientert Programmering To A4-ark (fire

Detaljer

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004

INF1000 Metoder. Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 INF1000 Metoder Marit Nybakken marnybak@ifi.uio.no 16. februar 2004 Motivasjon Når man begynner å skrive store programmer, vil man fort oppleve at programmene blir uoversiktlige. Det blir vanskeligere

Detaljer

INF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10

INF2100. Oppgaver 6. og 11. oktober 2011 C 100 X 10 INF2100 Oppgaver 6. og 11. oktober 2011 Oppgave 1 Vi skal se på et meget enkelt språk E som består av uttrykk med de fire vanligste regneartene +,, * og /; grammatikken 1 ser du i figur 1 på neste side.

Detaljer

INF2100. Oppgaver uke 40 og

INF2100. Oppgaver uke 40 og INF2100 Oppgaver uke 40 og 41 2014 For å få trening i å programmere en parser, skal vi aller først gjøre det for et veldig enkelt programmeringsspråk: E. Dette språket består av uttrykk med de fire vanligste

Detaljer

XML og JDOM. Helge Furuseth

XML og JDOM. Helge Furuseth XML og JDOM Helge Furuseth furuseth@idi.ntnu.no XML XML = Extensible Markup Language Basert på SGML Standard Generalized Markup Language HTML = Hypertext Markup Language Også basert på SGML Mange likheter

Detaljer

Programmering i C++ Løsningsforslag Eksamen høsten 2005

Programmering i C++ Løsningsforslag Eksamen høsten 2005 Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det

Detaljer

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007.

Object interaction. Innhold. Abstraksjon 03.09.2007. Grunnleggende programmering i Java Monica Strand 3. september 2007. Object interaction Grunnleggende programmering i Java Monica Strand 3. september 2007 1 Innhold Til nå: Hva objekter er og hvordan de implementeres I klassedefinisjonene: klassevariable (fields), konstruktører

Detaljer

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr Fra Python til Java En introduksjon til programmeringsspråkenes verden dag@ifi.uio.no Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet LØSNINGSFORSLAG Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet

Detaljer

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

INF1010, 15. januar 2014 2. time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 15. januar 2014 2. time Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder med parametre En metode uten parameter:

Detaljer

Dagens tema: Mer av det dere trenger til del 1

Dagens tema: Mer av det dere trenger til del 1 Dagens tema Dagens tema: Mer av det dere trenger til del 1 Hvilke klasser trenger vi? Uttrykk Typer Testutskrifter 12 gode råd Dagens tema Prosjektet Utifra dette AlboC-programmet: int pot2 (int x) { int

Detaljer

< T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4»

< T extends Comparable<T> > Indre klasser mm. «Det du bør ha hørt om før oblig 4» < T extends Comparable > Indre klasser mm. «Det du bør ha hørt om før oblig 4» Strukturen i oblig 3 null null null null Personbeholder pl null null Person p "Adnan" michael@ifi.uio.no INF1010 21. februar

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson

Detaljer

(MVC - Model, View, Control)

(MVC - Model, View, Control) INF1010 - våren 2008 Modell - Utsyn - Kontroll (MVC - Model, View, Control) Stein Gjessing Inst. for informatikk Et bankprogram Vi skal lage et program som håndterer kontoene i en bank. En konto eies av

Detaljer

import java.util.arraylist;

import java.util.arraylist; import java.util.arraylist; * Klassen som generer TerminListe * @author young * * TODO To change the template for this generated type comment go to * Window - Preferences - Java - Code Style - Code Templates

Detaljer

Eksamen. Objektorientert Programmering IGR 1372

Eksamen. Objektorientert Programmering IGR 1372 + JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV

Detaljer

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering

Kompilering Statiske Syntaksanalyse Feilsjekking Eksempel Oppsummering Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Statiske metoder og variabler Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at

Detaljer

Jentetreff INF1000 Debugging i Java

Jentetreff INF1000 Debugging i Java Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren ingridgg@student.matnat.uio.no 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver

Detaljer

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }

class Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; } Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere

Detaljer

INF1010. Grensesnittet Comparable

INF1010. Grensesnittet Comparable<T> INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd

Detaljer

2 Om statiske variable/konstanter og statiske metoder.

2 Om statiske variable/konstanter og statiske metoder. Gaustadbekkdalen, januar 22 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår i primærlageret når

Detaljer

Avdeling for ingeniørutdanning Institutt for teknologi

Avdeling for ingeniørutdanning Institutt for teknologi Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009

Detaljer

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter

Distributed Component Object Model. Utvikling av distribuerte applikasjoner. Utvidelse av COM for støtte av distribuerte objekter DCOM Distributed Component Object Model Almir Delkic og Frank Jensen Institutt for Informatikk, Universitetet i Oslo, oktober 2003 Introduksjon Utvikling av distribuerte applikasjoner Utvidelse av COM

Detaljer

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo INF1010, 26. februar 2014 1. Krav til klasseparametre 2. Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Vi tar utgangspunkt i dette programmet for

Detaljer

INF100 Institutt for informatikk Universitetet i Bergen Øving 5

INF100 Institutt for informatikk Universitetet i Bergen Øving 5 INF100 Institutt for informatikk Universitetet i Bergen Øving 5 Høst 2013 Mål: Bruk av objekter. Innlevering: Adventure.java, Spiller.java og Rom.jav pakket i en zip fil. Innleveringsfrist: Torsdag 10.

Detaljer

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon

Kapittel 9. Distribusjon. Fjernbruker. Tjenermaskin LAN WAN. Nærbruker. Figur 9-1: En enkel klient/tjener distribusjon Kapittel 9 Distribusjon Tjenermaskin Fjernbruker LAN Nærbruker WAN Figur 9-1: En enkel klient/tjener distribusjon 195 Tjenermaskin Fjernbruker LAN Replikert tjener Nærbruker WAN Figur 9-2: Klient/tjener-konfigurasjon

Detaljer

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk

INF2440 Prøveeksamen, løsningsforslag, 20 mai Arne Maus PSE, Inst. for informatikk INF2440 Prøveeksamen, løsningsforslag, 20 mai 2015 Arne Maus PSE, Inst. for informatikk 1 Prøveeksamen Er en modell av hva du får til eksamen: - like mange (+-1) oppgaver som eksamen og nesten samme type

Detaljer

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser

INF1010, 21. januar 2016. Klasser med parametre = Parametriserte klasser = Generiske klasser INF1010, 21. januar 2016 Klasser med parametre = Parametriserte klasser = Generiske klasser Stein Gjessing Inst. for Informatikk Universitetet i Oslo Først litt repetisjon fra i går class LagBiler { public

Detaljer

Tilkobling og Triggere

Tilkobling og Triggere Tilkobling og Triggere Lars Vidar Magnusson October 12, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 12, 2011 1 / 25 Tilkobling med PHP PHP bruker databasespesifike moduler til å koble

Detaljer

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1.

INF1010 Eksamenstips. Løsningsforslag prøveeksamen del 1. INF1010 Eksamenstips Løsningsforslag prøveeksamen del 1. michael@ifi.uio.no INF1010 FSE 25. mai 2011 (uke 21) 2 Les igjennom hele oppgaven. Les igjennom hele oppgaven en gang til, marker i teksten ting

Detaljer

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen Forkurs INF1010 Dag 1 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Tuva Kristine Thoresen (tuvakt@ifi.uio.no) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output

Detaljer

Litt om pakker og mest om data inn og ut

Litt om pakker og mest om data inn og ut Litt om pakker og mest om data inn og ut IN105-javainnogut-1 import java.io.*;. Data inn fra tastaturet lesemetode tastatur BufferedReader void lesemetode (String [ ] args) throws IOException {... /* sett

Detaljer

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 - MMI Lørdag 11. august 2012 Tid: kl. 0900-1300 Side 1 av 8 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 - MMI Lørdag

Detaljer

Eksamensoppgave i TDT4100 Objektorientert programmering

Eksamensoppgave i TDT4100 Objektorientert programmering Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering Faglig kontakt under eksamen: Hallvard Trætteberg Tlf.: 91897263 Eksamensdato: 6. juni Eksamenstid

Detaljer

Å lese tall fra en fil, klassen Scanner

Å lese tall fra en fil, klassen Scanner Å lese tall fra en fil, klassen Scanner 1. Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2. Kan skanne teksten etter data av ulike typer. 3. Kan kun skanne framover i teksten. Vis

Detaljer

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java Dagens tema: Kompilatorens struktur Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java De ulike modulene Prosjektet Hva skal Del-0 gjøre? Feilmeldinger Testutskrifter Siste råd og påbud

Detaljer

1 Kodegenerering fra Tau Suiten

1 Kodegenerering fra Tau Suiten Kodegenerering fra Tau Suiten For å generere Javakode eller en annen form for programmeringskode ut i fra Tau suiten, er det visse ting som må være utført.. En UML modell må eksistere og være korrekt.

Detaljer

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen..

NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Løsningsforslag Eksamen V2007 Oppgave 1 NB!!! Veldig korte svar er gitt her. Disse burde det vært skrevet mer på ved en eksamen.. Oppgave 1.1 Klasse som pakke rinne n primitiv datatype, slik at vi kan

Detaljer

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java

Dagens tema: Kompilatorens struktur. De ulike modulene Prosjektet. Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java Dagens tema: Kompilatorens struktur Oppbyggingen Pakker i Java Avbrudd («exceptions») Enum-klasser i Java De ulike modulene Prosjektet Hva skal del-0 gjøre? Feilmeldinger Testutskrifter Siste råd og påbud

Detaljer

INF våren 2017

INF våren 2017 INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer

Detaljer

Feilmelding Årsak Løsning

Feilmelding Årsak Løsning Request for the permission of type 'System.Security.Permissions.EnvironmentPermission, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' failed Feil oppstod i Window.DialogWindow:

Detaljer

INF1010 Tråder II 6. april 2016

INF1010 Tråder II 6. april 2016 INF1010 Tråder II 6. april 2016 Stein Gjessing Universitetet i Oslo 1 Tråder i Java tråden minrunp class MinRun implements Runable { MinRun(... ) {... } public void run( ) {...... } } //end

Detaljer

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19

Prosedyrer. Lars Vidar Magnusson. October 26, Lars Vidar Magnusson () Forelesning i DAS October 26, / 19 Prosedyrer Lars Vidar Magnusson October 26, 2011 Lars Vidar Magnusson () Forelesning i DAS 11.10.2011 October 26, 2011 1 / 19 Repetisjon om triggere og prosedyrer Triggere og prosedyrer ligner på hverandre

Detaljer

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN!

Klasser skal lages slik at de i minst mulig grad er avhengig av at klienten gjør bestemte ting STOL ALDRI PÅ KLIENTEN! Å lage sikre klasser Unntaksklassene i Java-API-et Unntakshåndtering i databasesammenheng try-catch-finally-setningen Trelagsarkitektur; egen databaseklasse Transaksjonshåndtering LC191D Videregående programmering

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 7 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert

Detaljer

INF1010 våren januar. Objektorientering i Java

INF1010 våren januar. Objektorientering i Java INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort

Detaljer

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund

Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Java RMI (Remote Method Invocation) Gruppe 9: Ivar Steien Rasmussen Tom Anders Dalseng Andreas Petlund Antagelser og forutsetninger Implementasjonseksemplet kompileres og kjøres på Java SDK 1.4.2 Dokumentasjon

Detaljer

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Inf1010 Våren 2009 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Oversikt Hva er en feil (er det ikke mulig å unngå feil?) Hva skjer når et program feiler

Detaljer

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet

UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet UNIVERSITETET I BERGEN Det matematisk-naturvitenskapelige fakultet Eksamen i emnet INF101/INF101-F - Programmering 2 Fredag 10. juni 2011, kl. 09-14 Bokmål Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

import java.io.*; import java.util.*; import javagently.text;

import java.io.*; import java.util.*; import javagently.text; //-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import

Detaljer

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold

Java RMI. Introduksjon. Markus Foss Hans-Gunnar Vold Java RMI Markus Foss Hans-Gunnar Vold Introduksjon Java Remote Method Invocation Tillater metodekall mellom Java virituelle maskiner Introdusert i Java 1.02 Javas svar på RPC, men er objekt orientert,

Detaljer

TOD063 Datastrukturer og algoritmer

TOD063 Datastrukturer og algoritmer TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage

Detaljer

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær:

INF110 Algoritmer og datastrukturer TRÆR. Vi skal i denne forelesningen se litt på ulike typer trær: TRÆR Vi skal i denne forelesningen se litt på ulike typer trær: Generelle trær (kap. 4.1) Binærtrær (kap. 4.2) Binære søketrær (kap. 4.3) Den siste typen trær vi skal behandle, B-trær (kap. 4.7) kommer

Detaljer

INF1010 våren 2016. Arv og subklasser - del 2

INF1010 våren 2016. Arv og subklasser - del 2 INF1010 våren 2016 Onsdag 10. februar Arv og subklasser - del 2 pluss litt om feil og unntak hvis tid Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi

Detaljer

Sortering med tråder - Quicksort

Sortering med tråder - Quicksort Sortering med tråder - Quicksort Skisser til to programmer INF1010 våren 2016 Stein Gjessing Institutt for informatikk Universitetet i Oslo Sortering som tema, slikt som valg av sorteringsmetode, hastigheten

Detaljer

OPPGAVE 5b og 8b Java Kode

OPPGAVE 5b og 8b Java Kode OPPGAVE 5b og 8b Java Kode public class Kant boolean behandlereturavbil() BehandleReturAvBil behandler = new BehandleReturAvBil(this); String regnr; int kmstand, tanknivaa; boolean erskadet; // 1: Få verdiene

Detaljer

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon

Mål med kurset. Java i INF 2400. Dagens tema. GUI med Swing. Dokumentasjon Mål med kurset Java i INF 2400 Introduksjon til signalbehandling Lyd som anvendelse Få programmeringserfaring Dagens tema Utplukk av Java (GUI, kode-konvensjon, polymorfisme, classpath, javadoc) Java og

Detaljer

Repetisjon. INF1000 - gruppe 13

Repetisjon. INF1000 - gruppe 13 Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje

Detaljer

Eksamen Objektorientert Programmering 2011

Eksamen Objektorientert Programmering 2011 Eksamen Objektorientert Programmering 2011 Høgskolen i Østfold 2011-05-11 Emnekode ITF10611 Emne Objektorientert Programmering Dato 2011 05-11 Eksamenstid 09:00-13:00 Hjelpemidler To A4-ark (fire sider)

Detaljer

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012. Objektorientert modellering

Detaljer

Kapittel 5: Objektkommunikasjon

Kapittel 5: Objektkommunikasjon Kapittel 5: Objektkommunikasjon Redigert av: Khalid Azim Mughal (khalid@ii.uib.no) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk

Detaljer

HØGSKOLEN I SØR-TRØNDELAG

HØGSKOLEN I SØR-TRØNDELAG HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring - AITeL Kandidatnr: Eksamensdato: 4.mai 2011 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D Campus: LC191D Videregående

Detaljer

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden

static int ant_steiner; //antall steiner static int teller2 = 0; //teller for printing til Thread^ murer; //murertråden Øving 4 Thorstein Brekke Operativsystemer Oppgave 1 Kode for Murer: // Uke4oppgave1murer.cpp : main project file. #include "stdafx.h" using namespace System; using namespace Threading; using namespace

Detaljer

Oversikt Kompilering Syntaksanalyse Java Feilsjekking Oppsummering

Oversikt Kompilering Syntaksanalyse Java Feilsjekking Oppsummering Dagens tema Dagens tema Hva er kompilering? Hvordan foreta syntaksanalyse av et program? Hvordan programmere dette i Java? Hvordan oppdage feil? Kildekode Hva er kompilering? Anta at vi lager dette lille

Detaljer

Eksamensoppgave i TDT4100 Objektorientert programmering med Java

Eksamensoppgave i TDT4100 Objektorientert programmering med Java Institutt for datateknikk og informasjonsvitenskap Eksamensoppgave i TDT4100 Objektorientert programmering med Java Faglig kontakt under eksamen: Rune Sætre Tlf.: 452 18 103 Eksamensdato: 2013, torsdag

Detaljer

INF2100. Oppgaver 26. september til 1. oktober 2007

INF2100. Oppgaver 26. september til 1. oktober 2007 INF2100 Oppgaver 26. september til 1. oktober 2007 1 Språket Denne uken skal vi implementere en utvidelse av språket fra forrige ukes oppgave. Syntaksen er vist i figur 1 på neste side og betydning er

Detaljer

Gjennomgang av eksamen H99

Gjennomgang av eksamen H99 Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares

Detaljer

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 8 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag Fredag 10. desember

Detaljer

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Lørdag 19. mai 2011, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag

EKSAMEN. TILLATTE HJELPEMIDLER: Alle trykte og skrevne. INNFØRING MED PENN, evt. trykkblyant som gir gjennomslag KANDIDATNUMMER: EKSAMEN EMNENAVN: Programutvikling EMNENUMMER: IMT3281 EKSAMENSDATO:05/12-2007 KLASSE: 06HBINDA/06HBINDP TID: 09.00 13.00 EMNEANSVARLIG: Øivind Kolloen ANTALL SIDER UTLEVERT: 7 TILLATTE

Detaljer

Introduksjon til objektorientert programmering

Introduksjon til objektorientert programmering Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes

Detaljer

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300

EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009 Tid: kl. 0900-1300 NORGES TEKNISK-NATURVITENSKAPELIGE UNIVERSITET INSTITUTT FOR DATATEKNIKK OG INFORMASJONSVITENSKAP Faglig kontakt under eksamen: Dag Svanæs, Tlf: 73 59 18 42 EKSAMEN I FAG TDT4180 MMI Mandag 18. mai 2009

Detaljer

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0

OO-eksempel. Modellen ser slik ut: Studenter + antstudenter : int = 0 OO-eksempel I eksemplet er det deklarert tre klasser: 1) Fag (skal instansieres ett objekt for hvert fag) 2) Student (skal instansieres ett objekt for hver student) 3) Studenter (abstrakt klasse skal ikke

Detaljer

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste

Hittil har programmene kommunisert med omverden via tastatur og skjerm Ønskelig at data kan leve fra en kjøring til neste Datafiler og serialisering Tekstfiler Scanner klassen Binær overføring av data Direkte tilgang til filinnholdet Serialisering LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php

Detaljer

IN 211 Programmeringsspråk. Java. på 20 enkle ark. spesielt for de som kan. Simula. (og gjerne litt C) Ark 1 av 20

IN 211 Programmeringsspråk. Java. på 20 enkle ark. spesielt for de som kan. Simula. (og gjerne litt C) Ark 1 av 20 Java på 20 enkle ark spesielt for de som kan Simula (og gjerne litt C) Ark 1 av 20 Forelesning 28.9.1998 Et minimalt eksempel Filen Hallo.java ser slik ut: class Hallo { public static void main(string

Detaljer

Mer objektorientert programmering

Mer objektorientert programmering Mer objektorientert programmering Klasser og objekter En klasse med konstruktør og en array Innkapsling En klasse med datafil og kommandoløkke Klassen ArrayList Hva er hva? Klasser og objekter Det er viktig

Detaljer

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo

Inf1010 Våren Feilsituasjoner og unntak i Java. Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Inf1010 Våren 2010 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Jeg prøvde å bestille billett med Air France:

Detaljer