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

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

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

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

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

Et meget enkelt banksystem

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

Uke 7 Mer om Objekter, klasser og pekere;

Inf1000 (Uke 7) Objekter, klasser og pekere

Uke 7 Mer om Objekter, klasser og pekere;

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

Uke 6 og 7 - Objekter, klasser og pekere; 23. og 30. sept. 2008, Arne Maus Inst. for informatikk, UiO

Uke 6 og 7 - Objekter, klasser og pekere; 22. og 29. sept. 2009, Arne Maus Inst. for informatikk, UiO

Uke 6 og 7 - Objekter, klasser og pekere; Verden består av mange objekter, noen ganske like, noen ulike

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

Null, && og søppeltømmeren. INF Forelesning 9: Mer om objekter og klasser, tips til oblig 3. Eksempel Student med én konstruktør

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

Stringer er ordentlige objekter. Uke 8 - Mer om objekter og klasser. Tips Oblig3. Eksempel Student med en konstruktør

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling. Repetisjon om filbehandling UML

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

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

( & ( &/ 2& , )-. &* &/ ),* 0, &/ 2 ) *

Inf1000 (Uke 9) UML og enda mer om klasser

Hva skal vi lære i dag? Inf1000 (Uke 9) UML og enda mer om klasser. Hvilke lesemetoder finnes? Filbehandling

! " ##$ % 4 2, &/ ( & +, )-. &* &/ ),* 0, 1 1 ( &/ 2& &, & &/ &,, &/" 2 &/ 2 ) *

INF1000: Forelesning 6. Klasser og objekter del 1

Inf1000 (Uke 7) Objekter, klasser og pekere

Oversikt. Inf1000 (Uke 7) Objekter, klasser og pekere. Løkker gjør setninger flere ganger. Variable, deklarasjon og tilordning

OBJEKTER SOM EN PROGRAMMERINGS-TEKNIKK

Først: Parametre til oppstart av programmet, Hvordan kan vi bruke args[]? String [] args. Parameteren args[] blir laget av deg

Oversikt. Inf1000 (Uke 7) Objekter, klasser og pekere. Variable, deklarasjon og tilordning. Løkker gjør setninger flere ganger

Repetisjon. INF gruppe 13

INF1000: Forelesning 7. Konstruktører Static

26. Sept. 2012, Arne Maus Inst. for informatikk, UiO

Verden består av mange objekter, noen ganske like, noen ulike

Inf1000 (Uke 9) UML og enda mer om klasser

INF1000: Forelesning 7

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

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

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

Oblig 4Hybelhus litt mer tips enn i oppgaven

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

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

Løsningsforslag til eksamen i INF1000 våren 2006

(MVC - Model, View, Control)

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

Løsningsforslag ukeoppg. 9: okt (INF Høst 2011)

Eksamensrelevant repetisjonsstoff. Deklarasjoner og variabeltyper. Konstanter

INF Uke 10. Løsningsforslag ukesoppgaver oktober 2012

Oblig 3 tips litt mer tips enn i oppgaven

LC191D Videregående programmering Høgskolen i Sør-Trøndelag, Avdeling for informatikk og e-læring. Else Lervik, januar 2012.

INF Uke 10. Ukesoppgaver oktober 2012

