J2EE og distribuerte systemer Leksjon 11: Entity Beans (CMP)

Størrelse: px
Begynne med side:

Download "J2EE og distribuerte systemer Leksjon 11: Entity Beans (CMP)"

Transkript

1 J2EE og distribuerte systemer Leksjon 11: Entity Beans (CMP) Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene f.eks. til undervisning eller kursformål må ta direkte kontakt med forfatter for nærmere avtale. Copyright: Tomas Holt/TISIP Publisert Frist innlevering av øvingsoppgaver Innhold 1 KOMMENTAR TIL LEKSJONEN ENTITY BEANS MED CMP EKSEMPEL KONTO EJB MED CMP Get/set-metoder Entity-metoder Forretningslogikk-metoder Finnmetoder Bruk av deploytool Resulterende dd EJB-QL HVILKE METODER KAN MAN KOBLE MOT EJB-QL SPØRRINGER?...12

2 1 Kommentar til leksjonen Leksjonen omhandler kapittel 13 i boka. Vi er kun interessert i det som har med CMP 2.0 (og senere) å gjøre. Alt som har med CMP 1.1 er derfor ikke pensum. 2 Entity Beans med CMP CMP står for Container Managed Persistence. Når vi bruker CMP i en Entity Bean så vil containeren sørge for varig lagring av dataene. I forrige leksjon så vi hvordan dette ble gjort med BMP. Det ble ganske mye databasekode. Vi skal nå se på hvordan vi kan slippe å skrive all denne koden. Ved bruk av CMP så lages denne koden automatisk. I starten på kapittel 13 tar boka opp ulike måter man kan sørge for varig lagring i slike EJB er. Merk at EJB er laget med CMP faktisk har mulighet for å være mer effektive enn BMP EJB er. Hvorvidt CMP faktisk blir effektivt, er avhengig av implementasjonen av containeren. En annen ting man skal merke seg med CMP er at EJB en blir mer fleksibel. Det er ikke nødvendig å gjøre om en CMP EJB når man velger å flytte EJB en fra en applikasjonstjener til en annen (likevel om de benytter ulike databasesystemer). Dette kan bli tilfellet når vi bruker BMP (bruk av DAO begrenser imidlertid denne problematikken, se forrige leksjon). 3 Eksempel Konto EJB med CMP La oss se hvordan kontoeksemplet fra forrige leksjon blir med CMP. Interfacene vil bli som for BMP (se forrige leksjon). For å oppsummere kort: Home-interfacet har følgende metoder: create(integer kontonr, String fornavn, String etternavn) findbyprimarykey(integer kontonr) findbysaldooverbeløp(int saldo) findallekontoer() beregntotaltantallkontoer() //home metode Remote/Local interfacene har følgende metoder: settinn(int belop) taut(int belop) hentsaldo() Ok, vi har nødvendige interface, la oss lage implementasjonsklassen:

