Abstrakte metoder og klasser. Abstrakte metoder og klasser. Uke 9 INF1010, 27. februar 2007, Abstrakte klasser og grensesnitt (interface)
|
|
- Therese Gulbrandsen
- 7 år siden
- Visninger:
Transkript
1 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 av en metode betyr at metoden ikke inneholder noe program / kode ( ; istedenfor {... (eksempel neste side) ) n Subklasser må da gi kode til denne metoden. n Abstrakte klasser n klasse med abstract før class n kan (men må ikke) inneholde abstrakte metoder n En klasse med en abstrakt metode må deklareres som en abstrakt klasse. n Kan ikke lage objekter av abstrakte klasser (må vente til vi har en ikke-abstrakt subklasse) 2 abstract class Ansatt { String navn; double timelonn; Abstrakte metoder og klasser abstract double beregnbonus(); class Deltidsansatt extends Ansatt { double beregnbonus() { return 0; Ikke lov å si new Ansatt()! navn timelonn beregnbonus(); Subklassene arver på vanlig måte alle egenskapene fra den abstrakte superklassen navn timelonn Heltidsansatt objekt navn timelonn Pekere av abstrakte typer (selv om det ikke finnes slike objekter) Ansatt enperson Deltidsansatt objekt Deltidsansatt Heltidsansatt Ansatt enannenperson navn timelonn Heltidsansatt objekt class Heltidsansatt extends Ansatt { int ansiennitetsfaktor; double beregnbonus() { return timelonn* ansiennitetsfaktor; beregnbonus(); ansiennitetsfaktor beregnbonus(); beregnbonus() beregnbonus(); ansiennitetsfaktor beregnbonus() return 0; beregnbonus() return timelonn* ansiennitetsfaktor Ellers helt som vanlige subklasser med polymorfi (virtuell metoder) 3 4
2 Når bruker vi abstrakte metoder og klasser? n Abstrakte metoder n Vi lager en klasse som vi vet må inneholde en bestemt metode, men vi vet også at innholdet vil variere i alle subklassene n Må lag en subklasse som tvinges til å gi koden n Abstrakte klasser n Vi har to eller flere klasse B, C,...D som har felles deler n Vi lager da en klasse A som inneholder disse felles delene, og de andre klassene B,C,..,D gjøres til subklasser av A n Eks: Heltidsansatte og Deltidsansatte i et varehus. Lager da den abstrakte felles-klassen Ansatt, og det som blir igjen i Heltidsansatt og Deltidsansatt, blir da bare de spesielle tillegget disse har. n Vi deklarerer en klasse abstrakt når vi ønsker at ingen skal lage objekter av klassen (Abstrakt klasse der ingen metoder er abstrakte) n Vi lager en klasse abstrakt når den inneholder abstrakte metoder, dvs. metoder det ikke er meningsfylt å gi innhold til UML klassehierarki med abstrakt klasse Ansatt abstract 5 6 Arv n I Java kan en klasse bare arve egenskapene til én annen klasse (en superklasse). n Hva skal vi gjøre hvis vi ønsker at et objekt skal inneholde mange forskjellige egenskaper fra forskjellige superklasser? n På de neste sidene: n Begrepshierarkiet i et biliotek Motivasjon for nytt begrep (interface): Analyse av bibliotek n Bøker, tidsskrifter, er, videoer, mikrofilmet materiale, antikvariske bøker, flerbindsverk, oppslagsverk, upubliserte skrifter, n En del felles egenskaper n antall eksemplarer, hylleplass, identifikasjonskode () n for det som kan lånes ut: Er utlånt?, navn på låner,... (TilUtlån) n for det som er antikvarisk: Verdi, forskringssum,... (Antikvarisk) n Spesielle egenskaper: n Bøker: Forfatter, tittel, forlag n Tidsskrifter: Årgang, nummer, utgiver n : Tittel, artist, komponist, musikkforlag På de neste sidene betyr En klasse i et subklassehierarki 7 (og ikke en klassedatastruktur) 8
3 Tvilsomt begrepshierarki Forslag til subklassehierarki Utlånbart Omrokkering uten suksess IkkeLånbart Tidskrift U U TidsskriftUtl Utlånbar IkkeLånbar Utlånbar IkkeLånbar UtlånbartTid sskriftnr IkkeLånbartTi dsskriftnr Tidsskriftnr 9 10 Samle lik oppførsel: interface Hva er et grensesnitt (interface)? interface TilUtlån n En samling egenskaper (en rolle) som ikke naturlig hører hjemme i et arve-hierarki Tidskriftnr n En samling egenskaper som mange forskjellige ting av forskjellige typer kan anta n For eksempel Utlånbar Utlånbar Utlånbart Tidsskriftnr n Kan delta i konkurranse (startnummer, resultat,.. Mennesker, biler, hester kan delta i konk.) n Svømmedyktig (mennesker, fugler er svømmed.) n Her: Antikvarisk (møbler, bøker,. ) Kan lånes ut (biler, bøker, festklær, ) n En klasse kan også tilføres et interface (i tillegg til arveegenskapene i klassehierarkiet) n Dvs. en klasse kan spille to roller 11 12
4 Hva er et grensesnitt (interface)? n Et interface likner en abstrakt klasse n Alle metodene i en interface er abstrakte n En interface inneholder ingen variable eller annen datastruktur (men kan ha konstanter) n En klasse som arver egenskapene til et interface må selv putte inn kode i alle de abstrakte metodene (og deklarere passende variable som disse metodene bruker). n En klasse kan arve egenskapene til mange grensesnitt (men bare en klasse) n Å arve (metoder) = å spille en rolle 13 interface TilUtlån Utlånbar Flere grensesnitt Verk Video AntekvUtlånbr Antikvarisk IkkeLånbar Utlånbart Tidsskriftnr Utlånbart, Antekvarisk Tidsskrift Tidskriftnr n En klasse kan tilføres et ubegrenset antall interface-er n Dvs. en klasse kan spille et ubegrenset antall roller interface Antikvarisk IkkeLånbartTids skriftnr Antikvarisk tidsskriftnr 14 Nytt eksempel Hvis vi ønsker at noen objekter også skal kunne spille rollene (ha egenskapene) Skatt og Miljø : Enkelt eksempel med bil-hierarkiet class Bil { String regnr; class Lastebil extends Bil { double lastevekt; Bil Skatt interface Skatt { double toll( ) ; int momssats() ; toll ( ); momssats( ); interface Skatt { double toll( ) ; int momssats() ; Skatt Lastebil interface Miljo { int co2utslipp ( ); boolean svanemerket ( ) ; Miljo co2utslipp( ); svanemerket( ); 15 interface Miljo { int co2utslipp ( ); boolean svanemerket ( ) ; Miljo 16
5 Tre nye klasser som kan spille mange roller Nytt Java-ord: implements (1) Skatt Bil Miljo rollen (i arv) fra klassehierarkiet Lastebil Personbil class Personbil extends Bil implements Skatt { int antpass; double momsgrunnlag = ; public double toll( ) { return momsgrunnlag * 0.5; public int momssats( ) {return 25; rollen Skatt LastebilMedSkattogMiljo MiljoBil Men metodene må (dessverre) skrives på nytt hver gang de brukes 17 class Bil { String regnr; interface Skatt { double toll( ) ; int momssats() ; Skatt Bil Personbil 18 Nytt Java-ord: implements (2) class MiljoBil extends Personbil implements Miljo { int utslipp = 200; public int co2utslipp ( ) {return utslipp; public boolean svanemerket () { return false; class LastebilMedSkattogMiljo extends Lastebil implements Skatt, Miljo { double innkjopspris = ; int utslipp = 400; public double toll( ) { return innkjopspris * 0.1; rollen Skatt public int momssats( ) {return 20; public int co2utslipp ( ) {return utslipp; rollen Miljo public boolean svanemerket () { return false; MiljoBil arver rollen Skatt fra Personbil Rollene i (arv fra) klassehierarkiet rollen Miljo Den rød-grønne regjeringen vil sikkert gjøre noe med det 19 Bil minbil; Lastebil minlast; Et objekt og noen pekere LastebilMedSkattogMiljø denne; Skatt skatteobjekt; Miljo miljoting; Hva kan vi se gjennom de forskjellige pekerene? Det er sant: Vi kan ha pekere av interface-type new LastebilMedSkattogMiljø() regnr lastevekt toll ( ); momssats( ); co2utslipp( ); svanemerket( ); utslipp innkjopspris Object obj; Bil Lastebil rollen Skatt rollen Miljo egne ting (og egen rolle) 20
6 Legg til metoder for å skrive ut på skjerm: Skriv i LastebilMedSkattOgMiljo class Bil { String regnr; void skriv(){ System.out.println( Registreringsnummer: " + regnr); class Lastebil extends Bil { double lastevekt; void skriv (){ super.skriv(); System.out.println("Lastevekt: " + lastevekt); 21 class LastebilMedSkattOgMiljo extends Lastebil implements Skatt, Miljo { double innkjopspris = ; int utslipp = 400; public double toll( ) { return innkjopspris * 0.1; public int momssats( ) {return 20; public void skrivskatt( ) { System.out.println("Innkjøpspris " + innkjopspris); public int co2utslipp ( ) {return utslipp; public boolean svanemerket () { return false; public void skrivmiljo( ) { System.out.println("Utslipp " + utslipp); public void skriv( ) { System.out.println( Lastebil med skatt og miljø: "); super.skriv( ); skrivskatt(); skrivmiljo(); (Skatt og Miljo som før) Det er ikke naturlig at Skatt og Miljo skal kreve en skriv -metode (Som før) 22 Skriv i LastebilMedSkattogMiljo Bil minbil; Lastebil minlast; LastebilMedSkattogMiljø denne; Skatt skatteobjekt; Miljø miljøting; LastebilMedSkattogMiljø-objekt regnr skriv() lastevekt skriv() toll ( ); momssats( ); co2utslipp( ); Object obj; Tilbake til biblioteket Klassehierarki, forenklet bibliotek interface TilUtlån svanemerket( ); TilUtlaan IkkeUtlaan TilUtlaan IkkeUtlaan public void skriv( ) { System.out.println ( Lastebil med skatt og miljø: "); super.skriv( ); skrivskatt(); skrivmiljo(); utslipp innkjopspris skrivmiljo() skrivskatt() skriv() (egne ting og) egen rolle 23 24
7 Forenklet bibliotek TilUtlaan interface TilUtlån TilUtlaan IkkeUtlaan Ordet abstract kan sløyfes før metodenavnet i et interface (det er jo helt opplagt) abstract class { String tittel; abstract class extends { String forlag; int trykningsår; interface TilUtlaan { abstract void låne(string låner) ; abstract void levere() ; abstract boolean utlånt() ; static final String ingen = "ingen"; // Slutt interface TilUtlaan 25 interface TilUtlaan TilUtlaan IkkeUtlaan Bare disse to klassene kan vi lage objekter av TilUtlaan har både egenskapene til og egenskapene til TilUtlaan. Objekter av denne klassen kan spille begge rollene! class TilUtlaan extends implements TilUtlaan { String låner = ingen; public void låne (String l) { låner = l; public void levere() { låner = ingen; public boolean utlånt() { return låner!= ingen; // Slutt class TilUtlaan class IkkeUtlaan extends { 26 Se på implementasjonen igjen: interface TilUtlaan { abstract void låne(string låner) ; abstract void levere() ; abstract boolean utlånt() ; static final String ingen = ingen"; class TilUtlaan extends implements TilUtlaan { String låner = ingen; public void låne (String l) { låner = l; public void levere() { låner = ingen; public boolean utlånt() { return låner!= ingen; Metodene i et interface er veldig virtuelle Dette er de tre metodene som vi må love å implementere 27 interface TilUtlaan { abstract void låne(string låner) ; abstract void levere() ; abstract boolean utlånt() ; static final String ingen = ingen"; abstract class extends { String komponist, artist, musikkforlag; class TilUtlaan extends implements TilUtlaan { String låner = ingen; public void låne(string l) { låner = l; public void levere() { låner = ingen; public boolean utlånt() { return låner!= ingen; // Slutt class TilUtlaan interface TilUtlån class IkkeUtlaan extends { TilUtlaan IkkeUtlaan Her er de tre metodene igjen 28
8 Mer om grensesnitt (interface) n Navnet på et Interface (grensesnitt) kan brukes som klassenavn når vi lager pekere (så vi på side 20) n Vitsen med et grensesnitt er å spesifisere hva som skal gjøres (ikke hvordan) n Det kan godt være flere implementasjoner av et grensesnitt (flere klasser kan implementere det). n Vi vet: En klasse kan implementerer (flere) grensesnitt samtidig som klassen også er subklasse av (bare) en annen klasse. n En implementasjon (av et grensesnitt) skal kunne endres uten at resten av programmet behøver å endres. 29 Anta at vi skal lage et register i et bibliotek 4 BI JavaGently Addison-Wesley 1998 CU Favoritter Grieg Kyrkjebø Musikkforlaget ingen BU JustJava Sun 1998 Kari CI Favourites Wonder,Stevie Dion,Celine BMG Filformat: Først antall poster på filen For hver post: - dokumenttypen (BU, BI, CU eller CI) - tittel - Hvis : forlag år - Hvis TilUtlån: Også låner - Hvis : komponist / artist / musikkforlag - Hvis TilUtlån: Også låner 30 register Innlesning Register - objekt register Utskrift Register - objekt innfil antdok alleer utfil alleer void lesfrafil() d = null; String dokumenttype; In innfil = new In( dokumentfil.txt ); antdok = innfil.inint( ); for (int i=1; i<=antdok; i++) { dokumenttype = innfil.inword( ); if (dokumenttype.equals("bu")) d = new TilUtlaan(); else if (dokumenttype.equals("bi")) d = new IkkeUtlaan(); else if (dokumenttype.equals("cu")) d = new TilUtlaan(); else if (dokumenttype.equals("ci")) d = new IkkeUtlaan(); d.lesfra(innfil); alleer.put(d.tittel,d); // Slutt for TilUtlaan TilUtlaan TilUtlaan TilUtlaan 31 void skrivtilfil() d = null; String dokumenttype; Out utfil = new Out( dokumentfil.txt ); utfil.outln(alledokumenter.size( )); for ( d: alleer.values()) { d.skrivtilfil(fil); d TilUtlaan TilUtlaan TilUtlaan TilUtlaan alleer.values() 32
9 Metoden låne i Register Klasse- og interface-tilhørighet (igjen) void låne() void låne() throws IOException { boolean utlånt() d = null; String h; void levere() System.out.print( Tittel: "); h = in.readstring( ); d = alleer.get(h); if (d==null) System.out.println("Beklager, denne har vi ikke"); else if (d instanceof TilUtlaan) { TilUtlaan t = (TilUtlaan) d; if (t.utlånt()) { System.out.println("Beklager, utlånt"); else { System.out.print( Låners navn: "); String n = in.readstring( ); t.låne(n); // slutt kan lånes ut // Slutt if (d instanceof TilUtlaan) else System.out.println("Beklager, denne låner vi ikke ut"); // Slutt låne t 33 n Test med operatoren instanceof if (d instanceof TilUtlaan) p instanceof C n Gir TRUE dersom p peker på et objekt av klassen C eller en subklasse av C, eller dersom p peker på en klasse som implementerer interfacet C n Endring med casting d d = alleer.get(h); TilUtlaan t = (TilUtlaan) d; t ser bare TilUtlån-egenskapene! n OK, dersom d spiller rollen TilUtlaan, dvs. er et objekt av en av klassene TilUtlaan eller TilUtlaan Object TilUtlaan TilUtlaan 34 leveretilbake i Register Indre klasser void leveretilbake() { d = null; String h; System.out.print( Tittel: "); h = in.readstring( ); d = alleer.get(h); if (d==null) System.out.println("Beklager, feil tittel"); else if (d instanceof TilUtlaan) { TilUtlaan t = (TilUtlaan) d; if (t.utlånt()) { t.levere(); System.out.println("Takk"); else System.out.println("Beklager, denne er ikke utlånt"); // Slutt if (d instanceof TilUtlaan) void låne() boolean utlånt() void levere() t 35 n Klasser i Java kan defineres inni hverandre. n Objekter i den indre klassen kan referere til metoder og variable i sitt omsluttende objekt! n + Lettvint + Skjuler implementasjon n Flere feilmuligheter Du må altså opprette et objekt av den ytre klassen før du får lov til å lage objekter av den indre klassen class Register { HashMap<String,Person> liste; class Person { String navn; void registrer() {... liste.put(navn,this);... // Slutt class Person // Slutt class Register Ikke viktig i inf
10 Et utvalg fra Javas klassehierarki class HashMap<K,V> class Object { // Alle objekters mor boolean equals(object obj)... Object clone()... public final class String extends Object { public final class Math extends Object { public class Date extends Object { public abstract class Calendar extends Object { public interface Map<K,V> { public interface Collection<E> { public interface Iterator<E> { public abstract class AbstractMap<K,V> extends Object implements Map<K,V> { Alle klasser er subklasser av class Object. Hvis klassedeklarasjonen ikke har med extends, tolker kompilatoren det som extends Object class HashMap<K,V> extends AbstractMap<K,V> implements Map<K,V>, Cloneable, Serializable { // Hemmelig datastruktur public void put(k key, V value) { public V remove(object key) { public V get(object key) { public boolean containskey(object key) { public boolean containsvalue(object value) { Java har etter hvert mange klasser som kan brukes til å ta vare på objekter: Vector, ArrayList, Collection, HashMap HashSet, LinkedList, Stack, TreeSet, TreeMap, ) public int size( ) { public class HashMap <K,V> extends AbstractMap <K,V> implements Map <K,V>, Cloneable, Serializable { V get(object key) { public Collection<V> values( ) { void put (K key, V value) { K: Key, E: Element, V: Value // slutt class HashMap class HashMap class HashMap extends AbstractMap implements Map, Cloneable, Serializable { // Hemmelig datastruktur public void put(object key, Object value) { public Object remove(object key) { public Object get(object key) { public boolean containskey(object key) { public boolean containsvalue(object value) { public int size( ) { public Collection values( ) { Uten typer, bare med Object, blir det slik public interface Collection{ public int size(); class HashMap<K,V> { <Hemmelig datastruktur> class Ukjent<V> implements Collection<V> { public void put(k nokkel, V verdi ){ public Collection<V> values( ) { Ukjent<V> u = new Ukjent<V> ( ) ; return u;... HashMap og Collection HashMap har altså sine egne implementasjoner av Collection som er hemmelig for oss utenfor, men siden alle metodene er kjent kan vi kalle på disse (på neste side) // slutt class HashMap 39 40
11 Implementasjon av Collection Grensesnitt (interface) enda en gang void visalleer() alleer For ( d: alleer.values()) { d.vispaaskjerm(); // slutt for Collection Class Ukjent Ukjent-objekt d Collection values() n Et grensesnitt (interface) har bare n konstanter (static final - eks static final int ANTALL = 4;) n metodenavn med parametre, men ikke kode (husk ;) n Bruker interface i steden for class før navnet n Gir en type / rolle som andre må implementere n class ABC implements ButikkSystem {...her gis kode for alle metodene i ButikkSystem... n Meget nyttig, brukes mye ved distribuerte systemer og generelle programbiblioteker som Javas eget n Ulempe: Koden/implementasjonen må gjøres mange ganger n Mer generelt kjent under navnet ADT =Abstrakt DataType, Vi definerer hva en ny datatype skal gjøre, ikke hvordan dette gjøres. n Det kan være mange mulige implementasjoner (=måter å skrive kode på) som lager en slik datatype. n Hva som er beste implementasjon må avgjøres etter hvilken bruk vi har. -objekt 41 42
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
DetaljerUke 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
DetaljerAbstrakte 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
DetaljerInstitutt 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
DetaljerAbstrakte 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
DetaljerINF1010, 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
DetaljerIN1010 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 {
Detaljern / ($$ n 0$$/ $ " 1! <! ')! $ : ; $.+ $.5.+ .!)/!/ ) $.) 6$ 7$, $.5.,.9+- 5.+ 8$ 7$, + - 5.
"# %% & ' ()*,"""). / " %% &%% / ( 0/ " 1 /(232.,..5. 6 7,.5.,. / : ; 5.. )// ).) 8 < ') < 6 6 8 < 8 8 7,.5.,.9 5. 5. 5. 5. 5.. 5..9 /.> DB(?/ ( / (.?/. /?(5@"""6(?( 5@""6 &. A8 6 (."B 3 8 6 ) ("?/& =
DetaljerEksekveringsrekkefø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
DetaljerINF1010, 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
DetaljerINF1010, 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
DetaljerRepitisjonskurs. 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
DetaljerINF 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
DetaljerINF1010, 21. februar Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo
INF1010, 21. februar 2013 Om å gå gjennom egne beholdere (iteratorer) Stein Gjessing Inst. for Informatikk Universitetet i Oslo Ikke noe nytt her From the Java language specification (version 6): 14.14.2
Detaljer1. 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
DetaljerKonstruktø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
DetaljerINF1010 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
DetaljerINF1010 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
DetaljerINF1010 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
DetaljerINF 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
DetaljerINF1010 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)
DetaljerINF1010 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)
DetaljerINF1010 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
DetaljerINF1010, 24. februar 2011. Stein Gjessing Inst for Informatikk Universitetet i Oslo
INF1010, 24. februar 2011 Abstrakte klasser og grensesnitt (interface) Stein Gjessing Inst for Informatikk Universitetet i Oslo Abstrakte metoder og klasser Abstrakte metoder abstract før deklarasjonen
DetaljerINF1010 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
DetaljerINF1010 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
DetaljerINF1010 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
DetaljerLøsningsforslag til eksamen i INF1000 våren 2006
Løsningsforslag til eksamen i INF1000 våren 2006 Oppgave 1 a) -1 false 7 b) 30 c) Verdien til j er: 4Verdien til k er: 3Verdien til n er: 7 d) Andre if-test er true Tredje if-test er true e) k = 4 k =
DetaljerIN1010 våren 2018 Tirsdag 13. februar. Interface - Grensesnitt
IN1010 våre 2018 Tirsdag 13. februar Iterface - Gresesitt Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les otatet Gresesitt i Java av Stei Gjessig To motivasjoer for
Detaljer< 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
DetaljerINF 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-
DetaljerINF1010 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
DetaljerForkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Eivind Storm Aarnæs (eivinsaa@math.uio.no) Institutt for Informatikk, 14. januar 2015 Forkurs INF1010 - dag 3 Strenger Fil-I/O Unntakshåndtering
DetaljerPost-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
DetaljerForkurs INF1010. Dag 3. Andreas Færøvig Olsen Gard Inge Rosvold Institutt for Informatikk, 15.
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen (andrefol@ifi.uio.no) Gard Inge Rosvold (gardir@ifi.uio.no) Institutt for Informatikk, 15. januar 2016 Forkurs INF1010 - dag 3 Strenger 2 Forkurs INF1010 - dag
DetaljerINF1010, 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:
DetaljerINF1010, 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å
Detaljer2 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.
DetaljerINF1010 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)
DetaljerEnkle 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
DetaljerGjennomgang 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
DetaljerINF1010 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)
DetaljerINF1010 - 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
DetaljerINF1010 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
DetaljerLæ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
DetaljerHva 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 =
DetaljerOPPGAVE 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"Nelsons kaffebutikk"
"Nelsons kaffebutikk" et eksempel på systemutvikling med objekter Originale lysark av Jens Kaasbøll - mindre endringer av G. Skagestein og Knut Hegna IN105-javaNelson-1 Nelsons kaffebutikk Området som
DetaljerINF1010 våren 2017 Torsdag 9. februar. Interface - Grensesnitt
INF1010 våre 2017 Torsdag 9. februar Iterface - Gresesitt og litt om geeriske klasser og geeriske iterface hvis tid Stei Gjessig Dages hovedtema Egelsk: Iterface (også et Java-ord) Norsk: Gresesitt Les
DetaljerUNIVERSITETET 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å
DetaljerArray&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
DetaljerKapittel 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,
DetaljerINF1000: Forelesning 6. Klasser og objekter del 1
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK 2 Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer navn, brukernavn og telefonnummer.
DetaljerOppsummering. 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
Detaljer1- 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)
Detaljer2 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
DetaljerINF1010 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
DetaljerOBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK
INF1000: Forelesning 6 Klasser og objekter del 1 OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK Motivasjon Anta at vi ønsker å lage et studentregister hvor vi for hver student lagrer, bruker og telefonnummer Med
DetaljerINF1010 våren Grensesnitt
INF1010 våren 2013 Torsdag 24. januar Grensesnitt Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing 2 Hva
DetaljerArray&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
DetaljerINF1010 våren Grensesnitt
INF1010 våren 2014 Onsdag 22. januar Grensesnitt Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing n Det
DetaljerEks 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å
DetaljerAlgoritmer 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
DetaljerINF1010 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
DetaljerEksamen 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
DetaljerINF1010 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:
DetaljerIN1010 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
DetaljerLæringsmål for forelesningen
Læringsmål for forelesningen Objektorientering Bruk av grensesnitt og implementasjoner i Collection-klasser Java-prog, kap. 14-16 i Big Java Og side 990-997 i Appendix D Collection-rammeverket og iterasjon
DetaljerINF1010. 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
DetaljerUke 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)
DetaljerRepetisjon. INF1000 - gruppe 13
Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje
Detaljer1- 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)
DetaljerIntroduksjon til objektorientert programmering
Introduksjon til objektorientert programmering Samt litt mer om strenger og variable INF1000, uke6 Ragnhild Kobro Runde Grunnkurs i objektorientert programmering Strategi: Splitt og hersk Metoder kan brukes
DetaljerEn klasse som arver, eller selv deklarerer en abstrakt metode, må deklareres som abstrakt.
Polymorfi og arv, del 3 Repetisjon Eksempel Modifikatoren final Interface som grensesnitt, ge klassene som implementasjon LC191D Videregående programmering Semesterplan: http://aitel.hist.no/fag/vprg/index_lc191d.php
DetaljerGjø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å
DetaljerINF1010, 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
DetaljerINF1010 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
DetaljerIN 211 Programmeringsspråk. Java. på 20 enkle ark. spesielt for de som kan. Simula. (og gjerne litt C) Ark 1 av 20
Java på 20 enkle ark spesielt for de som kan Simula (og gjerne litt C) Ark 1 av 20 Forelesning 28.9.1998 Et minimalt eksempel Filen Hallo.java ser slik ut: class Hallo { public static void main(string
Detaljer23.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
DetaljerLø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.
DetaljerINF1010. Grensesnittet Comparable<T>
INF1010 21. februar 2013 Grensesnittet Comparable Stein Michael Storleer Institutt for Informatikk Universitetet i Oslo Interface med parametre interface Utkledd { // T er klassen jeg er utkledd
DetaljerINF1010 våren 2018 tirsdag 23. januar
INF1010 våren 2018 tirsdag 23. januar I/O og litt om bruk av unntak i Java Stein Gjessing Lesing fra terminal og fil navn: mininn Bruk Scanner: Scanner mininn = new Scanner(); Type: Scanner boolean
DetaljerIN 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
DetaljerINF 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
DetaljerIN våren 2018 Tirsdag 16. januar
IN1010 - våren 2018 Tirsdag 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
DetaljerINF1010 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)
DetaljerIN1010 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
DetaljerINF1010 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
DetaljerUNIVERSITETET 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:
DetaljerOppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI
Oppgave 1 INF1000 Uke 13 Gjennomgang av prøveeksamen fra høsten 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new double[1];
DetaljerINF 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
DetaljerOppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004
Oppgave 1 Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new
DetaljerINF1010 våren Grensesnitt (interface)
INF1010 våren 2015 Torsdag 5. februar Grensesnitt (interface) Stein Gjessing Institutt for informatikk Dagens tema n n Norsk: Grensesnitt Engelsk: Interface n Les notatet Grensesnitt i Java av Stein Gjessing
DetaljerRuntimesystemer - II. Funksjoner som parametere. Virtuelle metoder
Runtimesystemer - II Funksjoner som parametere Virtuelle metoder Parameteroverføring Call by value Call by reference Call by value-result Call by name 04/04/14 1 FUNKSJONER SOM PARAMETERE 04/04/14 2 Eksempel
DetaljerPrøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004
Prøveeksamen i INF1000 Ole Christian og Arne 23. november 2004 Oppgave 1 Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI int i; int k = i; int i, j = 4; int k = j; double[] x = new
DetaljerAv Stein Gjessing, Institutt for informatikk, Universitetet i Oslo
Gaustadbekkdalen, januar 27 Litt om datastrukturer i Java Av Stein Gjessing, Institutt for informatikk, Universitetet i Oslo Innledning Dette notatet beskriver noe av det som foregår inne i primærlageret
DetaljerLøsningsforslag til Eksamen i fag SIF8005 Programmering. Torsdag 10. mai 2001 kl
Side 1 av 10 NTNU Norges teknisk-naturvitenskapelige universitet BOKMÅL Fakultet for fysikk, informatikk og matematikk Institutt for datateknikk og informasjonsvitenskap Sensurfrist: 15. juni Løsningsforslag
DetaljerInnhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java
INF høsten 2 Uke 4: 3. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Mål for uke 4: Innhold uke 4 Repetisjon m/ utvidelser:
DetaljerObjektorientert design av kode. Refaktorering.
Objektorientert design av kode. Refaktorering. DEL 1 INF1010-forelesning 2. mars Ragnhild Kobro Runde Læringsmål Kjenne til og kunne bruke viktige prinsipper for god kodedesign. Kunne finne alternative
Detaljer