Samarbeid mellom objekter

Slides:



Advertisements
Liknende presentasjoner
Repetisjon innkapsling static tabell av primitiv datatype LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring.
Advertisements

Tabeller av objekter Klassen ArrayList
14 okt. 2003, Arne Maus Inst. for informatikk, UiO
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Uke 10 - Sortering, og hvordan lage en klasse for et klassebibliotek 21 okt. 2003, Arne Maus Inst. for informatikk, UiO.
Uke 8 - Mer om: Objekter, klasser og pekere
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
1 Java 6 Mer om metoder Tekster Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for informatikk Universitetet i Oslo.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Java 4 Mer om forgreninger While-løkker Ole Christian Lingjærde
Objekt, Instanser og referanser + litt til. Objekter  Instanser  En instans er et objekt av en bestemt klasse  Instanser blir laget ved å kalle klassens.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
IS-102 Klassedefinisjoner
Oblig4 - forklaringer Arne og Ole Christian.
C# for javaprogrammerere
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon januar 2005 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
Programmering i Java versjon august 2004 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Objektorientert programmering
Java 3 Mer om uttrykk Terminal I/O Forgreninger
Java 11 Programmering med og uten objekter: hva er forskjellen?
Arv og polymorfi, del 3 Modifikatoren abstract side 2-3
Å lese tall fra en fil, klassen Scanner 1.Et Scanner-objekt kan knyttes til et strømobjekt eller til en streng. 2.Kan skanne teksten etter data av ulike.
Programmering i Java tilpasset undervisning våren 2009 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet.
Tabeller Dette er en tabell, eller array. Den kan defineres sånn som dette: public int[] heltallsTabell = new int[11]; //Her er 11 tabellens lengde for.
Main metoden n public static void main(String[] args){ } n Inni denne metoden skjer alt! n Det kan bare finnes en main metode per program. n Den kan ligge.
INF Objektorientert programmering
Programmering i Java versjon september 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
INF1000 (Uke 14) Eksamen V06 Grunnkurs i programmering Institutt for Informatikk Universitet i Oslo Are Magnus Bruaset og Arild Waaler.
Programmering i Java versjon desember 2002 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else.
Programmering i Java versjon Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik.
INF1000 (Uke 4) Mer om forgreninger, While-løkker
Inf1000 (Uke 5) Arrayer, filer og tekst
Kapittel 4 Skriving av klasser. 4.1 Anatomien til ein klasse Så langt har vi brukt ferdige klasser frå klassebiblioteket i Java Vi lagar objekt og brukar.
Kapittel 7 Array (lister og tabellar). 7.1 Arrayelement Array (lister, tabellar) er kjent frå VB Blir brukt til å organisere data når vi har mange dataelement.
Variabler, datatyper og uttrykk
IS-102 Interaksjon med objekter
IN3030 – Effektiv parallellprogrammering Uke 1 2. del, våren 2019
Utskrift av presentasjonen:

Samarbeid mellom objekter Samarbeid mellom objekter side 2 Eksempler på samarbeid, oppussingsprosjektet side 3-4 Metoden finnAntMeter() med sekvensdiagram side 5-7 Samarabeid mellom objekter av samme klasse side 8-9 Oppussingsprosjektet, menystyrt program side 10-13 Flere referanser til samme objekt side 14-18 Argumentoverføring side 19-20 versjon 2000-08-15 Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Samarbeid mellom objekter I det virkelige liv samarbeider objekter hele tiden for å løse oppgaver. Eksempler: Kari lager te ved å legge en tepose i koppen, og helle vann fra vannkokeren over teposen. Tepose og vann samarbeider. Elisabeth legger en CD i CD-spilleren og starter den. CD-spilleren må samarbeide med CD’en for å lage musikk. I et program samarbeider objekter i et klient-tjener-forhold, der et klient-objekt sender meldinger til et tjener-objekt. Eksempler på meldinger som et klientobjekt kan sende: minCDspiller.spill(”De fire årstidene”); vannkoker.hellVann(kopp); Et klientobjekt kan sende meldinger til objekter som det har tilgang til, f.eks. lokale variabler, objektvariabler og parametre. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Klassediagram, oppussingsprosjktet Flate Belegg Maling Tapet navn lengde bredde navn pris breddePåBelegg navn pris antStrøk antKvmPrLiter navn pris lengdePrRull breddePrRull fra side 88 finnNavn finnLengde finnBredde finnAreal finnOmkrets finnNavn finnPrisPrM finnBredde finnAntMeter finnTotalpris finnNavn finnPrisPrLiter finnAntStrøk finnAntKvmPrLiter finnAntLiter finnTotalpris finnNavn finnPrisPrRull finnLengde finnBredde finnAntRuller finnTotalpris Et objekt av klassen Belegg må samarbeide med Flate-objektet for å kunne beregne hvor mange meter belegg som trengs for å dekke flaten. Maling- og Tapet-objekter må også samarbeide med flateobjektet for å beregne henholdsvis antall liter og antall ruller. Kildekode til klassene: Flate, side 89, Belegg og Tapet, side 178-179. (Maling, løsning til oppg. 2 s. 185.) Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Melding til belegget: Hva koster det å dekke flaten med deg? Eksempel på samarbeid class BeleggKlient { public static void main(String[] args) { Flate flaten = new Flate("Berits golv", 5, 6); Belegg belegget = new Belegg("Vegg-til-vegg teppe", 243.50, 5); double antMeter = belegget.finnAntMeter(flaten); double pris = belegget.finnTotalpris(flaten); System.out.println("Du trenger " + antMeter + " meter, pris kr. " + pris); } klienten lager to objekter Melding til belegget: Hvor mange meter trengs det av deg for å dekke flaten? Melding til belegget: Hva koster det å dekke flaten med deg? Utskrift fra programmet: Du trenger 6.0 meter, pris kr. 1461.0. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Metoden finnAntMeter() public double finnAntMeter(Flate enFlate) { double lengdeFlate = enFlate.finnLengde(); double breddeFlate = enFlate.finnBredde(); int antBredder = (int)(lengdeFlate / breddePåBelegg); double rest = lengdeFlate % breddePåBelegg; if (rest >= grense) antBredder++; return antBredder * breddeFlate; } Metodekallet: double antMeter = belegget.finnAntMeter(flaten); Sammen med meldingen sendes en referanse til flaten (argumentet). På denne måten får metoden tilgang til flate-objektet hos klienten. Metoden kan dermed sende meldinger til dette objektet. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Et sekvensdiagram viser hvordan samarbeidet skjer ”klient” understrekning betyr objektnavn klienten lager en flate og et belegg klienten ber belegget beregne antall meter som trengs til flaten belegget spør flaten om lengde og bredde og kan deretter beregne antall meter som trengs new flaten new belegget melding sendes finnAntMeter(flaten) finnLengde() Gjør oppgave 1 side 184. finnBredde() objektet er i aktivitet livslinjen til objektene retur fra melding Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Metoden finnTotalpris() public double finnTotalpris(Flate enFlate) { return finnAntMeter(enFlate) * pris; } Metodekallet: double pris = belegget.finnTotalpris(flaten); Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

To objekter av samme klasse samarbeider Eksempel: Å sammenligne arealene til to flater. Flate flate1 = new Flate("A", 5, 4); Flate flate2 = new Flate("B", 4, 4); int resultat = flate1.sammenlignAreal(flate2); if (resultat < 0) System.out.println(flate1.finnNavn() + " er minst."); else if (resultat > 0) System.out.println(flate2.finnNavn() + " er minst."); else System.out.println("Flatene er like."); Metoden sammenlignAreal() i klassen Flate ser slik ut: public int sammenlignAreal(Flate denAndreFlaten) { final double toleranse = 0.00001; double areal1 = finnAreal(); double areal2 = denAndreFlaten.finnAreal(); if (Math.abs(areal2 - areal1) < toleranse) return 0; else if (areal1 < areal2) return -1; else return 1; } Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

To Flate-objekter samarbeider om å finne ut hvem som er størst ”klient” new flate1 klienten lager flate1 og flate2 klienten ber flate1 sammenligne seg med flate2 flate1 spør seg selv hvilket areal den har, deretter spør den flate2 hvilket areal den har så kan flate1 sammenligne arealene og returnere resultatet new flate2 sammenlignAreal(flate2) finnAreal() finnAreal() Gjør oppgave 3 side 185. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Å lage et menystyrt program Skal beregne materialbehov (tapet, maling eller belegg) for en flate. skriv instruksjoner til brukeren la brukeren velge fra meny [valg == avslutt] [valg != avslutt] utfør valgt oppgave la brukeren velge fra meny String[] alternativer = {"Tapet", "Maling", "Belegg", "Avslutt"}; int valg = gui.velgFraEnkeltvalgListe("Oppussing", "Velg et alternativ:", alternativer); Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Hvilke klasser vil programmet bestå av? Klassene Flate, Belegg, Maling og Tapet må være med. Klassen JavabokGUI hjelper oss med å lese inn tall og tekst. Vi trenger en klasse som tar ansvaret for oppgavene i aktivitetsdiagrammet: Skriv brukerinstruks, dvs. kort orientering om hva programmet gjør, og hvordan det brukes. La brukeren velge fra en meny. Utfør den valgte oppgaven. For å finne ut om vi trenger flere klasser, ser vi på hvordan beregning av f.eks. malingsbehov må foregå: Les inn data om flaten som skal males (navn, lengde, bredde). Lag et objekt av klassen Flate. Les inn data om malingen som skal brukes (navn, antall strøk, ant. m2/liter). Lag et objekt av klassen Maling. Spør malingsobjektet om hvor mye maling som trengs for å dekke den gitte flaten. Skriv ut svaret i utskriftvinduet. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Klassen LesDataGUI Punkt 1 og 3 genererer mange meldinger til gui Þ mange linjer programkode Þ manglende oversikt Punkt 1 og 2, og punkt 3 og 4, er relativt generelle oppgaver som kan tenkes å være nyttige i andre sammenhenger. Velger å lage en klasse LesDataGUI som tar seg av innlesing på ”lavt nivå”, og lager objekter. ProsjektKap7GUI LesDataGUI gui: JavabokGUI detaljGui: LesDataGUI alternativer[1..* ]: String gui: JavabokGUI visInstruksjoner() gjørValg(): int utførMenyvalg(valg: int) lesOgLagFlate lesOgLagTapet lesOgLagMaling lesOgLagBelegg Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Vis kildekoden, programlistene 7. 2 og 7 Vis kildekoden, programlistene 7.2 og 7.3 (side 190-193) Gjør oppgave 2 side 189. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Flere referanser til samme objekt Samarbeid mellom objekter fører ofte til at vi får flere referanser til det samme objektet. Kan lett miste oversikten dersom disse referansene er i forskjellige metoder eller til og med i forskjellige klasser. Hvilke problemer kan oppstå? To konkrete tilfeller: En tilgangsmetode får, via parameterlisten, tilgang til et objekt som “tilhører” klienten. En objektvariabel refererer til et objekt som den har fått via parameterlisten til en konstruktør eller en mutasjonsmetode. Objektet ble opprettet hos klienten. Vi skal se eksempler på disse to tilfellene. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

En referansetype som parameter til en tilgangsmetode Belegg teppet = new Belegg(”Høstgrå”, 233.50, 5.0); Flate mittGolv = new Flate(”Annes golv”, 3.5, 4.2); ”Høstgrå” 233.50 5.0 Vi får en ny referanse til golv-objektet teppet ”Annes golv” 3.5 4.2 mittGolv enFlate double antMeter = teppet.finnAntMeter(mittGolv); public double finnAntMeter(Flate enFlate) { double lengdeFlate = enFlate.finnLengde(); double breddeFlate = enFlate.finnBredde(); …… } Hva skjer ved kallet på metoden finnAntMeter()? Bak kulissene: Flate enFlatemetode = mittGolvklient; Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

En referansetype som parameter til en tilgangsmetode, forts. Hva kan skje inne i finnAntmeter()? Dersom klassen Flate er mutabel, kan metoden endre på datainnholdet i Flate-objektet - et objekt som ”tilhører” klienten. Utgangspunkt: ”Annes golv” 3.5 4.2 mittGolv (klienten) enFlate (parameter i metoden finnAntMeter()) Hva kan skje inne i metoden: enFlate.settLengde(5.7); ”Annes golv” 3.5 5.7 mittGolv (klienten) enFlate Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

En objektvariabel refererer til et objekt som er laget hos klienten Vi utvider klassen Flate med opplysninger om belegg. Ny konstruktør: public Flate(String startNavn, double startLengde, double startBredde, Belegg startBelegg) { navn = startNavn; lengde = startLengde; bredde = startBredde; belegg = startBelegg; } Klientprogrammet lager objekter: Belegg teppet = new Belegg(“Høstgrå”, 233.50, 5.0); Flate mittGolv = new Flate(“Annes golv”, 3.5, 4.2, teppet); Alternativt kan vi la flate-objektet lage en kopi av belegg-objektet: belegg = new Belegg(startBelegg.finnNavn(), startBelegg.finnPris(); startBelegg.finnBredde()); Nå vil klienten og objektet ”mittGolv” ha hver sin kopi av teppe-objektet. referanse hos tjenerobjektet mittGolv referanse hos klienten Høstgrå 5.0 233.50 teppet belegg Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Flere referanser til samme objekt, konklusjon Reduser antall klasser som har tilgang til et objekt - minimal kobling mellom klassene. Vurder å bruke immutable klasser. I stedet for å endre et objekt, lager man heller et nytt som er en kopi av det opprinnelige. (Eksempel: klassen String) Flere klasser kan jobbe med hver sin kopi av et objekt, men dette er sjelden i samsvar med den virkeligheten man modellerer. Vi må vite hva vi gjør, og vi må dokumentere det godt. Gjør oppgave 1 side 197. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Argumentoverføring Vi har sett at en metode kan forandre på et objekt som ”tilhører” klienten, dersom dette objektet er argument til metoden. Kan en metode, på tilsvarende måte, forandre på en variabel av en primitiv datatype? Eksempel, utvidelse av klassen Belegg: public void settPris(double nyPris) { pris = nyPris; nyPris = 0.0; } På klientsiden: Belegg belegget = new Belegg( "Vegg-til-vegg teppe", 243.50, 5); double nyPris = gui.lesDesimaltall("Vegg-til-vegg teppe", "Ny pris: "); belegget.settPris(nyPris); Hos klienten før kallet: ”Vegg-til-vegg teppe” 243.50 5 belegget 189.50 nyPris Ved kallet på settPris() skjer følgende bak kulissene: double nyPrismetode = nyPrisklient; 189.50 Metoden får sin egen variabel: nyPris 0.0 Metoden nullstiller denne variabelen: Konklusjon: Ingen endringer hos klienten. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.

Sammendrag, overføring av argumenter ved metodekall I et metodekall overføres alltid verdiene til argumentene. Parametrene er å betrakte som en metodes lokale variabler, og i metodekallet får de verdi lik verdien til argumentet. To typer parametre: Parameteren er av en primitiv datatype: Metoden jobber med en variabel som har argumentverdien som startverdi. Dersom metoden endrer verdien til denne variabelen, berører ikke dette argumentet i det hele tatt. Parameteren er en referanse: Metoden jobber med en referanse som har argumentverdien som startverdi, det vil si at metoden og klienten har hver sin referanse til det samme objektet. Dersom metoden gjør endringer i objektet, vil dette selvfølgelig dermed også gjelde det objektet som argumenter peker til, ettersom det er det samme objektet vi snakker om. ”Tak” 3 5 argumenter flaten Kall: etObjekt.gjørNoe(10, flaten); tall 10 enFlate Metode: void gjørNoe(int tall, Flate enFlate) { …. } parametre Gjør alle oppgavene side 200. Kun til bruk i tilknytning til læreboka ”Programmering i Java” skrevet av Else Lervik og Vegard B. Havdal, Stiftelsen TISIP og Gyldendal Akademisk 2000. ISBN 82-417-1132-8.