Oversikt (for deg som ikke er helt sikker på å få A) Inf1000 uke 12 4.nov Sjekkliste forts. variabler, typer og tilordning

Like dokumenter
INF1000 Forelesning 9. Hashmap Eksempel: Flyreservasjon

HashMap. INF1000 Forelesning 9. Ulike versjoner i Java 1.4 (gammel) og Java 1.5/1.6 av HashMap. Objekter lagres med en søkenøkkel

Inf1000 uke 5 18.sept. 2007

INF1000: noen avsluttende ord

Teste om to tekster er like. Inf1000 uke 6 26.sept Alfabetisk ordning. Inneholder en tekst en annen? Litt om tekster Metoder

INF1000: noen avsluttende ord

En klasse er noe - en metode gjør noe (! / # <= (! * +!! ",-' %. "- -/ %.!#) )! " 0'%! * *$! "1-)) '' % '. 22!'( 7/ /! * 2 2! "*"% 8"%% 9 - -!

Råd 1: Programmer ovenfra ned. INF1000 Uke 10. Gruppering etter eier. Velg datastruktur etter hva som skal gjøres!

INF1000 Uke 10. Hvordan gripe an et stort problem? 5 råd Noen eksempler du kan overføre til Oblig 4 Oblig 4 kort oversikt Et større programeksempel

s 678 * Hvordan designe og programmere objektorientert * Støtte til oppstart på Oblig 4: Jobbe frem eget forslag til datastruktur

INF 1000 høsten 2011 Uke 10: 25. november

Blokker og metoder INF1000 (Uke 6) Metoder

Innhold uke 4. INF 1000 høsten 2011 Uke 4: 13. september. Deklarasjon av peker og opprettelse av arrayobjektet. Representasjon av array i Java

Uke 8 - Oppramstyper, HashMap og Innstikksortering, litt javadoc. 17. oktober 2013, Arne Maus Inst. for informatikk, UiO

Oppramstyper, HashMap og Innstikksortering, litt. 6. oktober 2009, Arne Maus Inst. for informatikk, UiO

Oversikt. INF1000 Uke 5. Hva er for-løkker - repetisjon. Spørsmål forrige uke. Svar på spm. fra forrige uke. Litt mer om arrayer.

INF Forelesning oppsummering forts. Et meget enkelt banksystem. Oppsummering om klasser, objekter, pekere og.

Mer om arrayer Metoder

INF1000 (Uke 5) Mer om løkker, arrayer og metoder

INF1000: Forelesning 7

INF1000 (Uke 6) Mer om metoder, tekster

INF1000: Forelesning 7. Konstruktører Static

Forelesning inf Java 4

Rep: Metoder. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. 3 typer variable: Klassevariable. Java-programmene så langt i kurset:

i=0 Repetisjon: arrayer Forelesning inf Java 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker 0*0 0*2 0*3 0*1 0*4

Uke 7 - Objekter, klasser og pekere (+ litt først om args[])

INF1000 : Forelesning 4

i=0 i=1 Repetisjon: nesting av løkker INF1000 : Forelesning 4 Repetisjon: nesting av løkker Repetisjon: nesting av løkker j=0 j=1 j=2 j=3 j=4

INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen

Kort repetisjon av doble (nestede) løkker Mer om 1D-arrayer Introduksjon til 2D-arrayer Metoder

INF1000 (Uke 6) Mer om metoder, tekster

Orakeltjeneste på Abel Hjelp til Obligatorisk oppgave 2. INF1000 (Uke 6) Mer om metoder, tekster. Rep: Metoder. Rep: Metoder

for (int i=0; i<3; i++) { for (int j=0; j<5; j++) { System.out.print(i*j); System.out.println();

Praktisk informasjon. I dag. Repetisjon: While-løkker. INF1000 (Uke 5) Mer om løkker, arrayer og metoder

1. Separatorer (skilletegn) i easyio

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

INF1000: Forelesning 6. Klasser og objekter del 1

INF1000: Forelesning 4. Mer om arrayer Metoder

Praktisk informasjon. Repetisjon: While-løkker. I dag. INF1000 (Uke 5) Mer om løkker, arrayer og metoder. Oblig 2 er lagt ut

MER OM ARRAYER. INF1000: Forelesning 4. Anta at vi ønsker å lagre en liste med navnene på alle INF1000-studentene:

Oversikt. INF1000 Forelesning 6. Variable Deklarasjon. Variabel en plass i lageret int radius;

Oblig 4Hybelhus litt mer tips enn i oppgaven

Eksamen høsten 2003 Den store bøygen i INF1000 er de obligatoriske oppgavene.

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

Forelesning inf Java 5

Forelesning inf Java 5

Oblig 3 to versjoner. INF Forelesning 8: Objekter, klasser og pekere. Verden består av mange objekter: noen ganske like, andre ulike

Objekter. Uke 8 - Objekter, klasser og pekere. Verden består av mange objekter, noen ganske like, noen ulike. Klasser og objekter i verden

Uke 9 INF okt 2012 Om separatorer I easyio, Eliza (bruk av HashMap), + mer om metoder og klasser. Arne Maus OMS, Ifi, UiO

Repetisjon INF 1000 våren 2006

INF Uke 10. Ukesoppgaver oktober 2012

INF1000: Forelesning 11

UNIVERSITETET I OSLO

Oppgave 1. Oppgave 2. Oppgave 3. Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Oppgave 1. INF1000 Uke 13. Oppgave 2. Oppgave 3. Er dette lovlige deklarasjoner (når de foretas inni en metode)? JA NEI

Prøveeksamen i INF1000. Ole Christian og Arne. 23. november 2004

Oblig 3 tips litt mer tips enn i oppgaven

Mål for INF1000. Repetisjon INF 1000 våren Representasjon av data. Programvareutvikling - oversikt

INF1000: Forelesning 11. Oppgave 2. Oppgave 1. Husk å melde deg på prøveeksamen i INF1000! Ole Christian Lingjærde 7.november 2006

Repetisjon. INF gruppe 13

UNIVERSITETET I OSLO

Hva er en metode. Hva skjer når vi kaller en metode

UNIVERSITETET I OSLO

Uke 7 Mer om Objekter, klasser og pekere; 27. Sept og 4. okt. 2011, Arne Maus Inst. for informatikk, UiO

Oblig4 - forklaringer. Arne og Ole Christian

Litt mer om uttrykk: ++ og -- INF1000 : Forelesning 4. Oppgave. Blokker. 0 udefinert udefinert. Alternativ 2 Postfiks-operator

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

Inf1000 (Uke 7) Objekter, klasser og pekere

De neste ukene. INF1000 Uke 12. Prøveeksamen. Nå - Prøveeksamen. Forelesning om IT og samfunn neste uke (13/11).

UNIVERSITETET I OSLO

Et meget enkelt banksystem

Uke 7 Mer om Objekter, klasser og pekere;

Uke 7 Mer om Objekter, klasser og pekere; UML. 10. okt. 2013, Arne Maus Inst. for informatikk, UiO

(MVC - Model, View, Control)

Uke 7 Mer om Objekter, klasser og pekere;

Oblig 3 tips litt mer tips enn i oppgaven

Oversikt. En del repetisjon. Noen generelle råd INF1000 Uke 10 Gjennomgang av et eksempel. Kunstig intelligens? INF1000-seminar

UNIVERSITETET I OSLO

(! )! #!! *#+,$&!! &#$

3 #$ *#+,$&!! &#$ (! )! #! 6 &#)%#. / 5$ #%#.67 / "## #&! %# # & #!!& %&$ # $!!!!# $#

UNIVERSITETET I OSLO

Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.

2 Om statiske variable/konstanter og statiske metoder.

UNIVERSITETET I OSLO

Inf1000 uke sept 2011

Gjennomgang av en tenkt eksamensoppgave

INF 1000 høsten 2011 Uke september

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

INF1000 undervisningen INF 1000 høsten 2011 Uke september

Oblig4 - forklaringer. Arne og Ole Christian

Oblig4: Komme igang. INF1000 Uke 11. Filer Vi skal lese data fra to filer og analysere dem (Stasjoner-1.txt, Vaerdata-1.txt) Noen generelle tips

Innhold. INF1000 (Uke 11) Programmering. Rep: Metoder. Rep: Hva er en metode? Litt repetisjon. To måter å programmere på

UNIVERSITETET I OSLO

Ole Christian Lingjærde, 12. september 2013

Gjennomgang av eksamen H99

Forelesning inf Java 4

INF1000 Metoder. Marit Nybakken 16. februar 2004

Gjennomgang av en tenkt eksamensoppgave

Løsningsforslag til eksamen i INF1000 våren 2006

Transkript:

Oversikt (for deg som ikke er helt sikker på å få A) Repetisjon Inf000 uke 2 4.nov. 2008 Arne Maus, Gruppen for objektorientering, modellering og språk (OMS) Inst. for informatikk, Univ i Oslo Pensumoversikt i store trekk variabler, typer og tilordning inn- og ut-lesning (løkker og if) (tekster) metoder (parametere og retur av verdi) klasser og objekter mengder (array og HashMap) UML IKT og samfunn, Lov om behandling av persondata Sjekkliste Vanlige feil på eksamen Eksamenstips variabler, typer og tilordning En enkelvariabel beskriver én ting/én egenskap Har tre (fem) egenskaper: Et navn En type En verdi (+ en nummerert plass /adresse i lageret) (+ en størrelse i antall bit ) int i ; i = 4; i = i+; i 45 Sjekkliste forts. Bruk av arrayer Hvordan deklarere og opprette en array Hvordan legge inn verdier i en array Hvordan ta ut verdier av en array Hvordan gå gjennom alle verdier i en array Bruk av HashMaper Hvordan deklarere og opprette en HashMap. Hvordan legge nøkkel/verdi inn i en HashMap Hvordan ta ut nøkkel/verdi av en HashMap Hvordan gå gjennom alle nøkler/verdier i en HashMap

Sjekkliste forts. Sjekkliste forts. Bruk av metoder Hvordan kalle på en metode Hvordan lage en metode uten parametre/med parametre uten returverdi/med returverdi Forskjellen mellom elementære typer og klasser elementære typer: int, double, char, boolean,. Kan ikke lage objekter av dem klasser: String, HashMap, etc + våre egendefinerte klasser Kan lage objekter av dem Bruk metoder for å splitte opp koden i mer håndterlige biter lette skrivingen av programmet lette lesingen av programmet lette feilretting av programmet Et java-program består av klasser og metoder En klasse er noe - en metode gjør noe Et stort program må deles opp i mindre deler for: Å greie å få det riktig (sjekke/teste hver del for seg) Dele det opp i logiske biter (ha sammen det som logisk hører sammen) Det er to måter i et Objekt-orientert t programmereings-språk eings sp (som Java) å dele opp programmet: Metoder: Slå sammen noen setninger (tilordninger, while-, for-, deklarasjoner av noen variable) og gi dette et navn. Klasser: Dele opp programmet i de store delene det består av. En klasse inneholder metoder og deklarasjoner og har et navn ( eks: class Bankkunde {.. ) Er en modell av en del av problemet. Vi ønsker en oppdeling som gjør det lettere å programmere: Metoder lager store instruksjoner som er enkle å bruke (eks: sort(), sqrt() ) Klasser deler hele problemet opp i håndtérbare deler. Splitt og hersk! 7 Metoder: Vi deler opp handlingene i programmet i metoder. En metode er da noen vanlige programsetninger som vi setter krøll-parenteser rundt. Metoden gjør det navnet på metoden sier. Vi velger selv navnet på de metodene vi lager. EKS Banksystem: En metode for hver av handlingene: innskudd, uttak, beregnrenter, skrivrapport, Klasser: Vi deler dataene og metodene i programmet opp i deler slik at hver av disse (klassene) tilsvarer en naturlig del av problemet: EKS Banksystem: En klasse for hver av Banken, Kunde, Konto, En klasse er noe, en metode gjør noe 8

Å deklarere en metode Generelt har en metode-deklarasjon følgende form: null, en eller to, eks: public static beskrivelse av hva slags output metoden gir, f.eks. void, int, double, char, modifikatorer returverditype metodenavn (parametre) { instruksjon ; instruksjon 2; et navn som vi velger. instruksjon n; beskrivelse av hva slags input metoden skal ha - gis i form av variabel-deklarasjoner separert av komma Merk at en metode kan kreve input og at den kan returnere en verdi, men ingen av delene er nødvendig. I enkleste tilfelle er det ingen input og ingen output. 9 Å bruke en metode Når vi bruker en metode sier vi at vi kaller på metoden. For å kalle på en metode uten parametre, skriver vi ganske enkelt metodenavn(); For å kalle på en metode med parametre, må vi i tillegg oppgi like mange verdier som metoden har parametre, og ite i'te verdi må ha samme datatype som i'te parameter i metodedeklarasjonen. Eksempel: metodenavn2(34.2, 53, 6); Hvis metoden returnerer en verdi, kan vi velge om verdien skal tas vare på eller ikke når metoden kalles. Eksempel på å ta vare på verdien: int alder = metodenavn3(25.3, 3 52, 7); 0 Bruk av variable og gparametre og variable Eksempel Vi kan ha tre typer variable i en metode: Klassevariable og objektvariable: dette er variable som er deklarert på klassenivå, utenfor metoden. Lokale variable: dette er variable som deklareres inni metoden. Disse er definert fra og med der deklarasjonen gjøres og til slutten av blokken de er deklarert i. Parametre: dette er variable som deklareres i hodet på metoden. Disse er definert i hele metodekroppen. Viktig: ved gjentatte kall på en metode er det et nytt sett med lokale variable og parametre som lages hver gang. class Variable { static int tid = 0; // Klassevariabel public static void main (String[] args) { int intervall = 3; // Lokal variabel Variable vl = neww Variable(); // Lokal variabel vl.øktid(intervall); vl.øktid(intervall); void øktid (int t) { // Parameter tid += t; System.out.println(tid); 2

Verdien til parmeterene kopieres over til metoden Metodekall Når vi kaller metoden (bruker navnet i en annen metode), så oveføres verdienene til de parameterene som ble brukt i kallet slik: public static void main (String[] args) { int i = 7; minmetode(3.4, i +2); Anta at følgende eksekveres: double [] lengde = {..; double total = l.finnsum(lengde); Eksekveringsrekkefølgen: Metoden som kalles: double finnsum(double[] x) { double sum = 0.0; for (int i=0; i<x.length; i++) { sum += x[i]; return sum; double total = l.finnsum(lengde); static void minmetode (double x, int y) { // nå kan x og gy brukes med de verdier de fikk i kallet.. De verdiene som ble brukt ved kallet, blir kopiert over i parameterene før setningene i metoden blir utført. 3 total = 22.05; double[] x = lengde; double sum = 0.0; 0; for (int i=0; i<x.length; i++) { sum += x[i]; return sum; 4 Eksempel på bruk Oppsummering om metoder import easyio.*; class Lengde { public static void main (String[] args) { Out skjerm = new Out(); Lengde l = new Lengde(); double[] lengde = {2.3, 5.22, 3.6, 2.33, 8.6; double total = l.finnsum(lengde); skjerm.out("samlet lengde: "); skjerm.outln(total, 2); double finnsum (double[] x) { double sum = 0.0; for (int i=0; i<x.length; i++) { sum += x[i]; return sum; > java Lengde Samlet lengde: 22.05 5 Deklarasjon (lage metoden) : Man pakker sammen de handlinger som hører sammen (gjør noe sammen) med krøllparenteser, og gir metoden et navn med vanlige parenteser bak navnet. Man må også si om metoden returnere noe: Returnerer ingenting: sett da void foren navnet Returneren en verdi, sett typen til verdien foran navnet ( Eks: int, double, int[],..) Metoden må da si return XXX; et sted i koden og hvor XXX er et uttrykk av den typen metoden skal returnere (eks return i +4;). Hvis metoden bare tilhører klassen, skrives static foran returtypen Hvis metoden trenger noen data som den skal jobbe med for å gjøre jobben, settes de med type inn i parentesen bak navnet Eks: double kvadratrot(double x) {; return Bruk / kall på metoden: Man nevner navnet (i koden til en metode) med evt. parametere: y = 2.0 + kvadratrot(x*3 3.4); 6

Oppsummering om klasser, objekter, pekere og. Verden består av objekter av ulike typer (klasser). Ofte er det mange objekter av en bestemt type. Objekter som er av samme klasse, beskrives med de samme variablene, men vil ha forskjellige verdier på noen av disse. Eks: To bankkonti med ulik eier og kontonummer, men kan f.eks ha samme beløp på saldo (tilfeldigvis) Vi lager OO-programmer ved å lage en modell, en kopi av problemområdet i Javaprogrammet ett objekt i verden gir ett tilsvarende Java-objekt i programmet Objekter kan være av ulik type, og for hver slik type deklarerer vi en klasse i programmet.. oppsummering forts. Et Javaprogram består av en eller flere klasser En klasse er en deklarasjon av data og metoder for ett objekt av klassen. Vi deklarerer pekere til objekter av en bestemt klasse f.eks. class Kurs {.. slik: Kurs kurs4, k2, k; Vi lager objekter fra klassen med new k2 = new Kurs(); Et objekt inneholder en kopi av alle ikke-statiske variable og ikke-statiske metoder i klasse Disse kalles objekt-variable og objekt-metoder Vi får adgang (lese, skrive og kalle metoder) til det som er inni et objekt ved. Operatoren : Vi må ha en peker til et objekt etterfulgt av punktum. s2.adresse ="bokhandelen i Kabul"; s.skrivut(); 7 8 Klasse med 2 konstruktører Oppsummering om klasser. class Student { String navn; Kurs [] minekurs = new Kurs[3]; Student() { minekurs = new Kurs[0]; Student(String navn, Kurs [] k){ this.navn = navn; for (int i = 0; i<k.length; i++ ){ minekurs[i] = k[i]; minekurs[i].antstudenter++; Klasser er oppskrifter for hvordan vi lager objekter med new Vi deklarerer pekere til objekter og bruker operatoren:. Kan ha arrayer av pekere til objekter Klasse- og objektvariable og metoder. Konstruktører er startmetoder med samme navn som klassen, Kalles hver gang vi sier new. UML-diagrammer (Objekt- og Klasse-diagram) gir oversikt og forenkling som skikkelige ingeniører i lager vi tegninger før vi lager systemet t (programmerer) 9 20

Hvordan vi skal tenke oss en HashMap Løp gjennom alle objekter i HashMap Java.5 en HashMap er som en slags dobbelt-array (f.eks bomringbilene) HashMap bomringbilene = new HashMap(); bomringbilene BD 23709 FS 44202 Bil Bil 2 For å løpe gjennom alle objektene i en HashMap, lager vi en oppramsing og låser samtidig det vi skal hente til en bestemt klasse: Iterator <Person> it = h.values().iterator(); Deretter kan vi se på hvert enkelt objekt i HashMap'en ved å gå i løkke: while (it.hasnext()) { Person p = it.next(); System.out.println( Navn: + p.fånavn()); AS 65432 Bil 3 Vi kan også i.5 nytte den nye for-løkka som automatisk lager en iterator nøkler verdier (keys) (values) for (Person p: h.values()) { System.out.println( Navn: + p.fånavn()); 2 22 Metoder i HashMap Metode Eksempel Beskrivelse put h.put(nøkkel, objekt); Legg inn objekt med gitt nøkkel get -.4 Person p = (Person) h.get(nøkkel); Finn objekt get -.5 Person p = h.get(nøkkel); remove h.remove(nøkkel); Fjern objekt containskey if (h.containskey(nøkkel)) { // gjør et eller annet Sjekk om nøkkel finnes i tabell values Iterator it = h.values().iterator(); Lag oppramsing av objektene keyset Iterator it = h.keyset().iterator(); Lag oppramsing av nøklene 23 Iterator (oppramsing) Eksempel Iterator it = h.values().iterator(); Iterator it2 = h.keyset().iterator(); hasnext() while (it.hasnext()) { < les neste og gjør noe>; next().5 Person p = it.next(); next().4 Person p = (Person) it.next(); t() Beskrivelse deklararasjon returnerer true hvis flere objekter igjen i oppramsingen Finn neste objekt remove() Person p = it.next(); Fjern siste objekt som if (p.navn.equals( Arne )) ble returnert med it.remove(); next() while (it.hasnext()) { To måter å gå Person p = it.next(); for (Person p2 : h.values()){ gjennom alle verdiene (objektene) i h. 24

import java.util.*; import easyio.*; class Hasheksempel { public static void main(string[] argv) { In tastatur = new In(); HashMap <String,Person> personregister = new HashMap <String,Person>(); System.out.print(ʺAntall personer som registreres : ʺ); int ant = tastatur.inint(); class Person { String navn, adresse, telefonnr; for (int i = 0; i < ant; i++) { System.out.println( Gi neste person ); Person (In tastatur) { Person p = new Person(tastatur); System.out.print("Oppgi ppg navn : "); personregister.put(p.telefonnr, p); navn = tastatur.inline(); System.out.print("Oppgi adresse : "); // Skriv ut alle personobjektene adresse = tastatur.inline(); System.out.print("Oppgi ppg telefonnummer : "); System.out.println(ʺViser alle personerʺ + telefonnr = tastatur.inline(); ʺ(ukjent rekkefølge):ʺ); void skrivdata() { for (Person p: personregister.values() ){ System.out.println("Navn : " + navn); p.skrivdata(); System.out.println("Adresse : " + adresse); System.out.println("Telefonnummer : +telefonnr); String fånavn() { return navn; Eksempel fra boka s.86 Generell løsningsmetode Husk vi skal lage en kopi av virkeligheten i Java-programmet. Finn klassene (hvilke objekter er det i problemet). Dataene som beskriver problemet (hvilke objekter har vi og hvor mange klasser er det?) 2. Finn ut hvilke objekter som eier objekter ( tegn UML diagram). Lag pekere (enkle pekere, arrayer eller HashMap er) som binder systemet sammen 3. Finn ut hva systemet skal gjøre = metoder vi skal ha.. Finn på et navn på hver av dem foreløpig uten kode inni {. 4. Plasser metodene (og andre datafelter) i de klassene de naturlig hører hjemme 5. Finn ut hvordan vi skal kjøre programmet anta at vi har laget en klasse som er selve systemet. Lag et objekt av XXSystem (fra main) 2. I konstruktoren leser du inn file(ne) i systemet og lager alle objektene som selve Systemet eier for eksempel Et hybelhus Utsyn med sine 2 hybler. 3. Kall en kommandoløkke() metode i System.et 4. Skriv ut nytt innhold av filer når kommandoløkke() er ferdig 5. Ferdig! 6. Lag et kjørende system med (bare) tomme metoder 7. Programmer hver metode for seg, test 26 Eksempel: Flyreservasjon Klasser Egenskaper Prosedyerer Vi skal lage et system for et flyselskap s som eier e en rekke e fly Systemet skal holde orden på alle selskapets flyvninger og reservasjoner (booking) av seter på en flyvning En flyvning har en kode, et avreisested og avreisetid, ankomsttid og en destinasjon, i tillegg til et fly, som har et identifikasjonsnummer Et fly består av seterader, med seter Oppgavene systemet skal løse er å lese inn en beskrivelse av alle flyene, med antall seter, klasser på de forskjellig seteradene, osv Så skal man kunne reservere seter, avbestille og skrive ut en oversikt over flyets seter, med klasse og om det er ledig eller ikke Eksempel: Flyreservasjon Klasser Egenskaper Prosedyerer Vi skal lage et system for et flyselskap l som eier en rekke fly Systemet skal holde orden på alle selskapets flyvninger og reservasjoner (booking) av seter på en flyvning En flyvning har en kode, et avreisested og avreisetid, ankomsttid og en destinasjon, i tillegg til et fly, som har et identifikasjonsnummer Et fly består av seterader, med seter Oppgavene systemet skal løse er å lese inn en beskrivelse av alle flyene, med antall seter, klasser på de forskjellig seteradene, osv Så skal man kunne reservere seter, avbestille og skrive ut en oversikt over flyets seter, med klasse og om det er ledig eller ikke

UML-diagram - flyreservasjon Systemet Systemet FlySelskap? import easyio.*; import java.util.*; * Fly * Seterad * Flyvninger fra til Sted * Booking class Systemet { public static void main (String[] args) { String s = Fly.txt"; String s2 = Bestillinger.txt"; FlySelskap f = new FlySelskap (s,s2); f.ordreløkke();..7 Sete 29 Flyreservasjon class FlySelskap { HashMap <String,Fly> fly = new HashMap <String,Fly> (); HashMap <Destinasjon, Fly> flyvninger = new HashMap <Destinasjon, Fly> (); Datastruktur FlySelskap(String s, String s2) { lesfly(s); Metoder for å lese fra lesreservasjoner(s2); fil og for å lese inn kommando fra bruker void lesfly(string fnavn) { void lesreservasjoner(string fnavn) { void ordreløkke() { Her kommer det metoder som skal kalles fra ordreløkken FlySelskap Programmere ordreløkken For hver kommando som skal utføres, skal ordreløkken kalle på en passende metode i klassen FlySelskap. For at programmet skal kompilere, sørg for å deklarere alle de metodene som du kaller på fra ordreløkke-metoden. Du kan vente med å fylle inn innholdet i disse metodene, dvs bare fyll inn en utskriftssetning i hver av metodene. Eksempel: hvis ordreløkken kaller på metoden visflyvning(), så deklarerer du samtidig denne dummy-metoden i klassen FlySelskap : void visflyvning() { void visflyvning() { System.out.println( Metoden visflyvning utført );

Skrive ut en flyvning Programmer metodene som kalles fra ordreløkken Eksempel (i klassen FlySelskap): void visflyvning() { System.out.println( Flyvning: ); String flightkode = tast.inline(); Flyvning flight = <finn flyvingen ved oppslag i flyvninger>; flight.skrivut(); Oppdraget delegeres videre til en metode i Flyvning-objektet som er aktuelt. Flyvning Skriver ut litt informasjon om flyvningen og delegerer så ansvaret for utskrift av oppsettet i flyet til klasen fly. class Flyvning { String flightkode; String avreisested; String destinasjon; Fly fly; void skrivut() { System.out.println( println( Flight: + flightkode); System.out.println( Fra: + avreisested); System.out.println( Til: + destinasjon); fly.skrivut(); Oppdraget delegeres videre til en metode i Fly- objektet som er aktuelt. Fly Skriver ut informsjon on flyet og delegerer videre til seteradene, som igjen delegerer videre til setene. class Fly { String flykode; Seterad[] seterader; int skrivut() { System.out.println( Flykode: + flykode); for(int i=0; i<seterader.length; i++){ seterader[i].skrivut(); skrivut(); Og Fly delergerer videre class Flyvning { skrivut() { fly.skrivut(); class Fly{ skrivut() { class FlySelskap { void ordreløkke() { visflyvning(); void visflyvning() { flight.skrivut(); Vi har ett objekt av denne. Vi har flere objekter av disse.

Eksamenstips. IT og samfunn: Eksamensoppgave Inf 000 er et kurs i objektorientert programmering, ikke primært i Java: Små syntaktiske feil, småfeil i metodenavn, osv spiller mindre rolle Ville programmet ditt vært et nyttig første forsøk å utsette kompilatoren for? Java-konstruksjoner som ikke er forelest eller som ikke har vært tatt opp i oppgaver vil dere ikke få behov for på eksamen. En viss personlig frihet i hvordan man tegner UML-diagrammer (klasse/objekt-diagrammer) kt er tillatt. tt Men meningen må komme klart fram! Ikke slurv når du tegner dem, det straffer seg siden når du skal bruke dem. Er det det edb-baserte baserte (person-) register du har blitt bedt om å lage lovlig? - er dette sensitiv informasjon ( 2) - har vedkommende som er registrert gitt samtykke ( 8-9) - er registreringen saklig begrunnet ( 8-9) - nyttes innsamlete data til et annet formål uten samtykke( ) - kreves det konsesjon( 33) - er det bare meldeplikt ( 3-32) - er det f.eks tillatt å lage egne registre ut fra offentlig tilgjengelig informasjon? INF000 38