3 import javax.ejb.*; import java.util.*; public abstract class KontoCMPBean implements EntityBean{ private EntityContext ctx; //konto er representert ved de varige feltene kontonr og saldo // i BMP lager vi objektvariabler, men ikke her! //her lager vi kun get og/eller set-metoder! /**************** SET/GET-metoder ********************/ public abstract void setkontonr(integer kontonr); public abstract Integer getkontonr(); public abstract void setfornavn(string fornavn); public abstract String getfornavn(); public abstract void setetternavn(string etternavn); public abstract String getetternavn(); public abstract void setsaldo(double nysaldo); public abstract int getsaldo(); /************* ENTITY METODER **********************/ public void setentitycontext(entitycontext ctx){ this.ctx = ctx; public void unsetentitycontext(){ public Integer ejbcreate(integer kontonr, String fornavn, String etternavn) throws CreateException{ if (kontonr == null kontonr.intvalue() < 1) throw new CreateException("Kontonr må være et positivt tall"); if (fornavn == null fornavn.equals("")) throw new CreateException("Eier av konto må ha et fornavn"); if (etternavn == null etternavn.equals("")) throw new CreateException("Eier av konto må ha et etternavn"); setkontonr(kontonr); setfornavn(fornavn); setetternavn(etternavn); setsaldo(0); return null; //gjøres når det er snakk om CMP. public void ejbpostcreate(integer kontonr, String fornavn, String etternavn){ public void ejbload(){ public void ejbstore(){ public void ejbactivate(){ public void ejbpassivate(){ public void ejbremove(){ /******* Foretningslogikk ***********************/ public void settinn(int belop){ int saldo = getsaldo(); setsaldo(saldo + belop); public void taut(int belop) throws KontoException{ int saldo = getsaldo(); if (saldo - belop < 0) throw new KontoException("Ikke dekning på konto"); setsaldo(saldo - belop); public int hentsaldo(){

4 return getsaldo(); /*********** Select-metoder **********************/ public abstract Collection ejbselectallekontoer() throws FinderException; /************ Ekstra home-metode *****************/ public int ejbhomeberegnantallkontoer() throws FinderException{ return ejbselectallekontoer().size(); Sammenlikn denne klassen med BMP klassen fra forrige leksjon! Særlig kortere kan det vel ikke gjøres? Jeg regner med at du nå spekulerer på hva som skjer her. Så la oss starte fra toppen. Det vi lager er en abstrakt klasse. Grunnen til dette er at applikasjonstjeneren vil sørge for å lage en sub-klasse til vår klasse, der alle nødvendige metoder blir implementert. Tjeneren vil blant annet sørge for å implementere ejbload()- og ejbstore()-metodene. 3.1 Get/set-metoder La oss først konstantere at du ikke finner variabler i klassen, verken for kontonr eller saldo (som vi hadde for BMP). Du finner imidlertid metoder for å sette og hente verdiene. Metoden getkontonr() vil altså returnere kontonr, mens setkontonr(integer kontonr) vil sette kontonr til en verdi. Legg merke til at disse metodene er abstrakte. Det vil de bestandig være. Applikasjonstjeneren vil implementere metodene. Get-metodene viser hvilke datatyper det er snakk om. Tjeneren er derfor i stand til å lage kode for å lagre/hente disse feltene (fra datalager) automatisk. Når du i EJB en trenger å få tak i saldoen, så kaller du ganske enkelt metoden getsaldo(), i stedet for å bruke variabelen saldo. Eksempel på dette kan du se i metoden hentsaldo(). Det eneste du trenger å gi applikasjonstjeneren beskjed om, er hvilken av variablene (kontonr eller saldo) som er primærnøkkel. Dette gjøres i deploytool. Vi kommer tilbake til hvordan dette gjøres. 3.2 Entity-metoder Dette er metodene som må være med i en Entity Bean. Disse vil være de samme som for BMP (men det kan også finnes noen flere som vi skal komme tilbake til) og er beskrevet på s. 413 i boka. Som du ser av implementasjonsklassen, er alle disse metodene unntatt ejbcreate() og setentitycontext() tomme. Det vil normalt være tilfelle, metodene er imidlertid tilgjengelig om vi vil bruke dem. Metodene blir kalt opp av containeren på samme måte som for BMP, men nytteverdien av dette er mye mer begrenset i CMP. Ettersom alle disse metodene vanligvis vil være tomme, kan det være en fordel å lage seg en generell klasse, som dine Entity Beans arver fra (på samme måte som vi gjorde for Session Beans).

5 3.3 Forretningslogikk-metoder Da har vi kommet fram til metodene som danner forretningslogikken. Disse metodene vil da være beskrevet, enten i et Remote-interface, og/eller et Local-interface. Vi har tidligere vært inne på at Entity Beans helst skal skjermes med en fasade av Session Beans. Det normale vil derfor være å bruke lokale-interface (men det kan være fornuftig med fjern-interface for testing). Ettersom vi har tre metoder i interfacet vårt, får vi tre metoder også i implementasjonsklassen. Legg merke til hvordan disse metodene bruker get/set-metodene for å endre tilstanden til EJB en. Skal du f.eks. endre saldoen til denne EJB en, så kaller du metoden setsaldo(). 3.4 Finnmetoder Når vi brukte BMP så lagde vi ejbfindxxx() metoder for findxxx() metodene beskrevet i Home-interfacet. I vårt tilfelle har vi flere slik metoder: findbyprimarykey(integer kontonr) findbysaldooverbeløp(int saldo) findallekontoer() (ikke laget i eksemplet her, det vil være en fin oppgave for deg å legge til denne). Ingen av disse metodene er implementert i implementasjonsklassen. Spørsmålet er da, hvordan blir disse implementert? Metoden findbyprimarykey() implementeres automatisk (skjer bestandig). Metoden findbysaldooverkroner() vil det imidlertid være vanskelig for applikasjonstjeneren å lage, uten hjelp fra deg. Hvordan kan tjeneren vite hva denne metoden faktisk skal gjøre? Det kan den rett og slett ikke skjønne på egen hånd. Du må derfor hjelpe tjeneren, men du slipper å skrive java-kode. Vi bruker deploytool til å lage en en dd (deployment descriptor), som forklarer hvilken spørring som skal gjøres av denne metoden. Ok, la oss gjøre dette i praksis. 3.5 Bruk av deploytool Framgangmåten er den samme som før. Vi starter med å lage en applikasjon og så skal vi lage en ny Enterprise Bean. Sørg for å velge filene som skal være med i EJB en (interface og implementasjonsklasse). Når du kommer til skjermbildet der du skal velge Bean Type så må du selvsagt velge Entity Bean (og ikke Session Bean). Du vil etter hvert få opp følgende skjermbilde:

6 Figur 1: Entity Settings Det er her du konfigurerer mye av en CMP EJB. Sørg for å merke av for Container managed persitence (2.0). Sørg videre for å merke av hvilke felter som skal være varige (disse er bestemt ut fra get-metodene). Så må du sørge for å bestemme hvilken type primærnøkkelen har. Vi må altså endre feltet Primary Key Class til java.lang.integer i dette tilfellet. I nedtrekkslisten Primary Key Field Name velger vi hvilket av feltene (kontonr eller saldo) som er primærnøkkelen. Skjermbildet skal altså se slik ut når du er ferdig:

7 Figur 2: Entity Settings for Konto EJB. Nå trenger vi å spesifisere hvilket databasesystem som skal brukes, og ikke minst spørringene for finn-metodene. Det første vi gjør er å bestemme Abstract Schema Name. Dette feltet inneholder navnet vi ønsker å bruke på databasen (merk at det ikke er navnet databasen faktisk kommer til å få, men det navnet vi bruker i vår spørring). Vi kan f.eks. kalle feltet KontoSkjema. Vi trykker så på knappen for Finder/Select Metods..

8 Figur 3: Finder/Select Metods I skjermbildet over får vi muligheten til å bestemme spørringene for de finnmetodene som vi har laget (ikke findbyprimarykey() da denne lages automatisk). I mitt tilfelle kan du se at metoden faktisk ligger i RemoteHome-interfacet, og at metoden heter findbysaldooverkroner(). Det kan godt være flere metoder her, og gjerne spredd over Local Finders (fra LocalHome-interfacet), RemoteHome-interfacet og Select Metods (kommer tilbake til disse). Ved å trykke på metoden findbysaldooverbeløp() kan jeg skrive inn spørringen i vinduet til høyre. Spørrespråket som brukes kalles EJB-QL. Dette er et spesielt spørrespråk laget for CMP. Det ligner imidlertid mye på SQL og er derfor ikke vanskelig å lære. Spørringen for findbysaldooverbeløp() blir slik: SELECT OBJECT(o) FROM KontoSkjema o WHERE o.saldo >?1 Første linje beskriver at vi skal hente alle objekter o fra KontoSkjema (husk at dette er det navnet vi ga databasen vår) som tilfredstiller kriteriet i andre linje. På norsk blir dette: Finn alle objekter hvor saldoen i objektet (o) er større enn?1. Hva er så dette siste leddet? Det er faktisk det første argumentet i metoden findbysaldooverbeløp(double saldo). Når metoden kalles f.eks. slik, findbysaldooverbeløp(1000), så vil?1 skiftes ut med Spørringen vil derfor returnere alle kontoer som har saldo større enn Hadde metoden hatt flere argumenter ville vi kunne hente disse med?2 for andre argument,?3 for tredje argument osv. Skjermbildet blir nå slik:

9 Figur 4: EJB-QL for findbysaldooverkroner() Trykk OK og så Finish. Du er nå nesten ferdig med å lage applikasjonen. Det er to ting som nå mangler. Først må du sørge for at riktig databasesystem blir valgt til lagring av dataene. Dette gjør du ved å velge EJB en du har laget (se figuren under). Velg så skillearket Entity. Skjermbildet skal da være som vist under: Figur 5: Entity

10 Velg Deployment Settings... Figur 6: Depl oyment settings Velg Database Settings. Merk deg at du i dette skjermbildet kan velge om databasen skal opprettes automatisk eller ikke. Hvis ikke må databasen opprettes på annen måte. F.eks. ved bruke av cloudscape isql. Figur 7: Velg database Skriv inn Database JNDI Name. For oss vil dette være jdbc/cloudscape, men vil du bruke en annen database er det fult mulig. Trykk OK. Du kommer nå tilbake til forrige skjermbilde og velger nå Generate Default SQL. Merk at cloudscape nå må være startet for at dette skal fungere. Hvis du nå trykker på metoden findbysaldooverbeløp() så vil du se at den genererte SQL-koden vises (den kan du faktisk endre hvis du vil) og at EJB-QL koden vises. Om EJB-QL koden ikke er gyldig (skrivefeil) så kan du trykke på Edit og rette opp. Merk at den genererte SQL-koden inneholder det

11 virkelige tabellnavnet som brukes i databasen, her KontoCMPBeanTable (se figuren under). Hvis du bruker cloudscape isql må du skrive <isql> select * from KontoCMPBeanTable for å se innholdet i databasen. Merk at det skilles mellom store og små bokstaver (og at vi derfor må bruke tegnet rundt tabellnavnet). Figur 8: SQL og EJB-QL kode Alt skal nå være i orden så vi trykker på OK. Nå gjenstår bare å gi EJB en et JNDI-navn og legge til en klient som bruker EJB en. Dette skal du nå være i stand til å gjøre (og du bør gjøre det). 3.6 Resulterende dd Hva er det egentlig som skjer i eksemplet over. Deploytool sørger for å lage en dd som inneholder en kobling mellom metoden findbysaldooverbeløp() og tilhørende EJB-QL. Dette er viktig fordi det må være en kobling herm, slik at riktig spørring utføres for denne metoden. Ved å velge EJB en i deploytool, og velge Tools > Descriptor Viewer, får du se dd en for EJB en. Under kan du se et utdrag: <guery> <query-method> <method-name>findbysaldooverbeløp</method-name> <method-params> <method-param>int</method-param> </method-params> </query-method> <ejb-ql>select object(o) from KontoSkjema o where o.saldo >?1</ejb-ql>

12 </query> 3.7 EJB-QL EJB-QL er beskrevet nærmere i kapittel 13.5 i boka, og dette kapitlet kan derfor brukes som referanse når du skal lage egne spørringer. 4 Hvilke metoder kan man koble mot EJB-QL spørringer? Vi har allerede sett at findbyprimarykey() håndteres automatisk. I tillegg så har vi sett at vi kunne lage en spørring koblet mot findbysaldooverbeløp(). Det er slik at alle finnmetodene som ligger i Home-interfacet (Local eller Remote) automatisk blir oppdaget, og at man kan spesifisere EJB-QL for disse. Finnmetodene har imidlertid begrenset fleksibilitet. Slike metoder returnerer alltid et eller flere objekter som implementerer enten Local- eller Remote-interfacet til EJB en det er snakk om (mao. EJB-objekter). Hva om vi ønsker en metode som returnerer antall kontoer? Hvordan kan vi få til dette? En løsning er selvsagt å lage metoden findallekontoer() og lage en EJB- QL spørring for denne som returnerer alle kontoene. Problemet er bare at nå blir det returnert en Collection med objekter, og så må klienten selv finne ut hvor mange kontoer det er snakk om. Dette er uholdbart, hva om vi har 1 million kontoer? Skal vi da sende 1 million objekter over nett til klienten? Det vi trenger er en måte som gjør det mulig å beregne antall kontoer på tjenersiden, og bare returnere et tall. Vi trenger metoden public int beregnantallkontoer() Vi kan jo godt lage denne metoden og gjøre den tilgjengelig for klienter, men hvordan kan vi knytte en spørring mot den? Alle metoder i implementasjonsklassen som starter med ejbselect... skal knyttes mot EJB-QL spørringer (akkurat på samme måte som finnmetodene). Metodene kalles select-metoder og vil bare defineres i implementasjonsklassen (ikke i noen av interfacene). Vi trenger altså en select-metode som henter alle kontoene. Vi kaller denne metoden ejbselectallekontoer(). Alle select-metoder skal være abstrakte. Vi må derfor legge til følgende linje i implementasjonsklassen: public abstract Collection ejbselectallekontoer() throws FinderException; Nå er det bare å bruke deploytool og å sette en EJB-QL spørring for select-metoden. Dette gjøres på samme plass som for finnmetodene (beskrevet tidligere). Husk å generere SQLkode. Nå har vi kommet ditt at vi har en metode som kan returnere alle kontoer. Vi kan nå bruke denne metoden i beregnantallkontoer() og metoden blir slik: public int beregnantallkontoer() throws FinderException return ejbselectallekontoer().size(); Denne metoden må nå beskrives i et av interfacene slik at klienten kan kalle denne metoden. Hvilket interface er det nå naturlig å bruke? Metoden ligner jo på en forretningsmetode, men

13 metoden er jo ikke spesifikk for et implementasjonsobjekt. Metoden er derfor best egnet som en home-metode. Som beskrevet i forrige leksjon er dette metoder som begynner ejbhome og vi vil derfor her kalle metoden ejbhomeberegnantallkontoer(). Metoden må også defineres i Home-interfacet (ene) og blir der hetende beregnantallkontoer().

J2EE. CMP Entity Beans, Transaksjoner, JSP

J2EE. CMP Entity Beans, Transaksjoner, JSP J2EE CMP Entity Beans, Transaksjoner, JSP CMP Entity Beans Container Managed Persistence Container sin oppgave å lagre innholdet i EJB til varig lager (typisk DB). Implementasjonsklassen lages abstrakt.

Detaljer

J2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP)

J2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP) J2EE og distribuerte systemer Leksjon 10: Entity Beans (BMP) Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene

Detaljer

Repetisjon J2EE. Fullstendig skisse. JNDI og EJB. Session Beans Entity Beans (BMP)

Repetisjon J2EE. Fullstendig skisse. JNDI og EJB. Session Beans Entity Beans (BMP) J2EE Session Beans Entity Beans (BMP) Repetisjon TLSB (tilsandsløse Session Beans). Husk: Remote-interface => EJB-objekt gethelloworldstring() Home-interface => home-objekt create() Implementasjonsklasse

Detaljer

La oss først se på problemet med objektorientert tankegang. Se figuren under. Konto

La oss først se på problemet med objektorientert tankegang. Se figuren under. Konto Øving 11 - del b Oppgave 1 fasade av Session Beans. Denne oppgaven kan også gjøres samtidig som oppgave 2 (det er imidlertid enklere å holde oversikten om du gjør en ting i gangen). Du skal nå lage en

Detaljer

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004

Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Løsningsskisse, eksamen J2EE og distribuerte systemer 19.mai 2004 Oppgave 1 RMI-tjenerobjekt (databasewrapper) A Sentral tjenermaskin med database, RMi-register og RMI-tjenerprogram vis kart gjør bestilling

Detaljer

J2EE. Katalogtjenester, JNDI og Enterprise Beans

J2EE. Katalogtjenester, JNDI og Enterprise Beans J2EE Katalogtjenester, JNDI og Enterprise Beans Navnetjeneste Rmiregistry er en navnetjeneste Mapper et navn til en objektreferanse MittObjekt obj = (MittObjekt)Naming.lookup( rmi://tjener.no/lotto );

Detaljer

J2EE og distribuerte systemer Leksjon 9: Session Beans

J2EE og distribuerte systemer Leksjon 9: Session Beans J2EE og distribuerte systemer Leksjon 9: Session Beans Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker å bruke leksjonene

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: 10.desember 2008 Varighet: 0900 1200 Fagnummer: Fagnavn: LO346D Java EE og distribuerte systemer Klasse(r): NETT

Detaljer

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

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy

Kapittel 13 Advanced Hypertext Implementation. Martin Lie Ole Kristian Heggøy Kapittel 13 Advanced Hypertext Implementation Martin Lie Ole Kristian Heggøy 08.11.04 Forbedring av arkitektur Problem med alt i ett -løsning: Spredning av forretningslogikk. Avhengighet mellom presentasjonssider

Detaljer

INF1010 - Seminaroppgaver til uke 3

INF1010 - Seminaroppgaver til uke 3 INF1010 - Seminaroppgaver til uke 3 Oppgave 1 I denne oppgaven skal vi lage et klassehiearki av drikker. Alle klassene i hiearkiet skal implementere følgende grensesnitt p u b l i c i n t e r f a c e Drikkbar

Detaljer

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter

Å bruke Java API-et til å sortere tabeller/arraylister der elementene er (referanser til) objekter Sortering og søking i Java-API-et Tabeller og Arraylister Comaparable Comparator equals() LC9D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc9d.php Høgskolen i Sør-Trøndelag,

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

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

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse

Detaljer

Oppgave 1 (Opprett en database og en tabell)

Oppgave 1 (Opprett en database og en tabell) Oppgave 1 (Opprett en database og en tabell) 1) I «Object Explorer» (i «SQL Server Management Studio»), høyreklikk over Databases : 1 2 2) Skriv så databasenavnet og klikk OK: 3) Plasser så kursoren på

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

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

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java

