IN1010 våren 2019 Onsdag 6. februar. Arv og subklasser - del 2
|
|
- Steffen Løken
- 5 år siden
- Visninger:
Transkript
1 IN1010 våre 2019 Osdag 6. februar Arv og subklasser - del 2 Stei Gjessig
2 Dages tema Virtuelle metoder som er det samme som Polymorfi Når bruker vi arv / år bruker vi komposisjo Kostruktører i subklasser Virtuelle Polymorfi - fie av, me det er ikke så vaskelig 2
3 Klassehierarki: Persobil Bil Repetisjo: Subklasser class Bil { <lys beige egeskaper> class Persobil exteds Bil { <røde egeskaper> class Lastebil exteds Bil { < grøe egeskaper> class Drosje exteds Persobil { < gule egeskaper> Alle lastebiler Lastebil Drosje Alle biler Alle drosjer Alle persobiler 46 objekter 46 ew 3
4 class Bil { protected it pris; public it skatt( ) {retur pris * 0.25; Polymorfi: eksempel Klassehierarki: Bil class Persobil exteds Bil { protected it atallpassasjer; public it skatt( ) {retur pris * 1; Persobil class Lastebil exteds Bil { protected double lastevekt; public it skatt ( ) {retur pris * 0.5; Lastebil class Drosje exteds Persobil { protected Strig loyveid; public it skatt ( ) {retur pris * 0.25; Drosje 4
5 Polymorfi: eksempel class Bil { protected it pris; public it skatt( ) {retur pris * 0.25; class Persobil exteds Bil { protected it atallpassasjer; public it skatt( ) {retur pris * 1; protected it pris public it skatt( ) {retur pris*0.25; protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; class Lastebil exteds Bil { protected double lastevekt; public it skatt ( ) {retur pris * 0.5; protected it pris public it skatt( ) {retur pris*0.25; private double lastevekt public it skatt( ) {retur pris*0.5; class Drosje exteds Persobil { protected Strig loyveid; public it skatt ( ) {retur pris *0.25; protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; protected Strig loyveid public it skatt( ) {retur pris*0.25; Bilobjekt Persobilobjekt Lastebilobjekt Drosjeobjekt 5
6 Polymorfi: eksempel Bil protected it pris public it skatt( ) {retur pris*0.25; Bil Persobil Bil Lastebil Bil Persobil Drosje protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; protected it pris public it skatt( ) {retur pris*0.25; private double lastevekt public it skatt( ) {retur pris*0.5; protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; protected Strig loyveid public it skatt( ) {retur pris*0.25; Bilobjekt Persobilobjekt Lastebilobjekt Drosjeobjekt 6
7 Bil Bil Persobil Bil Lastebil b1 Polymorfi: eksempel b2 p1 b3 last protected it pris public it skatt( ) {retur pris*0.25; protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; Bilobjekt Persobilobjekt Hva blir: Bil Persobil Drosje b4 p2 d1 protected it pris public it skatt( ) {retur pris*0.25; private double lastevekt public it skatt( ) {retur pris*0.5; Lastebilobjekt b1.skatt() p1.skatt() b2.skatt() last.skatt() b3.skatt() b4.skatt() p2.skatt() d1.skatt() protected it pris public it skatt( ) {retur pris*0.25; protected it atpassasjer public it skatt( ) {retur pris * 1; protected Strig loyveid public it skatt( ) {retur pris*0.25; Drosjeobjekt 7
8 Omdefierig av metoder - polymorfi Vi har sett at med subklasser ka vi utvide e eksisterede klasse med ye metoder (og ye variable) E subklasse ka også defiere e metode med samme sigatur som e metode i superklasse, me med ulikt ihold. De ye metode vil omdefiere (erstatte) metode som er defiert i superklasse Metoder som ka omdefieres på dee måte kalles virtuelle metoder I Java er alle metoder virtuelle, så sat de ikke er deklarert med fial Virtuelle metoder = polymorfi 8
9 Polymorfi: Nytt eksempel For objekter av type ValigHud er det class ValigHud { dee metode som //... gjelder. public void bjeff() { System.out.pritl("Vov-vov"); class Rasehud exteds ValigHud { //... public void bjeff() { For objekter av type Rasehud er det dee metode som gjelder. System.out.pritl("Voff-voff"); ValigHud Rasehud
10 Polymorfi: eksempel ValigHud v Rasehud r ValigHud g public void bjeff() { System.out.pritl("Vov-vov"); public void bjeff() { System.out.pritl("Vov-vov"); public void bjeff() { System.out.pritl("Voff-voff"); Ata dette programmet: Hva skrives ut ved hvert av kallee: ValigHud v = ew ValigHud(); Rasehud r = ew Rasehud(); ValigHud g = r; v.bjeff(); r.bjeff(); g.bjeff(); Vov-vov Voff-voff Voff-voff 10
11 Istrumet ist void skrivdefiisjo() { System.out.pritl( Et istr..."); Oppgave: Hva skrives ut år programmet Musikk.java kjøres? void skrivdefiisjo() { System.out.pritl( Et piao... "); class Musikk { public static void mai (Strig[] args) { Istrumet ist = ew Piao(); ist.skrivdefiisjo(); class Istrumet { public void skrivdefiisjo () { System.out.pritl ("Et istrumet er oe ma ka spille på"); class Piao exteds Istrumet { public void skrivdefiisjo () { System.out.pritl ("Et piao er et stregeistrumet"); Istrumet Piao 11
12 Musikk versjo 2 Hva skjer i dette tilfellet? Istrumet ist void skrivdefiisjo( ) { System.out.pritl( Et istrum..."); void skrivdefiisjo(strig overskrift) { System.out.pritl(... ); System.out.pritl( "Et piao.. ); class Musikk { public static void mai (Strig[] args) { Istrumet ist = ew Piao(); ist.skrivdefiisjo(); class Istrumet { public void skrivdefiisjo () { System.out.pritl("Et istrumet er oe ma ka spille på"); class Piao exteds Istrumet { public void skrivdefiisjo (Strig overskrift) { System.out.pritl(overskrift); System.out.pritl("Et piao er et stregeistrumet"); 12
13 Istrumet ist void skrivdefiisjo(strig overskrift) { System.out.pritl(... ); System.out.pritl( "Et istrumet.. ); Musikk versjo 3 void skrivdefiisjo( ) { System.out.pritl( Et piao..."); class Musikk { public static void mai (Strig[] args) { Istrumet ist = ew Piao(); ist.skrivdefiisjo(); class Istrumet { public void skrivdefiisjo(strig overskrift) { System.out.pritl(overskrift); System.out.pritl("Et istrumet er oe ma ka spille på"); Hva skjer a? Programmet lar seg ikke oversette class Piao exteds Istrumet { public void skrivdefiisjo () { System.out.pritl("Et piao er et stregeistrumet"); 13
14 Musikk-eksemplee: Lærdom Når vi ser på et objekt via e superklasse-peker, mister vi valigvis tilgag til metoder og variable som er defiert i subklasse. Dersom e metode i subklasse også er defiert (med samme sigatur) i superklasse har vi likevel tilgag via superklasse-pekere, fordi objektets dypeste metode brukes. Slike metoder kalles virtuelle metoder, og dee mekaisme kalles polymorfi. Det som er relevat er derfor hvilke metoder som fies i superklasse (med hvilke parametre), me ikke ødvedigvis iholdet i metodee. Samme sigatur = samme av og øyaktig samme parametre (ikke ikl. returtype i Java, me Java protesterer hvis gal returtype) 14
15 Flere virtuelle metoder class Vare { protected it pris; public void setpris(it p){pris = p; protected it prisutemoms() { retur pris; public it prismedmoms() { retur (it) (1.25*prisUteMoms()); class SalgsVare exteds Vare { protected it rabatt; // I proset... public void setrabatt(it r){ rabatt = r; protected it prisutemoms() { retur pris (pris*rabatt/100); 15
16 pris 100 Vare v = ew Vare(); v.setpris(100); SalgsVare s = Vare v2 ew SalgsVare(); s.setpris(100); s.setrabatt(20); Vare v2 = s; SalgsVare s Hva blir å: v.prismedmoms(); s.prismedmoms(); v2.prismedmoms(); Vare v protected it prisutemoms ( ) { retur pris; public it prismedmoms { retur (it) (1.25*prisUteMoms ( ) ); pris protected it prisutemoms ( ) { retur pris; public it prismedmoms { retur (it) (1.25*prisUteMoms ( ) ); rabatt protected it prisutemoms ( ) { retur pris (pris*rabatt/100); 16
17 Polymorfi: skrivdata I uiversitets-eksemplet så vi at klassee Studet og Asatt (før vi hadde lært om subklasser) hadde este like skrivdata-metoder: // I klasse Studet: public void skrivdata() { System.out.pritl("Nav: " + av); System.out.pritl("Telefo: " + tlfr); System.out.pritl("Studieprogram: " + program); // I klasse Asatt: public void skrivdata() { System.out.pritl("Nav: " + av); System.out.pritl("Telefo: " + tlfr); System.out.pritl("Løstri: " + løstri); System.out.pritl("Timer: " + atalltimer); 17
18 Nøkkelordet super Nytt Nøkkelordet super brukes til å aksessere variable / metoder i objektets superklasse. Dette ka vi bruke til å la superklasse Perso ha e geerell skrivdata, som så kalles i subklassee: // I klasse Perso: public void skrivdata() { System.out.pritl("Nav: " + av); System.out.pritl("Telefo: " + tlfr); // I klasse Studet: public void skrivdata() { super.skrivdata(); System.out.pritl("Studieprogram: " + program); // Tilsvarede i klasse Asatt: public void skrivdata() { super.skrivdata(); System.out.pritl("Løstri: " + løstri); System.out.pritl("Timer: " + atalltimer); 18
19 class StudetRegister { public static void mai(strig [] args) { Studet stud = ew Studet(); Perso pers = ew Perso(); stud.skrivdata(); pers.skrivdata(); // Her brukes defiisjoe i Studet // Her brukes defiisjoe i Perso Perso pers Perso pers2 = stud; pers2.skrivdata(); // Hvilke defiisjo beyttes her? Studet stud Perso pers2 void skrivdata() { System.out.pritl("Nav: " + av); System.out.pritl("Telefo: " + tlfr); void skrivdata() { System.out.pritl("Nav: " + av); System.out.pritl("Telefo: " + tlfr); Regel: Det er objekttype, ikke referasetype, som avgjør hvilke defiisjo som gjelder år e metode er virtuell. void skrivdata() { super.skrivdata(); System.out.pritl("Studprgm: " + prgm); 19
20 20 Omdefierig av variable E subklasse ka også omdefiere (skyggelegge) variable som er defiert i superklasse. MEN: Dette bør IKKE brukes!!! Sjelde ødvedig Reduserer lesbarhete Ka føre til uvetet oppførsel Og mer treger dere ikke å vite om det
21 Klassehierarki: Et eksempel fra Java-biblioteket ArrayList AttributeListt RoleList RoleUresolvedList Oppgave: Slå opp på ArrayList i Javabiblioteket og se at de tre klassee er direkte subklasser av ArrayList (direkte aboer i klassehierarkiet) ( Direct Kow Subclasses )
22 Klassehierarki: Også fra Java-biblioteket: Feil-klasser Object Throwable Error Exceptio Virtual- Machie- Error IOError RutimeExceptio IOExceptio Oppgave: Slå opp i Javabiblioteket AWTExceptio... og ca. 60 adre
23 Repetisjo: De boolske operatore istaceof hjelper oss å fie ut av hvilke klasse et gitt objekt er, oe som er yttig i mage tilfeller: class TestFrukt { public static void mai(strig[] args) { Eple e = ew Eple(); skrivut(e); static void skrivut(frukt f) { if (f istaceof Eple) System.out.pritl("Dette er et eple!"); else if (f istaceof Appelsi) System.out.pritl("Dette er e appelsi!"); Frukt class Frukt {.. class Eple exteds Frukt {.. class Appelsi exteds Frukt {.. Eple Appelsi 23
24 Me: Prøv å ugå istaceof Istedefor å teste hvilke klasse objektet er av, be objektet gjøre jobbe selv: Bedre program: class TestFrukt2 { public static void mai(strig[] args) { Fruk2 f = ew Eple2(); f.skrivut( ); abstract class Frukt2 { abstract public void skrivut( ); Bruk heller polymorfi hvis mulig class Eple2 exteds Frukt2 { public void skrivut( ) { System.out.pritl("Jeg er et eple!"); class Appelsi2 exteds Frukt2 { public void skrivut( ) { System.out.pritl("Jeg er e appelsi!"); 24
25 god Biler og mer bruk av istaceof HashMap <Strig, Bil> h; (og litt castig (typekoverterig)) h = ew HashMap <Strig, Bil> ( ); h... for (Bil b: h.values()) { Strig r = b.regnr; // kall på virtuell metode: b.skatt( ); if (b istaceof Persobil) { Persobil pb = (Persobil) b; it pas = pb.hetatpass(); else { if (b istaceof Lastebil) { Lastebil ls = (Lastebil) b; double lv = ls.hetlastevekt(); class Bil { Strig regnr; public void skatt(){... class Persobil exteds Bil { it atpass; public void skatt(){... class Lastebil exteds Bil { double lastevekt; p.. void skatt(){... class Drosje exteds Persobil { it LøyveNr; p.. void skatt(){... 25
26 Oppgave Brev Ata at vi har deklarasjoee Sokad class Brev { class Sokad exteds Brev { class Kjaerlighetsbrev exteds Brev { Avgjør hvilke av følgede uttrykk som er lovlige: Kjaerli Lovlig Ulovlig Sokad s1 = ew Sokad(); Sokad s2 = ew Brev(); Brev b1 = ew Sokad(); Brev b2 = (Brev) ew Sokad(); Sokad s3 = ew Kjaerlighetsbrev(); Sokad s4 = (Sokad) ew Kjaerlighetsbrev(); Brev b3 = (Sokad) ew Brev(); 26
27 Hvorfor bruker vi subklasser? 1. Klasser og subklasser avspeiler virkelighete Bra år vi skal modellere virkelighete i et datasystem 2. Klasser og subklasser avspeiler arkitekture til datasystemet / dataprogrammet Bra år vi skal lage et oversiktlig stort program 3. Klasser og subklasser ka brukes til å forekle og gjøre programmer mer forstålig, og spare arbeid: Gjebruk av programdeler Bottom up programmerig Lage verktøy Top dow programmerig Nå skal vi se litt på 3 Postulere verktøy 27
28 Gjebruk av deler av programmer Viktig å ikke måtte skrive y kode hver gag ma skal programmere oe ytt Gjebruk mest mulig av kode du har skrevet før Lag kode med heblikk på et de skal brukes (til oe likede) seere Lag biblioteker Bruk adres bibliotek Javas eget bibliotek Strukturerig av kode ( gjebruk i samme program) IN1000: Gjebruk av metoder og klasser 28
29 Gjebruk ved hjelp av klasser / subklasser Ved sammesetig (komposisjo) (i Oblig 1, pesum i IN1000): Deklarer referaser til objekter av klasser du har skrevet før (eller biblioteksklasser) Lag objekter av disse klasse Kall på metoder i disse klassee Ved arv (ytt i IN1010): Lag e y klasse som utvider de eksisterede klasse (spesielt viktig ved litt større klasser) Føy til ekstra variable og metoder 29
30 Gjebruk ved sammesetig / komposisjo Omtret som i oblig 1. Ikke oe ytt class Demoklasse { HashMap<Strig,Perso> veer = ew HashMap<Strig,Perso>(); Husdyr h = ew Hud( Passopp ); Strig av = Ole-Morte"; /* + Diverse metoder */ veer, h og av er deklarert som referasevariable som peker på objekter av adre klasser som allerede eksisterer. h veer av Ole-Morte 30
31 Gjebruk ved arv (domeet er et bibliotek) Objekter av klassee class Bok { protected Strig tittel, forfatter; class Fagbok exteds Bok { protected double dewey; class Skjølitterærbok exteds Bok { protected Strig sjager; class Bibliotek { Bok b1 = ew Fagbok(); Bok b2 = ew Skjølitterærbok(); Arv Komposisjo Gjebrukes Gjebrukes 31
32 Når skal vi bruke arv? Geerelt: Ved er-e relasjo mellom objektee. E Studet er e Perso E Asatt er e Perso Hva med relasjoee roma bok? E roma er e bok (arv). kapittel bok? Et kapittel er ikke e bok, me et kapittel er e del av e bok, og e bok har/består av kapitler (sammesetig) Relasjoer som har-e og består-av skal ikke modelleres som subklasser, me ved hjelp av sammesetig (som datafelt (kostater/variable)). Arv vs. delegerig 32
33 Oppgave Hvor er det aturlig å bruke komposisjo og hvor er det aturlig med arv i disse tilfellee? Relasjo mellom Komposisjo Arv vare - varelager yhetskaal - kaal perso - persoregister cd - spor (sager) PC - datamaski gaupe - rovdyr fly - trasportmiddel motor - bil 33
34 Object: tostrig og equals Klasse Object ieholder bl.a. tre viktige metoder: Strig tostrig() returerer e Strig-represetasjo av objektet boolea equals(object o) sjekker om to objekter er like (i Object det samme som pekerlikhet) it hashcode( ) returerer e hash-verdi av objektet Disse metodee ka ma så selv redefiere til å gjøre oe mer foruftig. Poeget er at e bruker av e klasse vet at disse metodee alltid vil være defiert (pga. polymorfi) 34
35 Eksempel på tostrig og equals class Pukt { protected it x, y; Pukt(it x0, it y0) { x = x0; y = y0; Ata: class Pukt2 { protected it x, y; Pukt2(it x0, it y0) { x = x0; y = y0; public Strig tostrig() { retur ("x = "+x+" y = "+y); Pukt p1 = ew Pukt(3,4); Pukt p2 = ew Pukt(3,4); Pukt2 q1 = ew Pukt2(3,4); Pukt2 q2 = ew Pukt2(3,4); Hva blir å: public boolea equals(object o) { if (!(o istaceof Pukt2)) retur false; Pukt2 p = (Pukt2) o; retur x == p.x && y == p.y; p1.tostrig(); p1.equals(p2); Pukt@f5da06 false q1.tostrig(); q1.equals(q2); x = 3 y = 4 true 35
36 Kostruktører Ikke oe ytt Bruk av kostruktører år vi opererer med "ekle" klasser er gaske ukomplisert. Når vi skriver Pukt p = ew Pukt(3,4); skjer følgede: class Pukt { protected it x, y; 1. Det settes av plass i iter-miet til et objekt av klasse Pukt og til referasevariable p. 2. Variablee x og y blir opprettet ie i objektet (istasvariable) 3. Kostruktør-metode blir kalt med x0=3 og y0=4. 4. Etter at kostruktøre har satt x=3 og y=4, blir verdie av høyreside i tilordige Pukt p = ew Pukt(3,4) adresse (e referase, peker) til det ye objektet. 5. Tilordige Pukt p = utføres, dvs p settes lik adresse / referase til objektet. av: p type: Pukt Pukt(it x0, it y0) { x = x0; y = y0; Pukt(it x0, it y0) av: x0 3 type: it av: x x = x0; y = y0; type: it av: y0 4 type: it av: y 3 4 type: it 36
37 Kostruktører og arv Det blir oe mer komplisert år vi opererer med arv: Ata at vi har defiert e subklasse class B exteds A { Hvilke kostruktør utføres hvis vi skriver B bpeker = ew B(); Kostruktøre i klasse A? Kostruktøre i klasse B? Begge? B A bpeker A() B() B 37
38 Kostruktører og arv (forts.) Nytt Ata at vi har deklarert tre klasser: class A { class B exteds A { class C exteds B { Når vi skriver ew C() skjer følgede: 1. Kostruktøre til C kalles (som valig) 2. Kostruktøre til C starter med å kalle på B si kostruktør 3. Kostruktøre til B starter med å kalle på A si kostruktør 4. Så utføres A si kostruktør 5. Kotrolle kommer tilbake til B si kostruktør, som utføres 6. Kotrolle kommer tilbake til C si kostruktør, som utføres 38
39 Kall på super-kostruktøre Nytt Superklasses kostruktør ka kalles fra e subklasse ved å si: super(); - vil kalle på e kostruktør ute parametre super(5, test ); - om vi vil kalle på e kostruktør med to parametre (it og Strig) Et kall på super må legges helt i begyelse av kostruktøre. Kaller ma ikke super eksplisitt, vil Java selv legge i kall på super( ) helt først i kostruktøre år programmet kompileres. Hvis e klasse ikke har oe kostruktør, legger Java i e tom kostruktør med kallet super(); 39
40 NB! Det er forskjell på super. og super(...)
41 Eksempel 1 Ata at vi har følgede klasser: class Perso { proteceted Strig fødselsr; Perso() { fødselsr = "; class Studet exteds Perso { protected it studid; Studet() {... Ata to kostruktører: Studet() { super(); studid = 0; eller: Studet() { studid = 0; Disse to er helt ekvivalete! Hva skjer hvis Studet ikke har oe kostruktør :? class Studet exteds Perso { it studid = 0; Svar: det går bra 41
42 Eksempel 2 Her er fire forslag til kostruktører: Studet() { studid = 0; Ata at vi har følgede klasser: class Perso { protected Strig fødselsr; Perso(Strig fr) { fødselsr = fr; class Studet exteds Perso { protected it studid; Studet() {... Studet() { super( 12345"); studid = 0; Studet(Strig r){ super(r); studid = 17; Studet(Strig r, it id){ super(r); studid = id; Hvilke virker? Diskuter! 42
43 Eksempel 3 class Bygig { Bygig() { System.out.pritl("Bygig"); class Bolighus exteds Bygig { Bolighus() { System.out.pritl("Bolighus"); Hva blir utskrifte fra dette programmet? class Blokk exteds Bolighus { Blokk() { System.out.pritl("Blokk"); public static void mai(strig[] args) { ew Blokk(); 43
44 Når programmet kompileres class Bygig { Bygig() { super(); System.out.pritl("Bygig"); // class Bygig class Bolighus exteds Bygig { Bolighus() { super(); System.out.pritl("Bolighus"); // class Bolighus Java føyer selv på super() i disse tre kostruktøree før programmet utføres class Blokk exteds Bolighus { Blokk() { super(); System.out.pritl("Blokk"); public static void mai(strig[] args) { ew Blokk(); // class Blokk 44
45 Når programmet utføres 4. class Bygig { Bygig() { super(); System.out.pritl("Bygig"); // class Bygig class Bolighus exteds Bygig { Bolighus() { super(); System.out.pritl("Bolighus"); // class Bolighus 5. Til Object si kostruktør class Blokk exteds Bolighus { Blokk() { super(); System.out.pritl("Blokk"); public static void mai(strig[] args) { ew Blokk(); // class Blokk Her starter eksekverige 1. 45
46 Når programmet utføres (forts.) 7. Nå er Bygig skrevet ut 8. Nå er Bolighus skrevet ut 9. Nå er Blokk skrevet ut class Bygig { Bygig() { super(); System.out.pritl("Bygig"); // class Bygig class Bolighus exteds Bygig { Bolighus() { super(); System.out.pritl("Bolighus"); // class Bolighus class Blokk exteds Bolighus { Blokk() { super(); System.out.pritl("Blokk"); public static void mai(strig[] args) { ew Blokk(); // class Blokk 6. Tilbake fra Object si kostruktør 46
47 Eksempel 4 class Bygig { Bygig() { System.out.pritl("Bygig"); Hva skjer i dette eksempelet? class Bolighus exteds Bygig { Bolighus(it i) { System.out.pritl("Bolighus r " + i); class Blokk exteds Bolighus { Blokk() { System.out.pritl("Blokk"); Merk: Kostruktøre i klasse Bolighus har å e parameter. public static void mai(strig[] args) { ew Blokk(); 47
48 Når programmet kompileres class Bygig { Bygig() { super(); System.out.pritl("Bygig"); // class Bygig Java legger igje til kall på super() i alle kostruktøree. class Bolighus exteds Bygig { Bolighus(it i) { super(); System.out.pritl("Bolighus"); // class Bolighus class Blokk exteds Bolighus { Blokk() { super(); System.out.pritl("Blokk"); public static void mai(strig[] args) { ew Blokk(); // class Blokk Me: Kallet matcher ikke metode i atall parametre! Mulige løsiger: 1. Selv legge til kall på super, med argumet, i kotruktøre Blokk. 2. Legge til e tom kostruktør i Bolighus. 48
INF1010 våren 2005 Uke 3, 25. januar Arv og subklasser del I
Emeoversikt subklasser INF1010 våre 2005 Uke 3, 25. jauar Arv og subklasser del I Stei Gjessig Istitutt for iformatikk 1 Geeraliserig - spesialiserig Gjebruk av klasser Ved sammesetig (komposisjo) Ved
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
DetaljerINF1010 våren 2017 Torsdag 26. januar. Arv og subklasser del 1. Stein Gjessing Institutt for informatikk Universitetet i Oslo
INF1010 våre 2017 Torsdag 26. jauar Arv og subklasser del 1 Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Når du har lært om subklasser ka du programmere med: Første uke: Spesialiserig (og
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 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 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
DetaljerINF1010 våren 2005 Uke 4, 1. februar Arv og subklasser, del 2
INF1010 våre 2005 Uke 4, 1. februar Arv og subklasser, del 2 Stei Gjessig Istitutt for iformatikk Repetisjo Vi har sett to former for gjebruk av klasser: Ved sammesetig (komposisjo) Modellerer relasjoer
DetaljerIN1010 våren 2019 Onsdag 15. mai. Rask repetisjon av subklasser og tråder (pluss µ nytt)
IN1010 våre 2019 Osdag 15. mai Rask repetisjo av subklasser og tråder (pluss µ ytt) Stei Gjessig Istitutt for iformatikk Uiversitetet i Oslo 1 Iledig Dette er 41 lysark som det ikke er mulig å gå gjeom
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
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 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 {
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)
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)
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 {
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)
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
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 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
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 ) ("?/& =
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
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 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)
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
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)
DetaljerINF1010 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
DetaljerOm Grafiske Bruker-Grensesnitt (GUI) Hvordan gjør vi det, to typer av vinduer? GUI (Graphical User Interface)-programmering
Uke9. mars 2005 rafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei jessig Ist for Iformatikk Uiv. i Oslo UI (raphical User Iterface)-programmerig I dag Hvorda få laget et vidu
DetaljerINF1010 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
DetaljerINF1010 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
DetaljerINF1010 - våren 2007 16. januar, uke 3 - Oversikt og forutsetninger Java datastruktur-tegninger
INF1010 - våre 2007 16. jauar, uke 3 - Oversikt og forutsetiger Java datastruktur-tegiger Stei Gjessig Ist. for iformatikk Nye temaer i INF1010 Fra problem til program Software Egieerig light, fasee i
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
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
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
DetaljerHvordan gjør vi det, to typer av vinduer? Om Grafiske Bruker-Grensesnitt (GUI) GUI (Graphical User Interface)-programmering
GUI (Graphical User Iterface)-programmerig Uke 11 13. mars 2007 Grafisk brukergresesitt med Swig og awt Litt Modell Utsy - Kotroll Del I Stei Gjessig Ist for Iformatikk Uiv. i Oslo I dag (så lagt vi kommer)
DetaljerINF våren 2005 Uke 1, 11 jan - Praktisk, oversikt og forutsetninger
INF1010 - våre 2005 Uke 1, 11 ja - Praktisk, oversikt og forutsetiger Stei Gjessig og Stei Michael Storleer Ist. for iformatikk Om INF1010 Forutsetter INF1000 (eller tilsvarede som Humit1700?) Lærebok
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
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, 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
DetaljerTråder i Java Parallelle programmmer og programbiter
Oversikt Tråder i Java Parallelle programmmer og programbiter Stei Gjessig, Ist. for iformatikk, Uiv. i Oslo Hva er parallelle programmer? Hvorfor parallelle programmer? Hvorda ka dette skje i e maski
DetaljerINF1000: Forelesning 7
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Repetisjon forts. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en
DetaljerINF1010 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
DetaljerINF3030 Uke 6, våren Eric Jul PSE Inst. for informatikk
INF3030 Uke 6, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Å dele opp algoritme Kode består e eller flere steg; som oftest i form av e eller flere samliger av løkker (som er ekle, doble, triple..) Vi
DetaljerUke 12 IN3030 v2019. Eric Jul PSE-gruppa Ifi, UiO
Uke 12 IN3030 v2019 Eric Jul PSE-gruppa Ifi, UiO Oblig 5 Kovekse Ihylliga Itroduksjo De kovekse ihylliga til pukter Oblig 5 Hva er det, defiisjo Hvorda ser de ut Hva brukes de til? Hvorda fier vi de? 24
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
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
DetaljerINF1000: Forelesning 7. Konstruktører Static
INF1000: Forelesning 7 Klasser og objekter del 2 Konstruktører Static UML REPETISJON 2 Repetisjon Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter
DetaljerLøsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011)
Løsningsforslag ukeoppg. 6: 28. sep - 4. okt (INF1000 - Høst 2011) Løsningsforslag til oppgave 7, 8, og 9 mangler Klasser og objekter (kap. 8.1-8.14 i "Rett på Java" 3. utg.) NB! Legg merke til at disse
DetaljerVi lærte sist å lage vinduer. Om å lage et vindu. GUI (Graphical User Interface)-programmering. Inf 1010-2007 GUI - del 2
GUI (Graphical User Iterface)-programmerig If 1010-2007 GUI - del 2 Stei Gjessig Ist for Iformatikk Uiv. i Oslo Tidligere Hvorda få laget et vidu på skjerme Grafikk (tegig i viduet) Hvorda legge ulike
DetaljerINF2440, Uke 3, våren 2018 Regler for parallelle programmer, mer om cache og Radix-algoritmen. Eric Jul PSE, Inst. for informatikk
INF2440, Uke 3, våre 2018 Regler for parallelle programmer, mer om cache og Radix-algoritme Eric Jul PSE, Ist. for iformatikk 1 Hva har vi sett på i Uke2 I) Tre måter å avslutte tråder vi har startet.
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
DetaljerINF3030 Uke 7, våren Eric Jul PSE Inst. for informatikk
INF3030 Uke 7, våre 2019 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i uke 6 1. Eratosthees sil 2. Kokker og Kelere 3. Cocurrecy: De første to av tre måter å programmere moitorer i Java eksemplifisert
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
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,
DetaljerINF2440 Uke 5, våren2018. Eric Jul PSE Inst. for informatikk
INF2440 Uke 5, våre2018 Eric Jul PSE Ist. for iformatikk 1 Hva så vi på i Uke4 1. Kommetarer om matrise-multiplikasjo 2. Hvorfor vi ikke bruker PRAM modelle for parallelle beregiger som skal gå fort. 3.
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.
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF3110/4110 Programmeringsspråk Eksamensdag: 3. desember 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8 sider. Vedlegg:
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 =
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 =
Detaljerclass Book { String title; } class Dictionary extends Book { int wordcount; } class CartoonAlbum extends Book { int stripcount; }
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
Detaljerpublic static <returtype> navn_til_prosedyre(<parameter liste>) { // implementasjon av prosedyren
Prosedyrer Hensikten med en prosedyre Hensikten med en prosedyre er, logisk sett, å representere en jobb eller en funksjonalitet i et eller flere programmer. Bruk av entall er viktig: vi har generelt en
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
DetaljerArv. Book book1 = new Book(); book1. title = "Sofies verden" class Book { String title; } class Dictiona ry extends Book {
Arv Arv (eng: inheritance) er en mekanisme for å bygge videre på eksisterende klasser og regnes ofte som varemerket til objektorientert programmering. Når arv brukes riktig, kan den gjøre koden ryddigere
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
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
DetaljerDifferensligninger Forelesningsnotat i Diskret matematikk Differensligninger
Differesligiger Forelesigsotat i Diskret matematikk 017 Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker er imidlertid
DetaljerAvsnitt 8.1 i læreboka Differensligninger
Diskret Matematikk Fredag 6. ovember 015 Avsitt 8.1 i læreboka Differesligiger I kapittel lærte vi om følger og rekker. Vi studerte både aritmetiske og geometriske følger og rekker. Noe følger og rekker
DetaljerForkunnskaper i matematikk for fysikkstudenter. Derivasjon.
Defiisjo av derivert Vi har stor ytte av å vite hvor raskt e fuksjo vokser eller avtar Mer presist: Vi øsker å bestemme stigigstallet til tagete til fuksjosgrafe P Q Figure til vestre viser hvorda vi ka
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
DetaljerOM TAYLOR POLYNOMER. f x K f a x K a. f ' a = lim x/ a. f ' a z
OM TAYLOR POLYNOMER I dette otatet, som utfyller avsitt 6. i Gullikses bok, skal vi se på Taylor polyomer og illustrere hvorfor disse er yttige. Det å berege Taylor polyomer for håd er i prisippet ikke
DetaljerINF1000 (Uke 5) Mer om løkker, arrayer og metoder
INF1000 (Uke 5) Mer om løkker, arrayer og metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Anja Bråthen Kristoffersen og Are Magnus Bruaset Praktisk informasjon Når disse
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
DetaljerÅMA110 Sannsynlighetsregning med statistikk, våren Kontinuerlige tilfeldige variable, intro. Kontinuerlige tilfeldige variable, intro.
ÅMA Sasylighetsregig med statistikk, våre 6 Kp. 4 Kotiuerlige tilfeldige variable og ormaldelige Kotiuerlige tilfeldige variable, itro. (eller: Kotiuerlige sasylighetsdeliger) Vi har til å sett på diskrete
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
DetaljerEKSAMEN Løsningsforslag
..4 EKSAMEN Løsigsforslag Emekode: ITF75 Dato: 6. desember Eme: Matematikk for IT Eksamestid: kl 9. til kl. Hjelpemidler: To A4-ark med valgfritt ihold på begge sider. Kalkulator er ikke tillatt. Faglærer:
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:
Detaljer13.09.2012 LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke 1-3 12. September 2012 Siri Moe Jensen EKSEMPLER
.9.22 LITT OM OPPLEGGET INF EKSTRATILBUD Stoff fra uke - 2. September 22 Siri Moe Jensen Målgruppe: De som mangler forståelse for konseptene gjennomgått så langt. Trening får du ved å jobbe med oppgaver,
DetaljerOPPGAVE 1 OBLIGATORISKE OPPGAVER (OBLIG 1) (1) Uten å selv implementere og kjøre koden under, hva skriver koden ut til konsollen?
OPPGAVESETT 4 PROSEDYRER Oppgavesett 4 i Programmering: prosedyrer. I dette oppgavesettet blir du introdusert til programmering av prosedyrer i Java. Prosedyrer er også kjent som funksjoner eller subrutiner.
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
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 - 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
DetaljerDagens tema Kapittel 8: Objekter og klasser
Dagens tema Kapittel 8: Objekter og klasser Hva er objekter og klasser? Programmering med objekter Klassedeklarasjoner Generering av objekter Tilgang til elementer i objektene Objekt- og klassevariable
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
DetaljerINF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjon og The Java Memory Model. Eric Jul PSE, Inst.
INF2440 Uke 4, v2018 Om å samle parallelle svar, matrisemultiplikasjo og The Java Memory Model Eric Jul PSE, Ist. for iformatikk 1 Hva så vi på i uke 3 1. Presiserig av hva som er pesum 2. Samtidig skrivig
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 13. juni 2006 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 5
DetaljerINF1000: noen avsluttende ord
Pensum Det som er gjennomgått på forelesningene INF1000: noen avsluttende ord Arne og Fredrik Stoff som er behandlet i oppgaver/obliger Notat om Informasjonsteknologi, vitenskap og samfunnsmessige virkninger
DetaljerUNIVERSITETET I OSLO
FASIT UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen :
DetaljerStein 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:
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å
DetaljerKlasser, objekter, pekere og UML. INF1000 - gruppe 13
Klasser, objekter, pekere og UML INF1000 - gruppe 13 Klasse Beskriver ofte ting fra den virkelige verden Veldig ofte et substantiv (Person, Bok, Bil osv.) class Person { String navn; int alder; } class
DetaljerAVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE
AVDELING FOR INGENIØRUTDANNING EKSAMENSOPPGAVE Eme: Diskret matematikk Gruppe(r): Emekode: FO 019A Dato: 12.12.200 Faglig veileder: Ulf Uttersrud Eksamestid: 9-14 Eksamesoppgave består av: Atall sider
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
DetaljerEcon 2130 Forelesning uke 11 (HG)
Eco 130 Forelesig uke 11 (HG) Mer om ormalfordelige og setralgreseteoremet Uke 1 1 Fra forrige gag ~ betyr er fordelt som. ~ N( µσ, ) E( ) = µ, og var( ) = σ Normalfordelige er symmetrisk om μ og kotiuerlig
DetaljerUNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 10. juni 2005 Tid for eksamen: 14.30 17.30 Oppgavesettet er på
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
DetaljerTo måter å programmere på. Java 12. Programmering med objekter. Statisk programmering
INF 101-10. mars 2003 Mer om klasser og objekter Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo Java 12 To måter å programmere på Statisk programmering:
Detaljer