Mer objektorientert programmering
|
|
|
- Tore Espeland
- 9 år siden
- Visninger:
Transkript
1 Mer objektorientert programmering Klasser og objekter En klasse med konstruktør og en array Innkapsling En klasse med datafil og kommandoløkke Klassen ArrayList
2 Hva er hva? Klasser og objekter Det er viktig å ha klart for seg hva som er hva: En klasse er en arbeidsbeskrivelse for hvordan man skal lage objekter. Det finnes alltid nøyaktig ett eksemplar av klassen når programmet kjører. Objekter er instanser laget utifra beskrivelsen i en klasse. Når programmet starter, er det ingen objekter; de lages etter hvert med new. Derfor kan det være vilkårlig mange objekter av hver klasse.
3 Hva er hva? Objektvariabler og -metoder class C { private int v; int f(int x) { :... new C()... new C()... class C v int int f(int x) C v 0 int int f(int x) C v 0 int int f(int x)
4 Hva er hva? Klassevariabler og -metoder C v class C { private static int v; static int f(int x) { :... new C()... new C()... class C v 0 static int static int f(int x) static int static int f(int x) C v static int static int f(int x)
5 Hva gjør en timer? Eksempel 1: En timer En timer varsler når en gitt tid har gått.
6 Steg 1 Steg 1: Hvilke klasser trenger vi? Svaret er innlysende: class Timer.
7 Steg 2 Steg 2: Hva er grensesnittet? Hva hvis vi jobber med flere ting samtidig? Hadde det ikke vært fint å ha flere klokker i den samme timer? Tenk om vi bare kunne skrive og så hadde vi fire klokker. new Timer(4) Dette gjøres i Java med en konstruktør med parametre: Konstruktør med antall klokker: Timer(int antallklokker) {... (En konstruktør ligner på en metode, men har intet navn, kun klassenavnet.)
8 Steg 2 Resten av grensesnittet Velge klokke: void nesteklokke() {... Stille tiden for valgte klokke: void stilltid(int m, int s) {... Starte valgte klokke: void start() {... Stoppe valgte klokke: void stopp() {... Ta imot klokkesignal hvert sekund: void tikk() {... Vise gjenværende tid for valgte klokke: public String tostring() {...
9 Steg 2 Å kunne skrive ut seg selv Det er veldig nyttig å kunne skrive ut seg selv; alle klasser bør kunne det. Dette ordnes i Java ved å definere public String tostring() {... Når vi skjøter sammen tekster med +, er det faktisk elementenes tostring()-resultater vi bruker. Eksempel Timer t = new Timer(1); System.out.println("Tiden er " + t.tostring()); System.out.println("Tiden er " + t); // Det samme!
10 Steg 3 Steg 3: Representasjonen Hva må vi lagre? Tiden i minutter og sekunder for hver klokke: private int[] min; private int[] sek; Hvilken klokke ser vi nå på skjermen? private int denneklokke; Hvilke klokker er aktive nå? private boolean[] aktiv;
11 Steg 4 Steg 4: Skriv ferdig grensesnittmetodene class Timer { private int[] min; private int[] sek; private boolean[] aktiv; private int denneklokke; Timer(int antallklokker) { min = new int[antallklokker]; sek = new int[antallklokker]; aktiv = new boolean[antallklokker]; denneklokke = 0; public String tostring() { return "[" + denneklokke + "] " + min[denneklokke] + ":" + sek[denneklokke];
12 Steg 4 void stilltid(int m, int s) { min[denneklokke] = m; sek[denneklokke] = s; void start() { aktiv[denneklokke] = true; void stopp() { aktiv[denneklokke] = false; void nesteklokke() { denneklokke++; if (denneklokke >= aktiv.length) { denneklokke = 0;
13 Steg 4 void tikk() { for (int i = 0; i < aktiv.length; i++) { if (aktiv[i]) { if (sek[i] > 0) { sek[i]--; else if (min[i] > 0) { min[i]--; sek[i] = 59; if (min[i]==0 && sek[i]==0) { System.out.print("ALARM #" + i); aktiv[i] = false;
14 Alltid lurt å teste! Et testprogram class TestTimer { public static void main(string[] arg) { Timer t = new Timer(2); t.stilltid(0, 10); t.stilltid(0, 20); t.nesteklokke(); System.out.println(t); t.nesteklokke(); System.out.println(t); t.start(); t.start(); t.nesteklokke(); for (int i = 1; i <= 25; i++) { System.out.print("."); t.tikk(); System.out.println(); Kjøring $ java TestTimer [1] 0:20 [0] 0:10...ALARM #0...ALARM #1...
15 Innkapsling er en flott egenskap ved objektorientert programmering Innkapsling I klassen Timer valgte vi å representere tiden med to verdier: minutter og sekunder. Kunne vi valgt noe annet? I klasser er svaret: selvfølgelig! Hva må endres for å lagre tiden bare som sekunder?
16 Innkapsling er en flott egenskap ved objektorientert programmering class Timer { private int[] min; private int[] sek; private boolean[] aktiv; private int denneklokke; Timer(int antallklokker) { min = new int[antallklokker]; sek = new int[antallklokker]; aktiv = new boolean[antallklokker]; denneklokke = 0; public String tostring() { return "[" + denneklokke + "] " + min[denneklokke] + ":" + sek[denneklokke]; void stilltid(int m, int s) { min[denneklokke] = m; sek[denneklokke] = s; void start() { aktiv[denneklokke] = true; void stopp() { aktiv[denneklokke] = false; class Timer2 { private int[] sek; private boolean[] aktiv; private int denneklokke; Timer2(int antallklokker) { sek = new int[antallklokker]; aktiv = new boolean[antallklokker]; denneklokke = 0; public String tostring() { return "[" + denneklokke + "] " + (sek[denneklokke]/60) + ":" + (sek[denneklokke]%60); void stilltid(int m, int s) { sek[denneklokke] = 60*m + s; void start() { aktiv[denneklokke] = true; void stopp() { aktiv[denneklokke] = false;
17 Innkapsling er en flott egenskap ved objektorientert programmering void nesteklokke() { denneklokke++; if (denneklokke >= aktiv.length) { denneklokke = 0; void tikk() { for (int i = 0; i < aktiv.length; i++) { if (aktiv[i]) { if (sek[i] > 0) { sek[i]--; else if (min[i] > 0) { min[i]--; sek[i] = 59; if (min[i]==0 && sek[i]==0) { System.out.print("ALARM #" + i); aktiv[i] = false; void nesteklokke() { denneklokke++; if (denneklokke >= aktiv.length) { denneklokke = 0; void tikk() { for (int i = 0; i < aktiv.length; i++) { if (aktiv[i]) { if (sek[i] > 0) { sek[i]--; if (sek[i] == 0) { System.out.print("ALARM #" + i); aktiv[i] = false;
18 Innkapsling er en flott egenskap ved objektorientert programmering Dette er det fine med innkapsling: Innkapsling Siden representasjonen og innmaten i grensesnittmetodene er innkapslet, kan de endres uten at det affiserer kode som benytter klassen.
19 Hvordan holde oversikt over DVDene sine Eksempel 2: Et DVD-arkiv Vi ønsker oss et arkiv over DVDene våre, med muligheter til å redigere arkivet. Designvalg Vi vil lagre arkivet på disk mellom hver gang vi benytter det. Vi vil ha et program der vi kan gi kommandoer som så blir utført av programmet.
20 Lesing og skriving mot disk Lesing fra fil Linux-programmet cat skriver ut innholdet av en tekstfil; dette programmet gjør det samme: import java.util.scanner; import java.io.*; class Cat { public static void main(string[] arg) throws Exception { File f = new File(arg[0]); if (f.exists()) { Scanner s = new Scanner(f); while (s.hasnextline()) { String t = s.nextline(); System.out.println(t); s.close();
21 Lesing og skriving mot disk Skriving til fil import java.io.*; void m() throws Exception { PrintWriter f = new PrintWriter("filnavn");... f.print("a");... f.println("z");... f.close();
22 Lesing og skriving mot disk Fase 1: Hvilke klasser trenger vi? Det virker naturlig å ha tre klasser: class DVD for å lagre data om en DVD class DVDArkiv for å representere et arkiv class TestDVDArkiv for å sjekke det vi har skrevet
23 class DVD Klassen DVD Fase 2: Grensesnitt Konstruktør med angitt DVD-tittel: DVD(String n) {... Vise tittel: public String tostring() {... Fase 3: Representasjon Navnet på DVDen: private String navn;
24 class DVD Fase 4: Implementasjon class DVD { private String navn; DVD(String n) { navn = n; DVD.java public String tostring() { return navn;
25 class DVDArkiv Klassen DVDArkiv Steg 2: Grensesnitt Konstruktør med filnavnet der arkivet lagres: DVDArkiv(String navn) {... Navnet på arkivet (til f eks utskrift): public String tostring() {... Les arkivet inn fra disk: void lesarkiv() throws Exception {... Skriv arkivet tilbake til disk: void skrivarkiv() throws Exception {... Utfør kommandoer brukeren gir: void utfoerkommandoer() {...
26 class DVDArkiv Steg 3: Representasjon Navnet på arkivet (dvs filnavnet der det ligger lagret): private String arkivnavn; Alle DVDene: private DVD[] arkiv; Antall DVDer: private int antall;
27 class DVDArkiv Kommandoløkke Mange programmer som kommuniserer bruker, gjør det med en kommandoløkke: brukeren gir én og én kommando som programmet utfører. while (true) { «Be om en kommando.» «Les en kommando.» if (kommando.startswith("...")) { «Utfør kommandoen.» else if (kommando.startswith("...")) { «Utfør kommandoen.» else { «Gi melding om ulovlig kommando.» Husk at minst én kommando må avslutte løkken med f eks en return.
28 class DVDArkiv Steg 4: Resten av koden import java.util.scanner; import java.io.*; DVDArkiv.java class DVDArkiv { private String arkivnavn; private DVD[] arkiv = new DVD[1000]; private int antall = 0; DVDArkiv(String navn) { arkivnavn = navn; public String tostring() { return "DVD-arkivet " + arkivnavn;
29 class DVDArkiv void lesarkiv() throws Exception { File f = new File(arkivnavn); if (f.exists()) { Scanner s = new Scanner(f); while (s.hasnextline()) { arkiv[antall] = new DVD(s.nextLine()); antall++; s.close(); System.out.println("Arkivet " + arkivnavn + " er lest."); else { System.out.println("Nytt arkiv " + arkivnavn + " opprettet.");
30 class DVDArkiv void skrivarkiv() throws Exception { PrintWriter p = new PrintWriter(arkivnavn); for (int i = 0; i < antall; i++) { p.println(arkiv[i]); p.close();
31 class DVDArkiv void utfoerkommandoer() { Scanner s = new Scanner(System.in); while (true) { System.out.println(); System.out.println("Gi en kommando:"); System.out.println(" A (Avslutt)"); System.out.println(" N (Ny DVD)"); System.out.println(" V (Vis oversikt)"); System.out.print("Kommando: "); String kommando = s.nextline(); if (kommando.startswith("a")) { return; else if (kommando.startswith("n")) { System.out.print("DVDens navn: "); arkiv[antall] = new DVD(s.nextLine()); antall++; else if (kommando.startswith("v")) { for (int i = 0; i < antall; i++) { System.out.println(i + ". " + arkiv[i]); else { System.out.println(" " + kommando + " er en ulovlig kommando!");
32 Klassen TestDVDArkiv Testprogrammet TestDVDArkiv.java class TestDVDArkiv { public static void main(string[] arg) throws Exception { DVDArkiv a = new DVDArkiv("dvd-arkiv.text"); a.lesarkiv(); a.utfoerkommandoer(); a.skrivarkiv();
33 Og her er resultatet: Kjøringen $ javac TestDVDArkiv.java $ java TestDVDArkiv Arkivet dvd-arkiv.text er lest. Gi en kommando: A (Avslutt) N (Ny DVD) V (Vis oversikt) Kommando: Vis 0. Ringenes herre Harry Potter 1-7 Gi en kommando: A (Avslutt) N (Ny DVD) V (Vis oversikt) Kommando: Ny DVDens navn: Hobbiten 1-3 Gi en kommando: A (Avslutt) N (Ny DVD) V (Vis oversikt) Kommando: Vis 0. Ringenes herre Harry Potter Hobbiten 1-3 Gi en kommando: A (Avslutt) N (Ny DVD) V (Vis oversikt) Kommando: Avslutt
34 Hva hvis vi ennå ikke har noe å peke på? Peker til ingenting Når vi opprettet arrayen private DVD[] arkiv = new DVD[1000]; hva peker alle elementene i arkiv på før vi tilordner noe? Svaret er: ingenting. I Java heter det null.
35 Hva om vi glemmer det? Et eksempel med feil class Feil { public static void main(string[] arg) { DVD[] arkiv = new DVD[10]; System.out.println("Min eldste DVD er " + arkiv[0].tostring()); $ javac Feil.java $ java Feil Exception in thread "main" java.lang.nullpointerexception at Feil.main(Feil.java:5) Da må vi finne ut hvor feilen skjedde og hvorfor.
36 Hva er bra med arrayer? Arrayer Arrayer er en usedvanlig nyttig mekanisme så alle programmeringsspråk har dem. Enkel og klar notasjon: a[i] u Rask i bruk d Må oppgi antallet elementer når arrayen lages Hvis antallet er for stort, sløser vi med plassen. d Hvis det er for lite, krasjer programmet
37 Kan noen forbedre arrayer? Klassen ArrayList Biblioteksklassen ArrayList er et forsøk på forbedre arrayer: String[] a = new String[100]; int antall = 0; a[0] = "Bergen"; a[1] = "Oslo"; s = a[1]; n = antall; antall++; antall++; import java.util.arraylist; ArrayList<String> a = new ArrayList<>(); a.add("bergen"); a.add(1, "Oslo"); s = a.get(1); n = a.size();
38 Kan noen forbedre arrayer? u Vi trenger ikke oppgi størrelsen; et ArrayList-objekt vil øke i størrelse automatisk. d Litt kronglete notasjon. d Fungerer best for å lagre pekere; verditypene int, float etc må gis særbehandling. Det er opp til deg som programmerer å velge hva du foretrekker.
Innhold. INF1000 Høst Klasser og objekter. Uke 7: Mer objektorientert programmering Siri Moe Jensen
Innhold INF1000 Høst 2015 Uke 7: Mer objektorientert programmering Siri Moe Jensen Oo: Hva skjer egentlig i programmene våre? Hva var det vi gjorde annerledes i Uke 5? Klassemetoder (deklarert som static)
INF1000 - Løsning på seminaropppgaver til uke 8
INF1000 - Løsning på seminaropppgaver til uke 8 Oppgave 1 a) for(string nokkel : studenter.keyset){ System.out.println(nokkel); Studenten sitt navn blir skrevet ut. b) for(student dennestudenten : studenter.values()){
Læreboken på 45 minutter
Kap 1 Kap 2 Kap 3 Kap 4 Kap 5 Kap 6 Kap 7 Kap 8 Annet Læreboken på 45 minutter Hva er viktig? Hva er ikke fullt så viktig? Hvorfor har vi en lærebok? Læreboken forteller stort sett mer detaljert enn forelesningene.
Innhold. INF1000 Høst Unified Modeling Language (UML) Unified Modeling Language (UML)
Innhold Unified Modelling Language UML INF1000 Høst 2015 Uke 8: Mer objektorientert programmering Siri Moe Jensen En ny type for-løkke Organisering av mengder av objekter HashMap Valg av representasjon
Fra Python til Java. En introduksjon til programmeringsspråkenes verden. Dag Langmyhr
Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et eksempel Klasser
Forkurs INF1010. Dag 1. Andreas Færøvig Olsen Tuva Kristine Thoresen
Forkurs INF1010 Dag 1 Andreas Færøvig Olsen ([email protected]) Tuva Kristine Thoresen ([email protected]) Institutt for Informatikk, 6. januar 2014 Forkurs INF1010 - dag 1 Hello, World! Typer Input/output
Dagens 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
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Kontinuasjonseksamen i : Eksamensdag : INF1000 Grunnkurs i objektorientert programmering Fredag 7. januar Tid for eksamen : 09.00
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
UNIVERSITETET 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 :
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 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 =
23.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
programeksempel Et større En større problemstilling Plan for forelesingen Problemstillingen (en tekstfil) inneholdt ordet "TGA"
Et større programeksempel Hvordan løse et reelt problem med en objektorientert fremgangsmåte En større problemstilling I uke 4 skrev vi et program for å sjekke om et gen (en tekstfil) inneholdt ordet "TGA"
Forkurs INF1010. Dag 3. Andreas Færøvig Olsen Eivind Storm Aarnæs
Forkurs INF1010 Dag 3 Andreas Færøvig Olsen ([email protected]) Eivind Storm Aarnæs ([email protected]) Institutt for Informatikk, 14. januar 2015 Forkurs INF1010 - dag 3 Strenger Fil-I/O Unntakshåndtering
INF Notat om I/O i Java
INF1000 - Notat om I/O i Java Tuva Kristine Thoresen, Ingrid Grønlie Guren [email protected], [email protected] 22. oktober 2014 Dette notatet handler om I/O (input/output) i Java, og tar for seg
IN1010. Fra Python til Java. En introduksjon til programmeringsspråkenes verden Dag Langmyhr
IN1010 Fra Python til Java En introduksjon til programmeringsspråkenes verden [email protected] Oversikt Introduksjon Python Java Noe er likt Noe bare ser anderledes ut Noe er helt forskjellig Et par eksempler
Introduksjon 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
IN Notat om I/O i Java
IN1010 - Notat om I/O i Java Mathias J.P. Stang, Tuva Kristine Thoresen, Ingrid Grønlie Guren 17. januar 2018 Dette notatet handler om I/O (input/output) i Java, og tar for seg innlesning fra terminal,
Enkel lesing og skriving i Java
Enkel lesing og skriving i Java Dag Langmyhr [email protected] 11. januar 2019 Innhold 1 Skriving 1 1.1 Skriving til fil...................................... 3 2 Lesing 4 2.1 Lesing fra fil.......................................
Lø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
Forelesning inf Java 4
Forelesning inf1000 - Java 4 Tema: Løkker Arrayer Metoder Ole Christian Lingjærde, 12. september 2012 Ole Chr. Lingjærde Institutt for informatikk, 29. august 2012 1 Repetisjon: arrayer Deklarere og opprette
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
Forelesning inf - Java 4 Repetisjon: arrayer Tema: Løkker Arrayer Metoder Ole Christian Lingjærde,. september Deklarere og opprette array - eksempler: int[] a = new int[]; String[] a = new String[]; I
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO BOKMÅL Det matematisk-naturvitenskapelige fakultet Eksamen i : Eksamensdag : Torsdag 2. desember 2004 Tid for eksamen : 09.00 12.00 Oppgavesettet er på : Vedlegg : Tillatte hjelpemidler
Jentetreff INF1000 Debugging i Java
Jentetreff INF1000 Debugging i Java Ingrid Grønlie Guren [email protected] 11. november 2013 Kort om feilmeldinger i Java Java har to ulike type feilmeldinger som man kan få når man skriver
INF1010 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:
UNIVERSITETET 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
IN1010 våren januar. Objektorientering i Java
IN1010 våren 2018 23. januar Objektorientering i Java Om enhetstesting Om arrayer og noen klasser som kan ta vare på objekter Stein Gjessing Hva er objektorientert programmering? F.eks: En sort boks som
Oblig 4Hybelhus litt mer tips enn i oppgaven
Oblig 4Hybelhus litt mer tips enn i oppgaven lørdag 19. okt 2013 Arne Maus Obligatorisk oppgave 4 Gulbrand Grås husleiesystem I denne oppgaven skal vi se på hans studenthus Utsyn. Utsyn består av 3 etasjer,
Fra Python til Java, del 2
Fra Python til Java, del 2 Hvordan kjøre Java? På Ifis maskiner På egen maskin Et eksempel Array-er For-setninger Lesing og skriving Metoder Biblioteket Hva trenger vi egentlig? Å kjøre Java For å kunne
TOD063 Datastrukturer og algoritmer
TOD063 Datastrukturer og algoritmer Øving : 3 Utlevert : Uke 7 Innleveringsfrist : 26. februar 2010 Klasse : 1 Data og 1 Informasjonsteknologi Gruppearbeid: 2-3 personer pr. gruppe. Oppgave 1 Vi skal lage
Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert programmering i Java I Løsningsforslag
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 7 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) og i emnet INF100-F Objektorientert
import java.io.*; import java.util.*; import javagently.text;
//-------------------------------------------------------- // // Fil: Oppg1.java - // løser oppgave 1 i eksamensettet for in105 - v99 // //-------------------------------------------------------- import
INF1000 (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
Forelesning inf Java 5
Ole Chr. Lingjærde 1 Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen
Forelesning inf Java 5
Forelesning inf1000 - Java 5 Tema: Mer om metoder 2D-arrayer String Ole Christian Lingjærde, 26. september 2013 Ole Chr. Lingjærde Institutt for informatikk, 26. september 2013 1 Strukturen til et Java-program
Leksjon 7. Filer og unntak
6108 Programmering i Java Leksjon 7 Filer og unntak Del2: 7.2 og 7.4 Roy M. Istad 2015 Fil: Permanent lagring av data PrintWriter(filnavn) throws Exception usjekkede/sjekkede unntak? skriver.println(data-i-tekstlinje)
INF1000 EKSTRATILBUD. Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen
INF1000 EKSTRATILBUD Stoff fra uke 1-5 (6) 3. oktober 2012 Siri Moe Jensen PLAN FOR DAGEN gjennomgå stoff fra uke 1-5(6), men med en litt annen tilnærming kun gjennomgått stoff, men vekt på konsepter og
Array&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
INF1000 Prøveeksamen Oppgave 7 og 9
INF1000 Prøveeksamen Oppgave 7 og 9 Høst 2015 Siri Moe Jensen 7a) Skriv en klasse Gave med to variabler som forteller hva som er i gaven, og hvor mye den har kostet. Klassen skal ha en konstruktør med
TDT4100 Objektorientert programmering
Eksamensoppgave i TDT4100 Objektorientert programmering Torsdag 12. august 2010, kl. 09:00-13:00 Oppgaven er utarbeidet av faglærer Hallvard Trætteberg og kvalitetssikret av Svein Erik Bratsberg. Kontaktperson
Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag
Universitetet i Bergen Det matematisk naturvitenskapelige fakultet Institutt for informatikk Side 1 av 8 Eksamen i emnet INF100 Grunnkurs i programmering (Programmering I) Løsningsforslag Fredag 10. desember
Å lese tall fra en fil, klassen Scanner
Å 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 typer. 3. Kan kun skanne framover i teksten. Vis
Løse reelle problemer
Løse reelle problemer Litt mer om løkker, metoder med returverdier, innlesing fra fil og strenger INF1000, uke5 Ragnhild Kobro Runde MER OM LØKKER Repetisjon fra forrige uke: while Syntaks: while (condition)
Java-kurs. Andreas Knudsen <[email protected]> Nils Grimsmo <[email protected]> 9th October 2003
Java-kurs Andreas Knudsen Nils Grimsmo 9th October 2003 1 (Dette blir lagt ut på nett, du trenger ikke ta notater.) 1 Motivasjon For de som ikke går å data:
13.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,
UNIVERSITETET I OSLO
Kandidatnummer: Bokmål UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Prøveeksamen i : INF1000 Grunnkurs i objektorientert programmering Prøveeksamensdag : Tirsdag 10. november 2015 Tid
2 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.
UNIVERSITETET I OSLO
UNIVERSITETET I OSLO Det matematisk-naturvitenskapelige fakultet Eksamen i INF1000 Grunnkurs i objektorientert programmering Eksamensdag: 11. juni 2004 Tid for eksamen: 9.00 12.00 Oppgavesettet er på 8
INF Obligatorisk innlevering 7
INF1000 - Obligatorisk innlevering 7 Høsten 2016, IFI UiO Frist: 6. November 2016 kl 22:00 Tema denne uka: Et større objektorientert program. Administrasjon av eierskap og utlån av DVD-er I denne oppgaven
INF1000 undervisningen INF 1000 høsten 2011 Uke september
INF1000 undervisningen INF 1000 høsten 2011 Uke 2 30. september Grunnkurs i Objektorientert Programmering Institutt for Informatikk Universitetet i Oslo Siri Moe Jensen og Arne Maus Forelesningene: Første
Array&ArrayList Lagring Liste Klasseparametre Arrayliste Testing Lenkelister Videre
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
INF1010 våren januar. Objektorientering i Java
INF1010 våren 2017 25. januar Objektorientering i Java Om enhetstesting (Repetisjon av INF1000 og lær deg Java for INF1001 og INF1100) Stein Gjessing Hva er objektorientert programmering? F.eks: En sort
INF2100. Oppgaver 26. september til 1. oktober 2007
INF2100 Oppgaver 26. september til 1. oktober 2007 1 Språket Denne uken skal vi implementere en utvidelse av språket fra forrige ukes oppgave. Syntaksen er vist i figur 1 på neste side og betydning er
UNIVERSITETET I OSLO
Side 1 UNIVERSITETET I OSLO Kandidatnr Det matematisk-naturvitenskapelige fakultet Eksamen i: PRØVEEKSAMEN INF1000 Eksamensdag: Prøveeksamen 22.11.2011 Tid for eksamen: 12:15-16:15 Oppgavesettet er på
Gjennomgang prøveeksamen oppgave 1, 2, 4, 5, 7
Gjennomgang prøveeksamen 2014 oppgave 1, 2, 4, 5, 7 1a: Hva er verdien til tall etter at følgende kode er utført: 17 int tall = 5; tall = (tall*3) + 2; 5 15 17 1b: Anta at følgende programsetninger utføres.
INF1010 Tråder J. Marit Nybakken Motivasjon. Å lage en tråd
J INF1010 Tråder J Marit Nybakken [email protected] Motivasjon Til nå har vi kun skrevet programmer der programmet bare var på ett sted i koden til enhver tid (bortsett fra når vi har drevet med GUI,
Programmering i C++ Løsningsforslag Eksamen høsten 2005
Programmering i C++ Eksamen høsten 2005 Simen Hagen Høgskolen i Oslo, Avdeling for Ingeniørutdanning 7. desember 2005 Generelt Denne eksamensoppgaven består av tre oppgaver, pluss en ekstraoppgave. Det
Blokker og metoder INF1000 (Uke 6) Metoder
Blokker og metoder INF1000 (Uke 6) Metoder Grunnkurs i programmering Institutt for Informatikk Universitetet i Oslo Are Magnus Bruaset og Arild Waaler En blokk er en samling instruksjoner omgitt av krøllparenteser:
Dagens forelesning. Java 13. Rollefordeling (variant 1) Rollefordeling (variant 2) Design av større programmer : fordeling av roller.
Dagens forelesning Java 13 Design av større programmer : fordeling av roller INF 101-13. mars 2003 Flere eksempler på bruk av objekter MVC-prinsippet MVC-prinsippet Flere eksempler på programmer med objekter
Løsningsforslag Test 2
Løsningsforslag Test 2 Oppgave 1.1: Interface definerer et grensesnitt som kan implementeres av flere klasser. Dette gir en standardisert måte å kommunisere med objekter av en eller flere relaterte klasser.
INF Obligatorisk innlevering 6
INF1000 - Obligatorisk innlevering 6 Frist: 16. Oktober kl 22:00 Tema denne uka: Et første objektorientert program. Målet med oppgaven er å utvikle et verktøy for enkel analyse av tekster som vi leser
HØGSKOLEN I SØR-TRØNDELAG
HØGSKOLEN I SØR-TRØNDELAG Avdeling for informatikk og e-læring Kandidatnr: Eksamensdato: 14.desember 2007 Varighet: 0900-1200 Fagnummer: Fagnavn: Klasser: LO347D Web-applikasjoner med Java EE Nettstudenter
Leksjon 7. Filer og unntak
6108 Programmering i Java Leksjon 7 Filer og unntak Del1: 7.1 7.2 Roy M. Istad 2015 Fil permanent lagring Ønsker at program skal kunne ta vare på data over tid, fra en kjøring til den neste (kontra hurtigminnet
INF1000 - Uke 10. Ukesoppgaver 10 24. oktober 2012
INF1000 - Uke 10 Ukesoppgaver 10 24. oktober 2012 Vanlige ukesoppgaver De første 4 oppgavene (Oppgave 1-4) handler om HashMap og bør absolutt gjøres før du starter på Oblig 4. Deretter er det en del repetisjonsoppgaver
Repetisjon. INF1000 - gruppe 13
Repetisjon INF1000 - gruppe 13 Lese fra fil Scanner import java.util.*; void lesfrafil() { try { Scanner innfil = new Scanner(new File( fugleobservasjoner.txt )); while (innfil.hasnext()) { String linje
Avdeling for ingeniørutdanning Institutt for teknologi
Avdeling for ingeniørutdanning Institutt for teknologi Oppgavetittel: Lab Fag(nr./navn): DOPS2021 - Operativsystemer Gruppemedlemmer: T. Alexander Lystad Faglærer: Karoline Moholth Dato: 15. oktober 2009
Eksempel: Body Mass Index (BMI) Forelesning inf1000 - Java 3. Ferdig program (første del) Ferdig program (siste del)
Forelesning inf1000 - Java 3 Eksempel: Body Mass Index (BMI) Tema: Mer om forgreninger Løkker Arrayer Litt om easyio Ole Christian Lingjærde, 5. september 2012 Ole Chr. Lingjærde Institutt for informatikk,
Oppsummering. 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
INF1000: 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.
Post-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
Kapittel 8: Programutvikling
Kapittel 8: Programutvikling Redigert av: Khalid Azim Mughal ([email protected]) Kilde: Java som første programmeringsspråk (3. utgave) Khalid Azim Mughal, Torill Hamre, Rolf W. Rasmussen Cappelen Akademisk
INF1000-SIKT - Notat om I/O i Java
INF1000-SIKT - Notat om I/O i Java Tuva Kristine Thoresen [email protected] 30. oktober 2013 Innhold 1 Innlesning fra terminal 2 1.1 Innlesning av tekst........................ 2 1.2 Innlesning av tall.........................
Eksamen. Objektorientert Programmering IGR 1372
+ JVNROHQL1DUYLN $YGHOLQJIRU7HNQRORJL Eksamen i Objektorientert Programmering IGR 1372 7LG'HVHPEHU± 7LOODWWHKMHOSHPLGOHU 6NULYHVDNHU2UGE NHU -DYD6RIWZDUH6ROXWLRQV)RXQGDWLRQVRI3URJUDP 'HVLJQVNUHYHWDY/HZLV
INF våren 2017
INF1010 - våren 2017 Om Java Objekter og klasser Både for deg som kan og for deg som ikke kan Java Stein Gjessing Universitetet i Oslo Ny versjon etter forlesningen der tre meningsløse private modifikatorer
Programmering Høst 2017
Programmering Høst 2017 Tommy Abelsen Ingeniørfag - Data Innledning Dette er et dokument med litt informasjon og eksempler om kontrollstrukturer, samt oppgaver til forskjellige kontrollstrukturer. Spør
Gjennomgang av eksamen H99
Gjennomgang av eksamen H99 Administrasjon av kurser, studenter og påmeldinger Ole Christian Lingjærde Gruppen for bioinformatikk Institutt for Informatikk Universitetet i Oslo Oppgave 1 (15 %) (Besvares