Forklaring til programmet AbstraktKontoTest.java med tilhørende filer Konto.java, KredittKonto.java, SpareKonto.java 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 Forklaring til programmet AbstraktKontoTest.java med tilhørende

Detaljer

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider:

JSP - 2. Fra sist. Hvordan fungerer web? Tjenerside script HTML. Installasjon av Web-tjener Et enkelt JSP-script. Ønsker dynamiske nettsider: Fra sist JSP - 2 Installasjon av Web-tjener Et enkelt JSP-script HTML statisk Forms Tags Ønsker dynamiske nettsider: Klientside-script/programmering Javascript, vbscript, applets Tjenerside-script/programmering

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

J2EE og distribuerte systemer Leksjon 8: Oppbygning av J2EE-applikasjoner

J2EE og distribuerte systemer Leksjon 8: Oppbygning av J2EE-applikasjoner J2EE og distribuerte systemer Leksjon 8: Oppbygning av J2EE-applikasjoner Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere som ønsker

Detaljer

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1

Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 Delkapittel 3.1 Grensesnittet Liste Side 1 av 11 Algoritmer og datastrukturer Kapittel 3 - Delkapittel 3.1 3.1 En beholder 3.1.1 En beholder En pappeske er en beholder En beholder er noe vi kan legge ting

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

