INF1010 oversikt med. 19. mai Subklasser mm Unntaksbehandling GUI Tråder. Stein Gjessing InsBtuC for informabkk Universitetet i Oslo

Størrelse: px
Begynne med side:

Download "INF1010 oversikt med. 19. mai Subklasser mm Unntaksbehandling GUI Tråder. Stein Gjessing InsBtuC for informabkk Universitetet i Oslo"

Transkript

1 INF1010 oversikt med Subklasser mm Unntaksbehandling GUI Tråder 19. mai 2011 Stein Gjessing InsBtuC for informabkk Universitetet i Oslo

2 Hvordan starte å løse et problem Eksempel: Bank I et mini-system for en bank skal alle konti registreres med innestående beløp og hvilken kunde som eier kontoen. Hver kunde registreres med navn og telefonnummer (åtte siffer). Det skal være mulig for kunder å ta ut og sette inn beløp. En bruker skal kommunisere med systemet via et brukergrensesnitt. Substantivmetoden! 2

3 Model- View- Control main navn: bnk type: BankKontroll bnk = new BankKontroll(); bnk.ordreløkke(); BankKontroll- klassedatastruktur BankUtsyn- objekt leskommando beomnavnogbelop hentnavn hentbelop beomoghentnavn skrivsum BankKontroll navn: b type: Bank BankKontroll- objekt Bank- objekt lagnykunde lagbankkunde OernBankKunde OernBankKunde secinn sumallekonb sumallekonb secinn ordrelokke navn: konb navn: u type: HashMap type: BankUtsyn Konto- objekter HashMap- objekt 3