Oppgave01.java class Bongo { 2 public static void main(string[] args){ 3 int[][][]bongo = new int[2][3][4]; 4 5 // SVAR: 24 6 } 7 } 8

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

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Gjennomgang av en tenkt eksamensoppgave

Forelesning inf Java 5

Forelesning inf Java 5

Gjennomgang av en tenkt eksamensoppgave

Gulbrand Grås husleiesystem

Dagens tema Kapittel 8: Objekter og klasser

Generelt om oblig 3. Oppgaveteksten kort sammendrag. Deloppgaver/menyvalg 15/03/2010. INF1000 Forelesning 9

Løsningsforslag INF desember 2007

UNIVERSITETET I OSLO

UNIVERSITETET I OSLO

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag

Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag

Forelesning inf Java 4

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

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

UNIVERSITETET I OSLO

Løsningsforslag, inf101, våren 2001

PRØVEEKSAMEN (rettet versjon 27/11)

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

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 er en metode. Hva skjer når vi kaller en metode

Gjennomgang av eksamen H99

Tre måter å lese fra terminal. Java 4. Eksempel. Formatert utskrift til skjerm

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

import java.io.*; import java.util.*; import javagently.text;

Obligatorisk oppgave nr. 3 (av 4) i INF1000, V-2007

Sensur-veiledning INF1000 h 2013 (fasit) am - 6. des. 2013

Innlesning fra tastatur med easyio. INF1000 høst Vi må først skrive i toppen av programmet: import easyio.*;

Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen

Blokker og metoder INF1000 (Uke 6) Metoder

INF1000: noen avsluttende ord

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

Løsningsforslag ukeoppg. 7: okt (INF Høst 2010)

INF1000 (Uke 6) Mer om metoder, tekster

Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7

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

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

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

Lenkelister. Lister og køer. Kopi av utvalgte sider fra forelesningen.

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

INF1000 (Uke 4) Mer om forgreninger, While-løkker

INF1000 (Uke 6) Mer om metoder, tekster

INF1000 : Forelesning 4

I dag INF1000 (Uke 4) Mer om forgreninger, While-løkker. Tre måter å lese fra terminal. Repetisjon. Mer om forgrening While-løkker

Transkript:

"$ $ %&!$' (! )!!! *+,$&!! &$! -$&! 3 $ * $ $ *$.!/!! - & $$ $ %1$12!2! % * %12!2 $$ $!!! %$!$ *$3 ( 4!$ 1! %4!! 5!!!$!% $ & $.!!!!!$!!/ 6 &)%. / 5$ %.67 / " &! % &!!& %&$ $!!!! $!$!!!!%$ + 3! $ 8 $! 9./!!&& $ $

"!. /$' " &! %$! % 4!& 4& &+ :!!$ 4&!&!! :!! $! %.&$!% %!$ /! - $! % ;!! <&! $! 4 + - &.&!!&$/!!&$ $!$!$ &! $ & & $4!&$! & (+"$ $'* + / (*$!! $ $ $. $!!$&/ / (!$!$)!!%$.!$ $!! $4/! $4!!!&% $ ;!! "$! <&!!& $ 4! $)!$ &!!&$8 + (!!&$!$4$)!!!$2$2.!!!!! &!/ (+" $% *$ $! 3$!$ class - $& $$!!$ -!$& new,%$!!! class Student { String navn, adresse; class StudentRegister { public static void main(string args []) { Student s1, s2; s1 = new Student(); s2 = new Student();

"!!' ; (!&$! %$ $!$ $ &static 3!1!1!!$ 7 & 5!$$ &static!$ 5!$$&static!$!$.!!$/ class Student { String navn, adresse; class StudentRegister { public static void main(string args []) { Student s1, s2; s1 = new Student(); s2 = new Student(); ( %$$ % $ %$22.= / - $!2 2 $ $ ;!! >& %$& $!./ - $!!&,$ %!$./)! &%$ 8,$ )$!$ $!&! %$$$!!!%$ $5 %*$3!! ( %$ 5!! $!$ <!$ (!+ *$3;5!( $!?5@?5: :,63 <& %!$new% & & 8!$! %$& $!' -.!/,!% & (!% &!$ 8 ;!!2 2 2 2 +7& *$ s1.navn = "Ola N";

class Student { String navn, adresse; void skrivut() { System.out.println("Student med navn:" + navn+ ", adr:" + adresse); class StudentRegister { public static void main(string args []) { Student s1, s2; s1 = new Student(); s1.navn = "Ola N"; s1.adresse = "Storgt. 12, 1415 Nordby"; s2 = new Student(); s2.navn = "Åsne S"; s2.adresse ="bokhandelen i Kabul"; s1.skrivut(); s2.skrivut(); A *$@ *$!$+<$+*<$ *$!$+B*$+%$ 3!!! -$&. / $!!!!!!$$!!! % $ & $ (+6!$!!!!! 4& $. $ / -!!$&!$!!&$ >!! $ $>!! ) % $!!!! class Kurs { String kurskode; int studiepoeng; (>!& ($ $!$ - $!8 C3DE + Kurs kurs14, k2, k; -!$new k2 = new Kurs(); ( %$!$ 5!$ - &$.!$/ $! $+ s2.adresse ="bokhandelen i Kabul"; s1.skrivut(); void skrivut() { System.out.println("Kurs med kode:" + kurskode+ ", og stp:" + studiepoeng); class KursRegister { public static void main(string args []) { Kurs inf, mat; inf = new Kurs(); inf.kurskode = "INF1"; inf.studiepoeng = 1; inf.skrivut(); mat = new Kurs(); mat.kurskode = "MAT11"; mat.skrivut(); A 3@!$ 3!$ 7 3 3!$$+6+

3.= /! C 3 3!$ 7 $! (?5! 34!!$+*$3 *$@ * C $!$$ * static!$%$ +! $!$ *!$!& $ &$!! class B { A static int i = ; + + double x =.; + + F+F+ class A F+F+ { int k; public static void main ( String[] args) { B b1 = new B(), b2 = new B(); // endre klassevariable (det er bare en felles) System.out.println("b1.i :"+ b1.i+", b2.i:" + b2.i); b1.i = 4; System.out.println("b1.i :"+ b1.i+", b2.i:" + b2.i); // endre objektvariabel (en kopi i hvert objekt) System.out.println("b1.x :"+ b1.x+", b2.x:" + b2.x); b1.x = 2; System.out.println("b1.x :"+ b1.x+", b2.x:" + b2.x); class A2 { int k; // objektvariabel k public static void main ( String[] args) { k = 1; A C +G+ C C C$! CCF =H I class A2 { int k; A C A public static void main ( String[] args) { A2 aa = new A2(); aa.k = 1;

-.! $ /!&!!!&! $* " $Kurs {...!4+ Kurs [] ifikurs; ifikurs = new Kurs[12]; ifikurs[] = new Kurs(); "$2 "!$ 2!!2 "$4 & & 3 class Kurs { String kurskode; int studiepoeng=1; void skrivut() { System.out.println("Kurs med kode:" + kurskode + ", og stp:" + studiepoeng); class KursRegister2 { public static void main(string args []) { String [] kurskoder= {"INF1","INF11", "INF12","INF14","INF15", "INF16","INF17","INF14"; Kurs [] ifi1kurs = new Kurs[8]; for(int i = ; i < kurskoder.length; i++) { ifi1kurs[i] = new Kurs(); ifi1kurs[i].kurskode = kurskoder[i]; ifi1kurs[i].skrivut(); 2 32!$3 "INF1 "INF11 "INF14 ( 3@ A 3@ 3!$$+<,G+ 3!$$+<,J+ (!! - %+ 3 : " % %1 '.$!$/+ < * 6 -!! $$

class Bank{ Konto [] kontiene = new Konto[1]; int antallkonti = ; kontiene // Metoder mangler public static void main (String [] args) {.. class Konto { String navn, adresse; int kontonummer; double saldo =.; 5 3:.%! / // Metoder mangler antallkonti 99 999 Betyr at pekeren peker på ingenting: null Objekter av klassen Konto $ :3.K%!$/ class Bank{ Konto [] kontiene = new Konto[1]; static int kontonummer = 5; int antallkonti = ; In tast = new In(); double suminnskudd() { void nykonto() { int menyvalg() { public static void main (String [] args) { Bank b = new Bank(); b.navn = "BB-Bank"; int valg =; Konto k; class Konto { double kr ; String navn,adresse; do { valg = b.menyvalg(); int kontonummer; switch(valg) {... double saldo =.; while (valg > ); // end main void settinn (double kr) { double spørsvar (String s){ Konto riktigkonto() { // end Bank boolean taut(double kr) { // end class Konto int menyvalg() { System.out.println(" \nvelg funksjon i "+ navn+":"); System.out.println ("1 - ny konto:"); System.out.println ("2 - innskudd:"); System.out.println ("3 - uttak:"); System.out.println ("4 - sum forvaltningskapital\n"); return tast.inint(); public static void main (String [] args) { Bank b = new Bank(); b.navn="bb-bank"; int valg =; Konto k; double kr ; do { valg = b.menyvalg(); switch(valg) { case 1: b.nykonto(); break; case 2 :k = b.riktigkonto(); kr = b.spørsvar("gi innskudd"); k.settinn(kr); break; case 3 :k = b.riktigkonto(); kr = b.spørsvar("gi uttaksbeløp"); if (! k.taut(kr)) System.out.println("IKKE NOK PENGER"); break; case 4:System.out.println(b.navn+ " Sum innskudd:" + b.suminnskudd()); break; while (valg > ); System.out.println("** AVSLUTTER BANKEN ***"); // end main double spørsvar(string s){ System.out.print(s+":"); return tast.indouble(); Konto riktigkonto() { System.out.print("Gi navn til eksisterende konto:"); String s = tast.inword("\n"); for ( int i = ; i < antallkonti; i++) if (kontiene[i].navn.equals(s) )return kontiene[i]; return null; void nykonto() { System.out.print("Gi navn til ny kontoinnehaver:"); String navn = tast.inword("\n"); System.out.print("Gi adresse:"); String adr = tast.inword("\n"); Konto k = new Konto(); k.adresse = adr; k.navn = navn; k.kontonummer= kontonummer++; kontiene[antallkonti] = k; antallkonti++;

// Mini Banksystem 29 sept 24 - am import easyio.*; class Bank{ Konto [] kontiene = new Konto[1]; static int kontonummer = 5; int antallkonti = ; double suminnskudd() { int menyvalg() { public static void main (String [] args) { Bank b = new Bank(); b.navn="bb-bank"; int valg =; do { valg = b.menyvalg(); switch(valg) {... while (valg > ); // end main double spørsvar(string s){ Konto riktigkonto() { void nykonto() { // end Bank class Konto { String navn,adresse; int kontonummer; double saldo =.; void settinn (double kr) { saldo += kr; boolean taut(double kr) { if (saldo >= kr) { saldo = saldo - kr; return true; else return false; // end class Konto * $ * >!%.!&/& $!$$.! $/ <& % % & &$.$ $ &/ * $.$$ * :/ (!& + String s = En fin dag i mai ; ($!!!+ String s = new String( En fin dag i mai ); 3* %$!!$!! $!4 Null, && og søppeltømmeren % %&! & + Student s = hyblene[i][j].leietager ; if (s!= null && s.navn.equals( Ola )) { // her kommer vi bare hvis s peker på et studentobjekt // og navnet i det studentobjektet er lik Ola... " %!+ hyblene[i][j].leietager = null; (! & 44!!8!!! % $ %!!+ 7$!!!!& "$!!!! *! $!$$!!1! 44& $L (& $!! $!! 3$!! 78 $!! $$ % %.!!$!!/. 7$C$$! )/

$!! 6.!$!! $ $ / -! && %&$& - $!$!+ 6./ < + +.)!/ <& &!$$ $! $! (!+(?5! ; ; - 4&!!&%$ $&?5! &!$! $?5- % & +?5 *4.!$$/ * % " % $! 2C?52 <'

3+?5?5! - 4$$.$ '/ - %%!!.?5! & %$!!!$ M C%!?5 %$ import easyio.*; class CD{ String artist, tittel; void skrivut(out u) { u.outln("artist:" + artist + ", Tittel:" + tittel); class CDsamling{ CD [] minsamling = new CD[1]; int antcder = ; public static void main(string args []) { In tast = new In(); Out skj = new Out(); CDsamling e = new CDsamling(); String a; CD c; int valg; do{ skj.outln("velg:"); skj.outln(" 1 - les ny plate (skriv artist platetittel"); skj.outln(" 2 - skriv artist"); skj.outln(" 3 - avslutt"); valg = tast.inint(); switch(valg) { case 1: // les data c = new CD(); e.minsamling[e.antcder++] = c; skj.out("gi artistnavn:"); c.artist = tast.inword("\n"); skj.out("gi tittel:"); c.tittel = tast.inword("\n"); break; case 2: // skriv data skj.out("gi artistnavn:"); a = tast.inword("\n"); for(int i = ; i < e.antcder; i++) if (e.minsamling[i].artist.equals(a)) e.minsamling[i].skrivut(skj); break; case 3: // avslutt skj.out("systemet avslutter"); break; default: // feil skj.out("bare gi verdier: 1-3"); while (valg!= 3); A?5! -+. N 9 +! 9 +, -+. N 9 + 9 +,, -+. N 9 +! +!6 +, -+. N

348!$ (!*$!$4 <&!$new!$!%$!!!.$ / - &!!$ 4!$ $! 45 &!! 4 34 %$ & $!$ 54 %! 34 %% $ - %4!$!&! )! class Student { Kurs [] minekurs = new Kurs[3]; Student(String navn, Kurs [] k){ this.navn = navn; for (int i = ; i<k.length; i++ ){ minekurs[i] = k[i]; minekurs[i].antstudenter++; (!*$!$4 class Student { Kurs [] minekurs = new Kurs[3]; Student() { minekurs = new Kurs[]; Student(String navn, Kurs [] k){ this.navn = navn; for (int i = ; i<k.length; i++ ){ minekurs[i] = k[i]; minekurs[i].antstudenter++; % $!$ 4 >$% $$ : + - %! $%$!!! (+ class A { int antall; A (int antall ){ // end A this.antall = antall;.. A apek = new A(12); -!$. /5 % & 4! $!$!%!

import easyio.*; Konstruktører og this class HybelHus { Hybel [][] hyblene = new Hybel[4][8]; Hybel-objekt Student-objekt (%$!$$ HybelHus(String filnavn) { for (int gang = 1;gang <5; gang++) for (int i = ; i < 8 ; i++){ char b = (char) ('A' +i ); hyblene[gang-1][i] = new Hybel(gang,b); if (new File(filnavn).exists()) {... // end konstriktor void kommandoløkke() {...... hyblene[][].leietager = new Student( Jo ); class Oblig3 { public static void main (String[] args) { HybelHus utsyn = new HybelHus("HaiHus.data"); utsyn.kommandoløkke(); // end main // end class Oblig3 class Student { double saldo; Student(String navn) { this.navn = navn; // end Student class Hybel { Student leitager; int gang; char bokstav; Hybel (int gang, char bokstav){ this.gang = gang; this.bokstav = bokstav; navn = ""+ gang+bokstav; // end Hybel - %*$&!4!! $! %%& %!$!% - 4$8 7 $! &!! $!!!!5!$$ $.!/!%$ $!! class Student { Kurs [] minekurs = new Kurs[3]; Student(){mineKurs = new Kurs[]; Student(String navn, Kurs [] k){ this.navn = navn; for (int i = ; i<k.length; i++ ){ minekurs[i] = k[i]; minekurs[i].antstudenter++;! " $%%% " $%&% '()$%*%! " $%%% " $%&% '()$%*%! void skrivut() { System.out.println("Student med navn:"+ navn+ ",og kurs:"); for (int i = ;i < minekurs.length; i ++) System.out.println(mineKurs[i].kurskode); class Kurs { String kurskode ; int antstudenter = ; Kurs(String k) { kurskode = k;

class StudentRegister2{ public static void main(string args []) { String [] kurskode = {"INF1","INF14","MAT13"; // lag kurs Kurs [] infkurs = new Kurs[3]; for (int i = ; i< infkurs.length; i++) infkurs[i] = new Kurs(kurskode[i]); //lag studenter på informatikk bachelor Student [] stud = new Student[3]; stud[] = new Student("Ola N", infkurs); stud[1] = new Student("Åsne S",infKurs); stud[3] = new Student(); for (int i = ; i< stud.length; i++) stud[i].skrivut();!! 3 %$!$new - $! 3% 3 8!$ 342!$2!$!!! 3% new 7$!!. 3$!/! 4 4!.!!/