Eksamen i Internetteknologi Fagkode: IVA1379

Eksamen i Internetteknologi Fagkode: IVA1379 Høgskolen i Narvik Side 1 av 5 Eksamen i Internetteknologi Fagkode: IVA1379 Tid: Mandag, 07.06.04, 9:00-12:00 Tillatte hjelpemidler: Alle trykte og skrevne hjelpemidler tillatt. Eksamen består av 4 oppgaver

Detaljer

INF5120 Oblig 1c4 - Gruppe 19

INF5120 Oblig 1c4 - Gruppe 19 INF5120 Oblig 1c4 - Gruppe 19 Berge, Kristian, Trond og Fredrik Mapping av domenemodell mot EJB/WEB modell Teknologispesifikke valg PIM Class Model 1 PIM Service Model PIM class model PIM service model

Detaljer

IN1010 våren januar. Objektorientering i Java

IN1010 våren januar. Objektorientering i Java IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som

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

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

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

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; }

Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; } Hva er verdien til variabelen j etter at følgende kode er utført? int i, j; i = 5; j = 10; while ( i < j ) { i = i + 2; j = j - 1; Hva skrives ut på skjermen når følgende kode utføres? int [] tallene =

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

Kapittel 7: Mer om arv

Kapittel 7: Mer om arv Kapittel 7: Mer om arv 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 Forlag,

Detaljer

Hvordan designe en ER-modell med MS-VISIO

Hvordan designe en ER-modell med MS-VISIO AITeL Databaser Hvordan designe en ER-modell med MS-VISIO Kjell Toft Hansen 19. august 2003 Brukerveiledningen er forfatters eiendom. Som kursdeltaker kan du fritt bruke den til eget personlig bruk. Kursdeltakere

Detaljer

Enkle generiske klasser i Java

Enkle generiske klasser i Java Enkle generiske klasser i Java Oslo, 7/1-13 Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Del 1: Enkle pekere Før vi tar fatt på det som er nytt i dette notatet, skal vi repetere litt

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

Sikkerhet og tilgangskontroll i RDBMS-er

Sikkerhet og tilgangskontroll i RDBMS-er Sikkerhet og tilgangskontroll i RDBMS-er IN2090 14. nov 2018 Mathias Stang 1 Agenda Modeller for tilgangskontroll Brukere og roller i RDBMS-er GRANT og REVOKE SQL Injections 2 Hovedmål med databasesikkerhet

Detaljer

1. Innføring i bruk av MySQL Query Browser

1. Innføring i bruk av MySQL Query Browser Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag Innføring i bruk av MySQL Query Browser Kjell Toft Hansen 28.02.2007 Lærestoffet er utviklet for faget LV338D Databaseadministrasjon 1. Innføring

Detaljer

Sortering med Comparable og Comparator

Sortering med Comparable og Comparator Sortering med Comparable og Comparator Denne siden forklarer hvordan grensesnittene java.util.comparable og java.util.comparator bidrar til sortering i Java. Comparable og Comparator er grensesnitt som

Detaljer

J2EE og distribuerte systemer Leksjon 7: Installasjon av applikasjonstjener og JNDI

J2EE og distribuerte systemer Leksjon 7: Installasjon av applikasjonstjener og JNDI J2EE og distribuerte systemer Leksjon 7: Installasjon av applikasjonstjener og JNDI Leksjonen er forfatters eiendom. Som kursdeltaker kan du fritt bruke leksjonen til eget personlige bruk. Kursdeltakere

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

1. NetBeans IDE: Lage en enkel mobilapplikasjon

1. NetBeans IDE: Lage en enkel mobilapplikasjon Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag NetBeans IDE: Lage en enkel mobilapplikasjon Mildrid Ljosland/Lene Hoff 09.09.2008 Lærestoffet er utviklet for faget SO350D J2ME for programmering

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: AITeL Eksamensdato: 2.desember 2009 Varighet: 0900-1300 Emnekode: Emnenavn: Klasse(r): LO191D / LC191D LO191D Videregående programmering

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL

Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL Publisering av statiske og dynamiske websider til klasserom.net fra Dreamweaver og MySQL 1. Om klassersom.net: Klasserom.net er en webhotell-løsning for skoler, hvor formålet er å gi elevene hvert sitt

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

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

TDT4100 Objektorientert programmering

TDT4100 Objektorientert programmering Eksamensoppgave i TDT4100 Objektorientert programmering Tirsdag 2. juni 2009, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikrer Trond Aalberg. Kontaktperson under

Detaljer

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5)