4 Klassehierarki: Personbil Bil Klasser - Subklasser! class Bil { <blå egenskaper> class Personbil extends Bil { <røde egenskaper> class Lastebil extends Bil { < mørke røde egenskaper> class Drosje extends Personbil { < gule egenskaper> Alle lastebiler Lastebil Drosje Alle biler Alle drosjer Alle personbiler 4

5 Konvertering av pekere class- cast MasterStudent master = new MasterStudent(); Person Konvertering oppover: Student stud = master; Person pers = master; Person pers Student MasterStudent Konvertering nedover: (Student) pers Student stud (MasterStudent) pers (fordi dette krever kontroll under kjøring) MasterStudent master Regel: Objektet som en peker peker på må ha alle egenskapene som typen til pekeren angir Derfor: Alle pekere har lov til å peke bortover og nedover (men ikke oppover ) 5

6 Konstruktører Superklassens konstruktør kan kalles fra en subklasse ved å si: super(); - vil kalle på en konstruktør uten parametre super(5, test ); - vil kalle på en konstruktør med to parametre (int og String) Et kall på super må legges helt i begynnelsen av konstruktøren. Kaller man ikke super eksplisic, vil Java selv legge inn kall på super( ) helt først i konstruktøren når programmet kompileres. Hvis en klasse ikke har noen konstruktør, legger Java inn en tom konstruktør med kallet super(); 6

7 Eksempel Her er fire forslag til konstruktører: Student() { studid = 0; Anta at vi har følgende klasser: class Person { String fødselsnr; Person(String fnr) { fødselsnr = fnr; class Student extends Person { int studid; Student() {... Student() { super( 12345"); studid = 0; Student(String nr){ super(nr); studid = 17; Student(String nr, int id){ super(nr); studid = id; Hvilke virker?

8 Omdefinering av metoder - polymorfi En subklasse kan utvide en eksisterende klasse med nye metoder. En subklasse kan også definere en metode med samme signatur som en metode i superklassen, men med ulikt innhold. Den nye metoden vil omdefinere (erstace) metoden som er definert i superklassen. Metoder som kan omdefineres på denne måten kalles virtuelle metoder. I Java er alle metoder virtuelle, så sant de ikke er deklarert med final. Virtuelle metoder = polymorfi! 8

9 Hund h Polymorfi: eksempel Rasehund r Hund g void bjeff() { System.out.println("Voff- voff"); void bjeff() { System.out.println("Voff- voff"); void bjeff() { System.out.println("Vov- vov"); Anta: Hva skrives ut ved hvert av kallene: Hund h = new Hund(); Rasehund r = new Rasehund(); Hund g = r; h.bjeff(); r.bjeff(); g.bjeff(); voff-voff vov-vov vov-vov 9 UanseK hva slags peker vi bruker for å komme Ml objektet, så er det den dypest definerte metoden som brukes (men metoden må vær kjent for den pekeren som brukes)

10 Viktig bruk av polymorfi class Bil { int beregnavgia( ) {... class Personbil extends Bil {int beregnavgia( ) {... class Lastebil extends Bil {int beregnavgia( ) {... class Drosje extends Personbil {int beregnavgia( ) {... tab Bil[ ] tab = new Bil[1000]; <lag biler og la tab peke på disse>; for ( Bil b: tab) { int betal = b.beregnavgiy( ); <bruk betal>; Hva skjer om class Bil er definert uten metoden beregnavgia? Hva skjer om metoden beregnavgia i class Bil er abstrakt? 10

11 Bruk av instanceof (prøv å unngå ved å bruke polymorfi) class Bil { String regnr;... class Personbil extends Bil { int antpass;... class Lastebil extends Bil { double lastevekt;... class Drosje extends Personbil { int LøyveNr;... (og lic casbng ) HashMap <String, Bil> h; h = new HashMap <String,Bil> ( );... for ( Bil b: h.values ( ) ) { String nr = b.regnr; // eventuelt kall på virtuell metode: b.beregnavgiy( ); if (b instanceof Pesonbil) { Personbil pb = (Personbil) b; int pas = pb.antpass; else { if (b instanceof Lastebil) { Lastebil ls = (Lastebil) b; double lv = ls.lastevekt; 11

12 interface TilUtlån GrensesniC Verk Dokument interface Antikvarisk Bok CD Video Tidskriftnr UtlånbarBok AntekvUtlånbrCD IkkeLånbarCD Utlånbart Tidsskriftnr IkkeLånbartTids skriftnr AntikvariskBok Utlånbart, Antekvarisk Tidsskrift n En klasse kan Blføres et ubegrenset antall interface- er n Dvs. en klasse kan spille et ubegrenset antall roller Antikvarisk tidsskriftnr 12

13 Tre klasser som kan spille mange roller Skatt Bil Miljo Lastebil Personbil LastebilMedSkattogMiljo MiljoBil Men metodene må (dessverre) skrives på nytt hver gang de brukes" 13

14 Roller Bil minbil; Lastebil minlast; LastebilMedSkaCogMiljø denne; SkaC skaceobjekt; Miljo miljoting; new LastebilMedSkaKogMiljø() regnr lastevekt toll ( ) momssats( ) Object obj; Object Bil Laste- bil rollen SkaC Hva kan vi se gjennom de forskjellige pekerene? co2utslipp( ) svanemerket( ) rollen Miljo Det er sant: Vi kan ha pekere av interface-type" utslipp innkjopspris egne Bng (og egen rolle) 14

15 class SortertLenketListeAvBiler { Element forste; settinn (Bil pek) { int verdi = forste.denne.sammenlign(pek);... Bil taut(...) {... Motivasjon for generiske typer class Bil { <mer datastruktur> int sammenlign (Bil b) {... Element forste settinn(bil pek) Bil taut( ) neste sammenlign(bil b) neste sammenlign(bil b) neste sammenlign(bil b) Objekt av class SortertLenketListeAvBiler sammenlign(bil b) class Element { Element neste; Bil denne;

16 class SortertGenLenketListe<T> { Element forste; settinn (T pek) { int verdi = forste.denne. compareto(pek);... T taut(...) {... Men hvordan skal vi vite at T inneholder metoden compareto (T b)? En ikke helt riktig skisse av en datastruktur (Vi må gi T en verdi før vi kan lage en liste) Element forste settinn(t pek) T taut( ) neste neste neste denne T denne T denne T compareto(t b) compareto(t b) compareto(t b) Objekt av class SortertLenketListeAvBiler compareto(t b) class Element { Element neste; T denne;

17 class SortertGenLenketListe<T extends Comparable <T>> { Element forste; settinn (T pek) { T denne; int verdi = forste.denne.compareto(pek);... T taut(...) {... Svar: La T implementere Comparable class Bil implements Comparable<Bil> { <mer datastruktur> int compareto (Bil b) {... SortertGenLenketListe <Bil> listen = new SortertGenLenketListe <Bil> ( ); Element forste settinn(t pek) T taut( ) neste compareto(t b) neste compareto(t b) neste denne T denne T denne T compareto(t b) Objekt av class SortertLenketListeAvBiler compareto(t b) interface Comparable <T> { int compareto (T b);

18 Unntaksbehandling try { <USIKKER KODE> <Hvis det skjer noe galt:> throw new Unntaksklassen( ); Enkleste form for unntaksbehandling. catch (Unntaksklassen unt) { < Unntaksbehandling. DeCe hoppes over når ikke noe unormalt/galt har hendt > < her fortsecer vanligvis programmet både ecer normal uoøring og ecer behandling av eventuelle unntak > På forhånd har vi deklarert: class Unntaksklassen extends ExcepMon {... 18

19 A a int b( ) throws Unntaksklassen { try { x = b ( ); Når unntak oppstår i en metode som ikke fanger og behandler unntaket selv catch (Unntaksklassen unt) { < Unntaksbehandling. Hoppes over når intet unormalt har hendt > < her fortsecer programmet både ecer normal uoøring og ecer behandling av eventuelle unntak > A kaller B try { b oppdager en feil: throw new Unntaksklassen ( ) ;.... finally { <gjøres allbd> Normal retur fra b Bl a: return 17; throw - Starter å kaste et unntak try - Står foran en blokk som kan fange et unntak catch - Står foran en blokk som behandler et unntak. throws - Kaster et unntak videre. Brukes i overskriaen på en metode som ikke selv vil behandle et unntak finally - gjøres allbd, også når throw kaster kalleren ut av metoden 19

20 import javax.swing.*; import java.awt.*; class Firkant extends JPanel { Firkant() { // angir foretrukket størrelse på dette lerretet. setpreferredsize(new Dimension(200, 200)); public void paintcomponent(graphics g) { // Her tegner vi g.drawrect(50, 50, 100, 100); class FirkantDemo extends JFrame { FirkantDemo() { settitle("firkantdemo"); Container lerret = getcontentpane(); JPanel panel = new Firkant(); lerret.add(panel); // peker til vindusflaten // lag panel (med firkant ) // legg firkanten til vinduet setdefaultcloseoperation(jframe.exit_on_close); pack( ); //passe stort vindu setvisible(true); // gjør alt synlig public static void main(string[] args) { new FirkantDemo(); 20

21 Hva skjer ved et knappetrykk? Dette objektet synes på skjermen (som en knapp) Hei knapp.addactionlistener(knappelytter); forteller kjøresystemet at objektet som knappelytter peker på skal ha beskjed når noe skjer med knappen knapp. knapp knappelytter Kobling i kjøre-systemet Pekerens type: ActionListener DeKe objektet lyker på knappen actionperformed( ) implementerer grensesnittet ActionListener Når noen trykker på knappen, kaller kjøresystemet metoden actionperformed i det objektet som er satt opp som lytter for denne knappen.

22 GUI og hendelser Op- sys (Win, Linux,..) DiK Program sin Event Dispatch Thread Hver Bng brukeren gjør (flycer eller klikker musa, trykker på tastaturet...) gjør operabvsystemet om Bl en pakke som sendes Bl GUI- programmet. GUI- et uoøres av en tråd som heter Event Dispatch Thread (EDT). EDT behandler alle hendelsene (pakkene), en for en. Hver gang f.eks musa flyces ec eneste punkt bortover genereres en ny slik pakke (køen kan forkortes) 22

23 Maskinarkitektur, f.eks. 4 prosessorer Javas minnemodell prosessor registre cache 1 cache 2 prosessor registre cache 1 System- bus Minne (RAM) prosessor registre cache 1 cache 2 prosessor registre cache 1 Bruk volable for å skrive variable helt Blbake Bl Minne (RAM) 23

24 Tråder i Java: class MinTråd extends Thread { public void run( ) { while (<mer å gjøre>) { <gjør noe>; try {sleep(<et tall, dvs. en stund>); catch (InterruptedException e) {... // end while // end run //end class MinTråd run inneholder vanligvis en løkke som utføres til oppgaven er ferdig. MinTråd objekt (en tråd) start run tråden En tråd lages og startes opp slik: MinTråd tråden; tråden = new MinTråd( ); tråden.start( ); Her går den nye og den gamle tråden (dette programmet), vider hver for seg start( ) er en metode i Thread som må kalles opp for å få startet tråden. start-metoden vil igjen kalle metoden run (som vi selv programmerer). 24

25 main JFrame f = new Traffic(); f Her er masse felles datastruktur og metoder for å tegne opp rammen rundt lysene og knappene nederst. actionperformed if (event == newsetbutton) { lights[nlights] = new SetOfLights(area, lightsposition); lights[nlights].start();.... SetOfLights[] lights = new SetOfLights[3]; Traffic3- klasse- datastruktur class SetOfLights er en indre klasse i class Traffic SetOfLights objekt (en tråd) start run while (true) <tegn lys> Traffic3-objekt SetOfLights objekt (en tråd) start run while (true) <tegn lys> SetOfLights objekt (en tråd) start run while (true) <tegn lys> 25

26 Kritiske regioner / synkroniserte metoder / skjule implementasjon. Felles data: Tråden Ta: Tråden Gi: int penger = 2000; synchronized void ta (int ant) felles felles.ta(500); felles felles.gi(500); int x; x = penger; x -= ant ; penger = x; synchronized void gi (int ant) int x; x = penger; x += ant ; penger = x; En kritisk region er en kodebit som utføres ferdig før en annen tråd får lov å utføre en kritisk region (med hensyn på de samme dataene). Max en tråd om gangen eier objektet (dataene, monitoren). Metodene i et objekt blir kritiske regioner når det står synchronized foran metodenavnene. Høyst én kritisk region kan utføres inne i et objekt om gangen. Derfor blir den felles datastrukturen inne i objektet beskyttet, og riktig oppdatert (hvis metodene er riktig programmert). Innkapsling 26

27 Mer om felles data På forrige side lærte dere at felles data (blå felt) vanligvis bare må aksesseres (lese eller skrives i) av en tråd om gangen. Hvis ikke blir det kluss i dataene. Et felles objekt kalles en monitor. Metodene i en monitor har modifikatoren synchronized f.eks. F F put hent Buffer Monitor er ikke noe ord i Java Produsenter Konsumenter 27

28 wait(); nobfy(); Anta at det er plass Bl 3 tallerkener på bordet: Kokken må vente når det er tre tallerkner på bordet Servitøren må vente når det ikke er laget noe mat Kokken må starte opp kelneren igjen når han har laget tallerken nr. 1 (eller allbd når han har laget en tallerken?) Servitøren må starte opp kokken igjen når han tar tallerken nr. 3 (eller allbd når han tar en tallerken?) wait(); Kokk Servitør wait(); nobfy(); nobfy(); 28

29 Java har én kø for alle wait()- instruksjonene på samme objekt! kø for å få låsen første gang ventende tråder produsenter while ( ) { <lag noe>; p.putinn(...); while ( ) { <lag noe>; p.putinn(...); synchronized void putinn( int verdi) while (full) wait(); // nå er bufferet ikke fult < legg inn> // nå er bufferet ikke fullt nomfy(); synchronized int hentut while (empty) wait(); // nå er bufferet ikke tomt <ta ut et element> // nå er bufferet ikke fult nomfy(); return element; konsumenter while ( ) { p.hentut <bruk dece>; while ( ) { p.hentut <bruk dece>; En monitor (et objekt) Pass på: Unngå vranglås (deadlock)

30 public void run( ) mor <start sortering, event. gjør lic selv>; ventpaalle (); mor.ferdig ( ); synchronized void ventpaalle( )... while (antallbarn!= 0) wait( );.... synchronized void ferdig( ) antallbarn - - ; nomfy ( ); Quicksort med tråder public void run( ) mor <start sortering, event. gjør lic selv>; ventpaalle (); mor.ferdig ( ); synchronized void ventpaalle( )... while (antallbarn!= 0) wait( );.... synchronized void ferdig( ) antallbarn - - ; nomfy ( ); public void run( ) mor <start sortering, event. gjør lic selv>; ventpaalle (); mor.ferdig ( ); synchronized void ventpaalle( )... while (antallbarn!= 0) wait( );.... synchronized void ferdig( ) antallbarn - - ; nomfy ( );

31 Lock laas = new ReentrantLock(); CondiBon ikkefull = laas.newcondibon(); CondiBon ikketom = laas.newcondibon(); void secinn ( int verdi) throws InterrupedExcepBon laas.lock(); try { while (full) ikkefull.await(); // nå er det helst sikkert ikke fult : // det er lagt inn noe, så det er helt sikkert ikke tomt: ikketom.signal(); finally { laas.unlock(); int taut ( ) throws InterrupedExcepBon laas.lock(); try { while (tom) ikketom.await(); // nå er det helst sikkert ikke tomt; : // det er det tac ut noe, så det er helt sikkert ikke fult: ikkefull.signal(); finally { laas.unlock(); Nå har vi en kø per bemngelse som skal oppfylles Bra!

32 Barierer i parallellprogrammering CountDownLatch bariere = new CountDownLatch(antallTrader); bariere.await(); Alle trådene sier fra når de er ferdig, dvs. når de har nådd barieren: bariere.countdown(); tid SLUTT

INF1010 oversikt med. 23. mai Subklasser mm. Unntaksbehandling GUI Tråder. Stein Gjessing InsBtuC for informabkk Universitetet i Oslo

INF1010 oversikt med. 23. mai Subklasser mm. Unntaksbehandling GUI Tråder. Stein Gjessing InsBtuC for informabkk Universitetet i Oslo INF1010 oversikt med Subklasser mm. Unntaksbehandling GUI Tråder 23. mai 2013 Stein Gjessing InsBtuC for informabkk Universitetet i Oslo Hvordan starte å løse et problem Eksempel: Bank I et mini-system

Detaljer

INF1010 oversikt med

INF1010 oversikt med INF1010 oversikt med Subklasser mm Unntaksbehandling GUI Tråder 12. mai 2009 Stein Gjessing Model View Control main navn: bnk type: BankKontroll bnk = new BankKontroll(); bnk.ordreløkke(); BankKontrollklassedatastruktur

Detaljer

INF1010 oversikt med

INF1010 oversikt med INF1010 oversikt med Subklasser mm Unntaksbehandling GUI Tråder 20. mai 2010 Stein Gjessing Model View Control main navn: bnk type: BankKontroll bnk = new BankKontroll(); bnk.ordreløkke(); BankKontrollklassedatastruktur

Detaljer

IN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo

IN1010 våren 2018 Tirsdag 15. mai. Repetisjon av subklasser og tråder. Stein Gjessing Institutt for informatikk Universitetet i Oslo IN1010 våren 2018 Tirsdag 15. mai Repetisjon av subklasser og tråder Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Klassehierarki: Personbil Bil Klasser - Subklasser class Bil {

Detaljer

IN1010 våren Repetisjon av tråder. 15. mai 2018

IN1010 våren Repetisjon av tråder. 15. mai 2018 IN1010 våren 2018 Repetisjon av tråder 15. mai 2018 Stein Gjessing,, Universitetet i Oslo 1 Tråder Datamaskinarkitektur prosessor registre cache 1 cache 2 prosessor registre cache 1 Disk System-bus Minne

Detaljer

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser

INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Emneoversikt subklasser INF1010 våren 2008 Uke 4, 22. januar Arv og subklasser Stein Gjessing Institutt for informatikk Mange flere eksempler på fellesøvelsene og neste forelesning 1 Generalisering - spesialisering

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

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk

INF Våren Li' repe$sjon om Tråder og GUI. Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo. Ins$tu' for informa$kk INF1010 - Våren 2015 Li' repe$sjon om Tråder og GUI Stein Gjessing,, Universitetet i Oslo 1 GUI, tråder og hendelser Op-sys (Win, Linux,..) Ditt Program sin Event Dispatch Thread Hver ting brukeren gjør

Detaljer

INF1010 våren Arv og subklasser - del 2

INF1010 våren Arv og subklasser - del 2 INF1010 våren 2013 Torsdag 14. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

INF1010 våren Arv og subklasser, del 2

INF1010 våren Arv og subklasser, del 2 INF1010 våren 2010 Torsdag 4. februar Arv og subklasser, del 2 Stein Gjessing Institutt for informatikk Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

Konstruktører. Bruk av konstruktører når vi opererer med enkle klasser er ganske ukomplisert. Når vi skriver. skjer følgende: Konstruktører Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver Punkt p = new Punkt(3,4); class Punkt { skjer følgende: int x, y; 1. Det settes av plass i

Detaljer

INF1010 våren Arv, subklasser og grensesnitt - del 2

INF1010 våren Arv, subklasser og grensesnitt - del 2 INF1010 våren 2012 Torsdag 16. februar Arv, subklasser og grensesnitt - del 2 Stein Gjessing Institutt for informatikk Dagens tema nummer 1 Norsk: Grensesnitt Engelsk: Interface 2 Hva er objektorientert

Detaljer

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

INF1010 våren 2014. Arv og subklasser - del 2 INF1010 våren 2014 Onsdag 19. februar Arv og subklasser - del 2 Stein Gjessing Institutt for informatikk Dagens tema Virtuelle metoder som er det samme som Polymorfi Mer om arv / interface Mer om pekertilordninger

Detaljer

INF1010 våren Generalisering -spesialisering Gjenbruk av klasser. Ved arv. Klasse-hierarkier. Stein Gjessing.

INF1010 våren Generalisering -spesialisering Gjenbruk av klasser. Ved arv. Klasse-hierarkier. Stein Gjessing. INF1010 våren 2009 Uke 5, 27. januar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser Generalisering -spesialisering Gjenbruk av klasser Ved sammensetning (komposisjon)

Detaljer

Uke 5, 27. januar Arv og subklasser del I. Stein Gjessing Institutt for informatikk

Uke 5, 27. januar Arv og subklasser del I. Stein Gjessing Institutt for informatikk INF1010 våren 2009 Uke 5, 27. januar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser Generalisering - spesialisering Gjenbruk av klasser Ved sammensetning (komposisjon)

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

INF1010 våren Arv og subklasser, del 2

INF1010 våren Arv og subklasser, del 2 INF1010 våren 2011 Torsdag 10. februar Arv og subklasser, del 2 (og litt generiske typer) Stein Gjessing Institutt for informatikk Klassehierarki: Personbil Bil Repetisjon: Biler! class Bil {

Detaljer

INF1010 våren Arv og subklasser del 1

INF1010 våren Arv og subklasser del 1 INF1010 våren 2015 Torsdag 12. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering

Detaljer

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk

Stein Gjessing. Institutt for informatikk. Universitetet i Oslo. Institutt for informatikk INF1010 11. mai 2017 Monitorer med kritiske regioner og passive venting innbygget i Java - Kommunikasjon mellom prosesser i Java (Ikke pensum i INF1010) Stein Gjessing Universitetet i Oslo 1 Repetisjon:

Detaljer

Tråder del 2 Våren Stein Gjessing Institutt for informatikk Universitetet i Oslo

Tråder del 2 Våren Stein Gjessing Institutt for informatikk Universitetet i Oslo Tråder del 2 Våren 2008 Stein Gjessing Institutt for informatikk Universitetet i Oslo Om parallellitet En beregning delt opp i parallell går fortere jo mer uavhengig delene er Amdahls lov: Totaltiden er

Detaljer

Start opp. Prosess 3 Meldingsutveksling Operativsystemet (styrer alt og sørger for kommunikasjon mellom prosesser)

Start opp. Prosess 3 Meldingsutveksling Operativsystemet (styrer alt og sørger for kommunikasjon mellom prosesser) Om parallellitet Tråder del 2 Våren 2008 Stein Gjessing Institutt for informatikk Universitetet i Oslo En beregning delt opp i parallell går fortere jo mer uavhengig delene er Amdahls lov Totaltiden er

Detaljer

INF1010 våren 2017 Torsdag 2. februar. Arv og subklasser - del 2

INF1010 våren 2017 Torsdag 2. februar. Arv og subklasser - del 2 INF1010 våren 2017 Torsdag 2. februar Arv og subklasser - del 2 Stein Gjessing Dagens tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / når bruker vi komposisjon Konstruktører i

Detaljer

INF1010 våren februar. Arv og subklasser, del 2

INF1010 våren februar. Arv og subklasser, del 2 INF1010 våren 2009 3. februar Arv og subklasser, del 2 En forsmak på interface (grensesnitt) Stein Gjessing Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

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

INF1010 våren Arv og subklasser del 1

INF1010 våren Arv og subklasser del 1 INF1010 våren 2016 Torsdag 4. februar Arv og subklasser del 1 Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du programmere med: Første uke: Spesialisering

Detaljer

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 6. juni 2006 Tid for eksamen: 1430 1730 Oppgavesettet er på 6 sider. Vedlegg: INF1010 Objektorientert programmering

Detaljer

INF våren 2015

INF våren 2015 INF1010 - våren 2015 Programmeringsmønstre Patterns Invarianter Tilstandspåstander Repetisjon av interface Prosesskommunikasjon Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 Programvare-

Detaljer

INF1010 våren februar. Arv og subklasser, del 2. Repetisjon. Repetisjon - Biler. Repetisjon: Klasser - Subklasser

INF1010 våren februar. Arv og subklasser, del 2. Repetisjon. Repetisjon - Biler. Repetisjon: Klasser - Subklasser INF1010 våren 2009 3. februar Arv og subklasser, del 2 En forsmak på interface (grensesnitt) Stein Gjessing Repetisjon Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

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

Abstrakte metoder og klasser

Abstrakte metoder og klasser Abstrakte metoder og klasser INF1010, 10. februar 2009, Abstrakte klasser og grensesnitt (interface) Konstruktører Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder abstract før deklarasjonen

Detaljer

Abstrakte metoder og klasser. Abstrakte metoder og klasser. Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface)

Abstrakte metoder og klasser. Abstrakte metoder og klasser. Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface) Abstrakte metoder og klasser Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo n Abstrakte metoder n abstract før deklarasjonen

Detaljer

INF1010, 10. februar 2009, Konstruktører. Inst for Informatikk

INF1010, 10. februar 2009, Konstruktører. Inst for Informatikk INF1010, 10. februar 2009, Abstrakte klasser og grensesnitt (interface) Konstruktører Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder og klasser Abstrakte metoder abstract før deklarasjonen

Detaljer

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010

INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 INF1010 Grafisk brukergrensesni3 med Swing og awt del 1 GUI (Graphical User Interface)- programmering Hvordan lage et vindu på skjermen Hvordan legge ulike komponenter i vinduet (trykknapper, tekseelter, tekst,

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

IN1010 våren 2018 Tirsdag 6. februar. Arv og subklasser - del 2

IN1010 våren 2018 Tirsdag 6. februar. Arv og subklasser - del 2 IN1010 våren 2018 Tirsdag 6. februar Arv og subklasser - del 2 Stein Gjessing og Dag Langmyhr Dagens tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / når bruker vi komposisjon

Detaljer

INF1010 våren 2010 Torsdag 4. februar. Arv og subklasser del I. Emneoversikt subklasser (2 uker) Hva er en subklasse? Eksempel: Universitetsregister

INF1010 våren 2010 Torsdag 4. februar. Arv og subklasser del I. Emneoversikt subklasser (2 uker) Hva er en subklasse? Eksempel: Universitetsregister INF1010 våren 2010 Torsdag 4. februar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser (2 uker) Generalisering - spesialisering Gjenbruk av klasser Ved sammensetning

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

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

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

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

Tråder Repetisjon. 9. og 13. mai Tråder

Tråder Repetisjon. 9. og 13. mai Tråder Tråder Repetisjon 9. og 13. mai Tråder Hva er tråder? 2 Hva er tråder? I utgangspunktet uavhengige aktiviteter som konkurrerer om å få bruke prosessoren. 2 Hvorfor tråder? 3 Hvorfor tråder? Flere oppgaver

Detaljer

Abstrakte metoder og klasser

Abstrakte metoder og klasser Abstrakte metoder og klasser INF1010, 18. februar 2010, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder abstract før deklarasjonen av en

Detaljer

import javax.swing.*; import java.awt.*;

import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; import javax.swing.*; import java.awt.*; Pluss mange Implementasjoner av forskjellige grensesnitt class RammeDemo { public static void main(string[] args) { JFrame

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

INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2

INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2 Repetisjon INF1010 våren 2007 Uke 6, 6. februar Arv og subklasser, del 2 Stein Gjessing Institutt for informatikk Vi har sett to former for gjenbruk av klasser: Gammel: Ved sammensetning (komposisjon)

Detaljer

Institutt for informatikk. INF1010, 18. februar 2010, Inst for Informatikk

Institutt for informatikk. INF1010, 18. februar 2010, Inst for Informatikk INF1010, 18. februar 2010, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder og klasser Abstrakte metoder abstract før deklarasjonen av en

Detaljer

INF april 2017

INF april 2017 INF1010-20. april 2017 Programmeringsmønstre Patterns Eksempel på bruk av interface Stein Gjessing Universitetet i Oslo 1 1 Problem Spesifikasjon Program 2 Programvare-arkitektur Hvordan programmet er

Detaljer

INF1010 våren Arv og subklasser del I

INF1010 våren Arv og subklasser del I INF1010 våren 2010 Torsdag 4. februar Arv og subklasser del I Stein Gjessing Institutt for informatikk 1 Emneoversikt subklasser (2 uker) 2 Hva er en subklasse? En klasse, K, beskriver objekter med visse

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

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49

Innhold. Forord Det første programmet Variabler, tilordninger og uttrykk Innlesing og utskrift...49 Innhold Forord...5 1 Det første programmet...15 1.1 Å kommunisere med en datamaskin 16 1.2 Programmeringsspråk 17 1.3 Et program som skriver på skjermen 18 1.4 Kompilering og kjøring 19 1.5 Kommentarer

Detaljer

INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41) Stein Gjessing Institutt for informatikk

INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41) Stein Gjessing Institutt for informatikk INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41) Stein Gjessing Institutt for informatikk 1 Dyreriket (utdrag) Klassehierarki Animalia Leddyr Ryggstrengdyr

Detaljer

IN Våren 2019 Tråder del mars 2019

IN Våren 2019 Tråder del mars 2019 IN1010 - Våren 2019 Tråder del 1 27. mars 2019 Stein Gjessing,, Universitetet i Oslo Horstmann kap 20.1 20.3 1 Maskin med 8 kjerner 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer?

Detaljer

La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet

La oss begynne med en repetisjon av hva som skjer når du kjører Javaprogrammet K A P I T T E L 18 Tråder N år et program kjøres, utføres programsetningene i en bestemt rekkefølge. En tråd er det samme som denne programflyten, og i dette kapitlet skal vi se på hvordan vi starter og

Detaljer

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1

INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt. del 1 INF1010 Grafisk brukergrensesni3 (GUI) med Swing/awt del 1 1 Hvordan lage et vindu på skjermen 2 Hvordan legge inn enkle elementer i vinduet 3 Hvordan lage et vindu med et sudokuspill 4 Hvordan lage en

Detaljer

INF Våren 2017 Tråder del 1

INF Våren 2017 Tråder del 1 INF1010 - Våren 2017 Tråder del 1 23. mars 2017 Stein Gjessing,, Universitetet i Oslo Horstmann kap 20.1 20.3 1 Maskin med 8 kjerner 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer?

Detaljer

INF1010 våren Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling)

INF1010 våren Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling) INF1010 våren 2012 Torsdag 9. februar Arv og subklasser del 1 (pluss litt I/O og unntaksbehandling) Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært om subklasser kan du

Detaljer

INF april 2016

INF april 2016 INF1010-21. april 2016 Programmeringsmønstre Patterns Oppgave med interface Vranglås blant tråder Prosesskommunikasjon Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 Problem Spesifikasjon

Detaljer

INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41)

INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41) INF1010 våren 2008 Uke 5, 29. januar Arv og subklasser eksempler Litt om unntakshåndtering (40 og 41) Dyreriket (utdrag) Klassehierarki Animalia Leddyr Ryggstrengdyr Bløtdyr Tusenbein Insekter Kappedyr

Detaljer

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd

INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd J INF1010 Tråder J Marit Nybakken marnybak@ifi.uio.no Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,

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

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

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 %

Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Eksamen INF1010 V2009 Del B prøveeksamen V2010 Vekt 60 % Stein Gjessing Institutt for Informatikk Universitetet i Oslo 1 Oppgave 10 Tegning av datastrukturen (vekt 5% av del B) Tegn datastrukturen til

Detaljer

Abstrakte metoder og klasser. Abstrakte metoder og klasser

Abstrakte metoder og klasser. Abstrakte metoder og klasser Uke 6 INF1010, 5. februar 2008, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder og klasser Abstrakte metoder abstract før deklarasjonen av

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

Uke 6 INF1010, 5. februar 2008, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo

Uke 6 INF1010, 5. februar 2008, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo Uke 6 INF1010, 5. februar 2008, Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Univ. i Oslo Abstrakte metoder og klasser Abstrakte metoder abstract før deklarasjonen av

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

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur

Gjøre noe i hele treet = kalle på samme metode i alle objekten. Java datastruktur Klassestruktur 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

Velkommen til. INF våren 2012

Velkommen til. INF våren 2012 Velkommen til INF1010 - våren 2012 I dag: Java datastrukturer Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 1 I INF1010 skal du lære Å lage gode programmer Objektorientert programmering

Detaljer

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II

INF1010. Grafisk brukergrensesni. med Swing og awt del 2. INF1010 - - Grafisk brukergrensesni4 II INF1010 Grafisk brukergrensesni. med Swing og awt del 2 1 GUI (Graphical User Interface)- programmering n n n Enkel behandling av knappetrykk mm. Layout av vinduer Om å lytte på knappetrykk med musa n

Detaljer

Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo

Stein Gjessing, Ins$tu' for informa$kk, Universitetet i Oslo INF1010 - Våren 2012 Tråder del 1 Parallelle programmer og felles data Stein Gjessing,, Universitetet i Oslo 1 2 Oversikt Hva er parallelle programmer? Hvorfor parallelle programmer? Hvordan kan de'e skje

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

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

< T extends Comparable<T> > 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

Inf1010 oppgavesamling

Inf1010 oppgavesamling Table of ontents Inf1010 oppgavesamling.. 1 Subklasser... 1 Grensesnitt.. 2 Rekursjon... 3 Datastrukturer... 3 GUI. 4 Sortering... 6 Tråder... 6 Inf1010 oppgavesamling Subklasser Klassehirarki for dyr

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

(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

Tråder del 2 Våren 2012

Tråder del 2 Våren 2012 Tråder del 2 Våren 2012 Stein Gjessing Universitetet i Oslo 1 Repetisjon: Tråder i Java: class MinTråd extends Thread { public void run( ) { while () { ; try {sleep(

Detaljer

Velkommen til INF våren 2011

Velkommen til INF våren 2011 Velkommen til INF1010 - våren 2011 Stein Gjessing & Stein Michael Storleer Institutt for informatikk Universitetet i Oslo 1 0( I INF1010 skal du lære! Å lage gode programmer! Objektorientert programmering!

Detaljer

INF1010, 23. februar Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3)

INF1010, 23. februar Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3) INF1010, 23. februar 2012 Parametriserte klasser Om å gå gjennom egne beholdere (subklasser og grensesnitt 3) Stein Gjessing Inst for Informatikk Universitetet i Oslo Repetisjon fra gamle dager: Metoder

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

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 2008 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

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

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java Oversikt Inf1010 Våren 2008 Feilsituasjoner og unntak i Java Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Hva er en feil (er det ikke mulig å unngå feil?) Hva skjer når et program feiler

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

INF1010 våren Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen

INF1010 våren Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen INF1010 våren 2014 Onsdag 5. februar Arv og subklasser del 1 pluss (hvis vi har tid) litt om Unntak, IO og Scanner-klassen Stein Gjessing Institutt for informatikk Universitetet i Oslo 1 Når du har lært

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

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering

Uke mars 2005 GUI - del 2. GUI (Graphical User Interface)-programmering Uke10 29. mars 2005 GUI - del 2 Stein Gjessing Inst for Informatikk Univ. i Oslo GUI (Graphical User Interface)-programmering Forrige gang Hvordan få laget et vindu på skjermen Hvordan legge ulike komponenter

Detaljer

Oversikt. Feil i programmet hva skjer? Array indeks utenfor sine grenser. Inf1010 Våren Feilsituasjoner og unntak i Java

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

Detaljer

INF1010, 8. mars Om klassehierarkier, grensesnitt (interface) og multippel arv. Konstruktører i subklasser. Unntak.

INF1010, 8. mars Om klassehierarkier, grensesnitt (interface) og multippel arv. Konstruktører i subklasser. Unntak. INF1010, 8. mars 2012 Om klassehierarkier, grensesnitt (interface) og multippel arv. Konstruktører i subklasser. Unntak. Stein Gjessing Inst for Informatikk Universitetet i Oslo Abstrakte metoder og klasser

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i Eksamensdag: 4. juni 2005 Tid for eksamen: 0900 1500 Oppgavesettet er på 5 sider. Vedlegg: Tillatte hjelpemidler: INF1010 Objektorientert

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

Invarianter, +lstander og li1 mer seman+kk

Invarianter, +lstander og li1 mer seman+kk Invarianter, +lstander og li1 mer seman+kk INF1010 14.april 2016 Stein Gjessing April 13, 2016 1 Invariant (= Invariant +lstandspåstand) Vi har se3 flere ganger at det er svært nyjg å formulere +lstandspåstander

Detaljer

GUI («Graphical User Interface») del 2

GUI («Graphical User Interface») del 2 GUI («Graphical User Interface») del 2 Interaksjon med brukeren Hendelsesdrevet programmering Tråder i GUI Et spill basert på klikkbare ruter Se også på Infoskrivet https://www.uio.no/studier/emner/matnat/

Detaljer

INF1010. Stein Michael Storleer (michael) Lenkelister

INF1010. Stein Michael Storleer (michael) Lenkelister INF1010 Stein Michael Storleer (michael) Lenkelister Lenke Datastrukturen lenkeliste class { = null ; foran foran = new () ; class { = null ; foran foran = new () ; foran. = new () ; class { = null ; foran

Detaljer

Grafisk Brukergrensesnitt

Grafisk Brukergrensesnitt Grafisk Brukergrensesnitt Repetisjonskurs Hva må kunnes? JFrame JPanel JComponents Layouts Listeners jframe Representerer et vindu JComponents legges på vinduet Har en tittel og størrelse Komponenter struktureres

Detaljer

Post-it spørsmål fra timen (Arv og subklasser)

Post-it spørsmål fra timen (Arv og subklasser) Post-it spørsmål fra timen 30.01 (Arv og subklasser) Tegning Spørsmål: Skjønte ikke tegningene Hater tegningene. Lær meg å tegne. Mvh frustrert elev. Spørsmål: Datastruktur-tegning, og hvor mye detaljer

Detaljer

IN våren 2019 Onsdag 16. januar

IN våren 2019 Onsdag 16. januar IN1010 - våren 2019 Onsdag 16. januar Java Objekter og klasser Stein Gjessing Universitetet i Oslo 1 1 IN1010: Objektorientert programmering Hva er et objekt? Hva er en klasse? Aller enkleste eksempel

Detaljer