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

Like dokumenter
Inf1000 uke 5 18.sept. 2007

Blokker og metoder INF1000 (Uke 6) Metoder

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

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.

Mer om arrayer Metoder

INF1000 (Uke 6) Mer om metoder, tekster

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

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

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

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

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

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

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

Forelesning inf Java 5

Forelesning inf Java 5

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

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

INF1000: Forelesning 4. Mer om arrayer Metoder

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

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

Metodekall. INF1000 Uke 5. Overlasting av metoder. Bruk av arrayreferanser som parametre

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

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

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

Repetisjon INF 1000 våren 2006

Ole Christian Lingjærde, 12. september 2013

Forelesning inf Java 4

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

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

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

Eksamensrelevant repetisjonsstoff. Deklarasjoner og variabeltyper. Konstanter

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

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; }

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

Inf1000 uke sept 2011

Blokker. Uke 4, INF 1000, 13 sept Løkker og arrayer. Eksempel. Deklarasjoner inne i blokker. Institutt for Informatikk Universitet i Oslo

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

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

UNIVERSITETET I OSLO

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

INF1000: noen avsluttende ord

Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr

Inf1000 uke sept 2011

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

Leksjon 6. Objekt. Evt. importsetninger. public class Klasse { Konstruktør. Objektmetoder. Innkapsling (private): set-og get-metoder

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

UNIVERSITETET I OSLO

INF1000 : Forelesning 3

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

UNIVERSITETET I OSLO

INF1000 Metoder. Marit Nybakken 16. februar 2004

UNIVERSITETET I OSLO

Body Mass Index (BMI) INF1000 : Forelesning 3. Ferdig program (forts.) Ferdig program

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

UNIVERSITETET I OSLO

INF1010, 15. januar time. Parametriserte klasser (generiske klasser) Stein Gjessing Inst. for Informatikk Universitetet i Oslo

Løsningsforslag til eksamen i INF1000 våren 2006

UNIVERSITETET I OSLO

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

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

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

To måter å programmere på. Java 12. Programmering med objekter. Statisk programmering

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

Java 4. Mer om easyio Mer om forgreninger Løkker. 7. september 2004

Repetisjon. INF gruppe 13

UNIVERSITETET I OSLO

Eksempel: Body Mass Index (BMI) Forelesning inf Java 3. Ferdig program (første del) Ferdig program (siste del)

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

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr

UNIVERSITETET I OSLO

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

UNIVERSITETET I OSLO

INF1000 Uke 4. Innlesning fra terminal. Uttrykk og presedens. Oversikt

UNIVERSITETET I OSLO

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

Oversikt. INF1000 Uke 1 time 2. Repetisjon - Introduksjon. Repetisjon - Program

INF1010, 21. januar Klasser med parametre = Parametriserte klasser = Generiske klasser

Spørsmål fra forrige forelesning. INF1000 Forelesning 7. Oppførselen til inword()/inint()/etc. Operator-presedens i Java

1. Separatorer (skilletegn) i easyio

INF1000: Forelesning 7

2 Om statiske variable/konstanter og statiske metoder.

INF 1000 Prøveeksamen. 23. november Ole Christian og Arne. Oppgave 1 (10 poeng) Er disse programsetningene lovlige i Java? Oppgave 2 (10 poeng)

Konstruktører. Bruk av konstruktører når vi opererer med "enkle" klasser er ganske ukomplisert. Når vi skriver. skjer følgende:

INF1000 (Uke 15) Eksamen V 04

INF1000 (Uke 15) Eksamen V 04

INF Uke 10. Ukesoppgaver oktober 2012

Løsningsforslag ukeoppg. 2: 31. aug - 6. sep (INF Høst 2011)

Java-kurs. Andreas Knudsen Nils Grimsmo 9th October 2003

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

Forelesning inf Java 5

Forelesningsquiz. Forelesning inf Java 5. Sett dere to (eller tre) sammen og besvar de fire spørsmålene på utdelt ark. Tid: 15 min.

UNIVERSITETET I OSLO

Forelesning inf Java 3

INF1000: Forelesning 7. Konstruktører Static

UNIVERSITETET I OSLO

Transkript:

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

4 ) " % ( '/ * { instruksjon 1 instruksjon 2... instruksjon n 0')-'! ' / $ - '?' ' '! '-' '/!! /. 0'' - ' @ ( ' '! /-'- '! ' 4 ' '-' - -' ) )! ) * modifikatorer metodenavn returtype formelle parametre public static void main (String [] args) {...... metodekropp ( innmat ) ( -'! ) static '- -?! ' static " % main!'-?! A + + = - ) / * mer om denne senere beskrivelse av hva slags output metoden gir, f.eks. void, int, double, char,... B!'= ''! C!! ' ' metodenavn() modifikatorer returverditype metodenavn (parametre) { instruksjon 1 instruksjon 2... instruksjon n et navn som vi velger 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. C!!! ' ' - D '! - =D ) ( * metodenavn(34.2, 53, 6) E' ' '' ' '!! (!! '! ' * int alder = metodenavn(25.3, 52, 7)

4'!,' ( '"% ( ) 56! ='! B!! -' ' / ' C'! int,void,double,string.. -' =' "%' B! 2 * E' ' '! =! -/= E' ' ' ' ' ' '' 'F 9! = 2-2 / 2-2 < C/ ' =! * static void skrivmeny () { System.out.println( Lovlige kommandoer: ) System.out.println( -------------------- ) System.out.println( 1 Registrer ny student ) System.out.println( 2 Søk etter student ) System.out.println( 3 Lag liste ) System.out.println( 4 Avslutt ) System.out.println( -------------------- ) Merk: vi kan hvor som helst i metoden gi instruksjonen return som avslutter utførelsen av metoden og fortsetter utføringen av programmet til rett etter kallet. ( *, (! C/ '! * class Stjerner { static void skrivstjerner () { String s = "" Forklaring: static er en modifikator som forteller at dette er en klassemetode og ikke en objektmetode, dvs metoden skal ikke benyttes inni et objekt. void er en returverditype som forteller at metoden ikke gir noe output. skrivstjerner er det navnet vi har valgt å gi metoden skrivstjerner() System.out.println("Hei") skrivstjerner() static void skrivstjerner () { String s = ""

9/ C/ * > javac Stjerner.java > java Stjerner Hei 0')!!' "'! - %. '!! -/ * forteller at dette er en "klasse-metode" static returverditype metodenavn (parametre){ instruksjon 1 instruksjon 2... instruksjon n beskrivelse av hva slags output metoden gir, f.eks. void, int, double, char,... et navn som vi velger beskrivelse av hva slags input metoden skal ha - gis i form av variabel-deklarasjoner separert av komma G' ' ( 7-=' * * '! '! '. / ' ' -!. - 7*'! = ' -' class Variabeltyper { static int tid = 0 // Klassevariabel int intervall = 3 // Lokal variabel øktid(intervall) øktid(intervall) static void øktid (int t) { tid += t System.out.println(tid) // Parameter @ A

H 7 ' class Eksempel { minmetode(3.14, 365) Argumenter static void minmetode (double x, int y) {... Parametre Merk: et annet navn for argumenter er aktuelle parametre, og et annet navn for parametre er formelle parametre. B!' " ' %! ' / ' * int i = 17 minmetode(3.14, i +2) IJF =JKF static void minmetode (double x, int y) { // nå kan x og y brukes med de verdier de fikk i kallet.... ' '! ' C C/ ' * static double lespositivttall () { In tastatur = new In() double x do { System.out.print("Gi et positivt tall: ") x = tastatur.indouble() while (x <= 0) return x Merk: vi kan hvor som helst i metoden gi instruksjonen return <uttrykk> som avslutter utførelsen av metoden og returnerer til kallstedet med verdien til det angitte uttrykket (verdien må være av typen double i dette tilfellet). < import easyio.* class LesPositivtTall { Out skjerm = new Out() double x = lespositivttall() double y = lespositivttall() skjerm.out("ln(x*y) = ") skjerm.outln(math.log(x*y), 2) static double lespositivttall () { In tastatur = new In() double x do { System.out.print("Gi et positivt tall: ") x = tastatur.indouble() while (x <= 0) return x > java PositivtTall Gi et positivt tall: 3.3 Gi et positivt tall: 5.5 ln(x*y) = 2.90

' (! C/ ' )=* static double finnsum (double[] x) { double sum = 0.0 for (int i=0 i<x.length i++) { sum += x[i] return sum import easyio.* class Lengde { Out skjerm = new Out() double[] lengde = {2.3, 5.22, 3.6, 2.33, 8.6 double total = finnsum(lengde) skjerm.out("samlet lengde: ") skjerm.outln(total, 2) static 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 4'= Anta at følgende eksekveres: double [] lengde = {... double total = finnsum(lengde) Eksekveringsrekkefølgen: double total = finnsum(lengde) total = 22.05 uttrykket finnsum(lengde) gis verdien 22.05 Metoden som kalles: argumentet lengde overføres static double finnsum(double[] x) { double sum = 0.0 for (int i=0 i<x.length i++) { sum += x[i] return sum double[] x = lengde double sum = 0.0 for (int i=0 i<x.length i++) { sum += x[i] return sum I forrige eksempel var parameteren til finnsum en arrayreferanse. Det lages ikke noen kopi av arrayobjektet når metoden kalles, så endringer som gjøres på arrayen inni metoden blir synlige utenfor metoden. Hva skriver programmet under ut? class ArrayParameter { int[] a = {1, 2, 3, 4 finndelsummer(a) System.out.println("a[3] = " + a[3]) static void finndelsummer(int[] x) { for (int i=1 i<x.length i++) { x[i] += x[i-1] LMJ

#' ' #' ) C ' 0'! '/-' 9'* - -=! ' 0'! =3-33'"$LM%5 '&"%F '&"%F '&"%F 6 " ' %! '?' '-= ( * 3'" " I=%5 $="N K*OKIKOOK=%F 6 static int sum (int x, int x) { return x + y 3'" " I =%5 $="N K *OKIKOOK=%F 6 static double sum (double x, double y) { return x + y @ K* K * K* A #' *-'P #' *-'P class Oppgave1 { System.out.println("Metode: main") b() static void a() { System.out.println("Metode: a") static void b() { a() System.out.println("Metode: b") > javac Oppgave1.java > java Oppgave1 class Oppgave2 { int x = 1 while (g(x) > 0) { System.out.println(x++) static int g (int x) { return 5-x > javac Oppgave2.java > java Oppgave2

H # 7! " ''%) 0')/= /!. ' java ProgramNavn ' / String[] args!) ( * class SkrivArgumenter { if (args.length == 0) { System.out.println("Ingen argumenter") for (int i=0 i<args.length i++) { System.out.print("Argument nr " + (i+1) + " var: ") System.out.println(args[i]) <. " %* --/ "/ % / ' ' '!! * > * void ' > =' ' "(*int, double, int[],..)! return XXX -'XXX ='= "return i +14) E' -/ ' static = E'! /22 = ' (*double kvadratrot(double x) {... return... 4,! * ' ' " % ' * y = 2.0 + kvadratrot(x*3.14) (/ class SkrivUt3 { static int k public static void main(string[] args) { System.out.println("Her er A i main-metoden") skrivmer() System.out.println("Her er B i main-metoden") static int treganger(int i) { int m = k * i * 3 return m static void skrivmer() { k = 4 System.out.println("skrivMer kaller treganger: " + treganger(2))