1- og 2-veis Innkapsling Java Stabel Kø Prio-kø Iterator. Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Dagens tema Litt mer om vanlige lister Enveis- og toveislister Innkapsling («boxing») (Big Java 6.8.5) Nyttige varianter av lister: Stabler («stacks») (Big Java 15.5.1) Køer («queues») (Big Java 15.5.2)

Detaljer

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder 6108 Programmering i Java Leksjon 6 Objekt Del 2: 6.4 6.5 Roy M. Istad 2015 Generelt oppsett av egendefinert klasse Eks: Student Evt. importsetninger public class Klasse { Objektvariabler - instansvariabler

Detaljer

1. SQL datadefinisjon og manipulering

1. SQL datadefinisjon og manipulering Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL datadefinisjon og manipulering Tore Mallaug 7.10.2008 Lærestoffet er utviklet for faget Databaser 1. SQL datadefinisjon og manipulering

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

Repitisjonskurs. Arv, Subklasser og Grensesnitt

Repitisjonskurs. Arv, Subklasser og Grensesnitt Repitisjonskurs Arv, Subklasser og Grensesnitt Subklasser Klasser i OO-programmering representerer typer av objekter som deler et sett med egenskaper. En subklasse har egenskapene til en klasse + ett sett

Detaljer

Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011)

Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) Løsningsforslag ukeoppg. 9: 19. - 25. okt (INF1000 - Høst 2011) HashMap, innstikksortering, javadoc (kap. 9.1-9.11, m.m. i "Rett på Java" 3. utg.) NB! Legg merke til at disse er løsningsforslag. Løsningene

Detaljer

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs

BOKMÅL Side 1 av 7. KONTINUASJONSEKSAMEN I FAG TDT4100 Objektorientert programmering / IT1104 Programmering, videregående kurs BOKMÅL Side 1 av 7 NTNU Norges teknisk-naturvitenskapelige universitet Fakultet for informasjonsteknologi, matematikk og elektroteknikk Institutt for datateknikk og informasjonsvitenskap KONTINUASJONSEKSAMEN

Detaljer

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Norges teknisk naturvitenskapelige universitet Institutt for datateknikk og informasjonsvitenskap TDT4102 Prosedyre og Objektorientert programmering Vår 2014 Øving 10 Frist: 2014-04-11 Mål for denne øvinga:

Detaljer

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012

INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012 INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver

Detaljer

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre

Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre Dagens tema Lister og generiske klasser, del I Array-er og ArrayList (Big Java 6.1 & 6.8) Ulike lagringsformer (Collection) i Java (Big Java 15.1) Klasser med typeparametre («generiske klasser») (Big Java

Detaljer

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre

Oppsummering. Kort gjennomgang av klasser etc ved å løse halvparten av eksamen Klasser. Datastrukturer. Interface Subklasser Klasseparametre Oppsummering Kort gjennomgang av klasser etc ved å løse halvparten av eksamen 2012. Klasser Interface Subklasser Klasseparametre Datastrukturer Hva er problemet? Oppgaven Emballasjefabrikken Renpakk skal

Detaljer

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert.

23.09.2015. Introduksjon til objektorientert. programmering. Hva skjedde ~1967? Lokale (og globale) helter. Grunnkurs i objektorientert. Grunnkurs i objektorientert programmering Introduksjon til objektorientert programmering INF1000 Høst 2015 Siri Moe Jensen INF1000 - Høst 2015 uke 5 1 Siri Moe Jensen INF1000 - Høst 2015 uke 5 2 Kristen

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

Læringsmål for forelesningen

Læringsmål for forelesningen Læringsmål for forelesningen Objektorientering Abstrakte klasser og grensesnitt, redefinering av metoder Java-programmering Arv og bruk av abstrakte klasser Eclipse Undersøke instanser i Eclipse 1 Dagens

Detaljer

INF1000: Forelesning 7

INF1000: Forelesning 7 INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider.

Detaljer

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2

Datamodellering og databaser http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 http://www.aitel.hist.no/fag/_dmdb/ SQL, del 2 Eksempelbase side 2 Virtuelle tabeller (views) side 3-6 NULL-verdier side 7-14 UPDATE-setningen side 15-16 INSERT-setningen side 17 DELETE-setningen side

Detaljer

1. SQL spørringer mot flere tabeller

1. SQL spørringer mot flere tabeller 1. SQL spørringer mot flere tabeller Avdeling for informatikk og e-læring, Høgskolen i Sør-Trøndelag SQL spørringer mot flere tabeller Tore Mallaug 29.9.2008 Lærestoffet er utviklet for faget Databaser

Detaljer

Oblig 4Hybelhus litt mer tips enn i oppgaven

Oblig 4Hybelhus litt mer tips enn i oppgaven Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,

Detaljer

CORBA Component Model (CCM)

CORBA Component Model (CCM) CORBA Component Model (CCM) INF5040 Høst 2005 Erlend Birkedal Jan Erik Johnsen Tore Ottersen Løkkeberg Denne presentasjonen CORBA Svakheter ved CORBA Object Model Komponenter CORBA Component Model Hva

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1010 Objektorientert programmering Dato: 9. juni 2016 Tid for eksamen: 09.00 15.00 (6 timer) Oppgavesettet er på 7 sider. Vedlegg:

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

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først)

INF1010 våren 2019 Onsdag 30. januar. Mer om unntak i Java (med litt repetisjon av I/O først) INF1010 våren 2019 Onsdag 30. januar Mer om unntak i Java (med litt repetisjon av I/O først) Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type:

Detaljer

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"

programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet TGA Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"

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

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale.

EKSAMEN 6108/6108N PROGRAMMERING I JAVA Alt trykt og skriftlig materiale. Høgskolen i Telemark Fakultet for allmennvitenskapelige fag EKSAMEN I 6108/6108N PROGRAMMERING I JAVA 21. 12. 2015 Tid: 4 timer Sidetall: Hjelpemiddel: Merknader: Framside + 5 sider Alt trykt og skriftlig

Detaljer

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015

6108 Programmering i Java. Leksjon 5. Tabeller. Roy M. Istad 2015 6108 Programmering i Java Leksjon 5 Tabeller Roy M. Istad 2015 Hva er tabeller? Tabell (evt. array): Sammensetning av verdier i den samme datatypen, under ett navn i hurtigminnet. Gir rask og effektiv

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

INF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004

INF1010 Arv. Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 INF1010 Arv Marit Nybakken marnybak@ifi.uio.no 2. februar 2004 Motivasjon Arv bruker vi så vi skal slippe å skrive oss i hjel. Når vi programmerer, prøver vi gjerne å modellere en del av verden ved hjelp

Detaljer

Løse reelle problemer

Løse reelle problemer Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)

Detaljer

LC191D/LO191D Videregående programmering mai 2010

LC191D/LO191D Videregående programmering mai 2010 LC191D/LO191D Videregående programmering mai 2010 Løsningsforslag Oppgave 1 Transporttype er en tekst som er felles for klassene AnnenEgenTransport og Kollektivtransport. Vi legger den derfor i klassen

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

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

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%]

Tillatte hjelpemidler: alle skrevne og trykte. Antall sider: 2 (+ 1 side vedlegg, bakerst). Oppgave 1 [25%] Bokmål Det Matematisk-naturvitenskapelege fakultet UNIVERSITETET I BERGEN Eksamen i emnet INF101/INF101F Programmering II Tirsdag 28. september 2010, kl. 09-12. Tillatte hjelpemidler: alle skrevne og trykte.

Detaljer

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen.

Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å falle over skjermen. Tetris Introduksjon Processing Introduksjon Lag starten på ditt eget tetris spill! Det du skal gjøre i denne oppgava er først å sette opp bakgrunnen til spillet og så rett og slett å få firkanter til å

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

29.02.2012. GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka

29.02.2012. GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser. En oversikt over kapittel 19 i boka GUI-programmering, del 3 Vinduslyttere Dialogvinduer GUI-komponenten JTable Egne datamodellklasser LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php Høgskolen

Detaljer

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk

Eks 1: Binærtre Binærtretraversering Eks 2: Binærtre og stakk Godkjent oblig 1? Les e-post til din UiO-adresse Svar på e-post fra lablærer Ingen godkjenning før avholdt møte med lablærer Godkjentlistene brukes ikke til å informere om status for obligene Ta vare på

Detaljer

Eksport av budsjett fra Controller til Visma Business

Eksport av budsjett fra Controller til Visma Business Eksport av budsjett fra Controller til Visma Business Det første som gjøres er å eksportere budsjettet fra Controller via Interactive SQL (isql) (startes fra Programmenyen, under Sybase/Adaptive Server

Detaljer

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?

1. Finn klassene (hvilke objekter er det i problemet) 1. Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det? Obligatorisk oppgave 3 Gulbrand Grås husleiesystem Oblig 3hus litt mer tips enn i oppgaven I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer, nummerert fra -3. I hver etasje

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Side 1 Det matematisk-naturvitenskapelige fakultet Eksamen i: INF1010 Objektorientert programmering Eksamensdag: Onsdag 4. juni 2014 Tid for eksamen: 9:00-15:00 Oppgavesettet er på

Detaljer

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004

INF 329: Web-Teknologier. Dataimplementasjon. Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 INF 329: Web-Teknologier Dataimplementasjon Fra Kapittel 11 i «Designing Data-Intensive Web Applications» Presentasjonsdato: 17/10/2004 av: Dag Viggo Lokøen (dagvl@ii.uib.no) Kent Inge F. Simonsen (kentis@ii.uib.no)

Detaljer

INF1000: Forelesning 7. Konstruktører Static

INF1000: Forelesning 7. Konstruktører Static INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO Eksamen i UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamensdag: 15. desember 2010 Tid for eksamen: 14.30 18.30 Oppgavesettet er på 8 sider. Vedlegg: Tillatte hjelpemidler: INF2220

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 12. desember 2008 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 7 sider. Vedlegg: Tillatte hjelpemidler: INF2220

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

Algoritmer og datastrukturer E Løkker i Java

Algoritmer og datastrukturer E Løkker i Java Vedlegg E Løkker i Java Side 1 av 6 Algoritmer og datastrukturer E Løkker i Java E Løkker i Java E.1 For-løkker En for-løkke består av de fire delene initialisering, betingelse, oppdatering og kropp (eng:

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

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet

Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Factory Patterns Interface Deklarerer at klassen skal bruke et interface (implements i Java) Definerer implementasjoner for alle metodene i interfacet Slide 2 v Factory Method Pattern Class creational

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

Distribuerte objekter og objekt-basert mellomvare

Distribuerte objekter og objekt-basert mellomvare Distribuerte objekter og objekt-basert mellomvare INF 5040 H2006 foreleser: Frank Eliassen INF5040 Frank Eliassen 1 Hvorfor objekt-basert distribuert mellomvare? Innkapsling naturlig tilnærming til utvikling

Detaljer