Föreläsning 6: Metoder och fält (arrays)
|
|
- Inga Bergqvist
- för 6 år sedan
- Visningar:
Transkript
1 TDA 545: Objektorienterad programmering Föreläsning 6: Metoder och fält (arrays) Magnus Myréen Chalmers, läsperiod 1,
2 I (föregående och) denna föreläsning Läsanvisning: kap 2 & 13 meddelanden och metoder informationsdöljande och inkapsling skapa och använda färdiga objekt! primitiva variabler kontra objektvariabler 3 tester på likhet metoder fält (arrays) Nästa föreläsning handlar om Att skriva egna klasser.
3 Metoder! Metoder = funktioner i Java Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
4 Metoder! Metoder = funktioner i Java metodhuvud, funktionshuvud, signature Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
5 Metoder! Metoder = funktioner i Java Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel metodens kropp
6 Metoder! Metoder = funktioner i Java modifierare modifierare Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
7 Metoder! Metoder = funktioner i Java returvärdets typ Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
8 Metoder! Metoder = funktioner i Java metodens namn Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
9 Metoder! Metoder = funktioner i Java formell parametrar Definition av en metod: formell parametrar public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel
10 Metoder! Metoder = funktioner i Java Definition av en metod: public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel retur värdet
11 Metoder! Metoder = funktioner i Java returvärdets typ metodens namn modifierare modifierare formell parameter Definition av en metod: formell parameter public static double medel(int v1, int v2) { return (v1+v2)/2.0; // end medel retur värdet Metodens resultat kan vara av vilken typ som helst, även en klass. Anrop t.ex. int c = 52; int a = 10; double medel1, medel2; medel1 = medel(5, 10); medel2 = medel(a, c); aktuell parameter aktuell parameter
12 En klass med två metoder import java.util.scanner; public class EnkelMatematik { public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; public static void main(string[] args){ Scanner myinput = new Scanner(System.in); double tal1, tal2, mv; System.out.println("Ange 2 tal"); tal1 = myinput.nextdouble(); tal2 = myinput.nextdouble(); mv = medel(tal1, tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); // end main // end EnkelMatematik
13 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(tal1,tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
14 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(tal1,tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
15 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(tal1,tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
16 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(25.0,tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
17 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(25.0,tal2); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
18 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
19 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
20 Evaluering av metodanropet public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; de formella parametrarna är vanliga variabler för metoden utgångsvärdena får de från metodanropet. typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
21 Evaluering av metodanropet return (v1 + v2)/2.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
22 Evaluering av metodanropet return (v1 + v2)/2.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
23 Evaluering av metodanropet return (v1 + v2)/2.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
24 Evaluering av metodanropet return ( )/2.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
25 Evaluering av metodanropet return (40.0)/2.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
26 Evaluering av metodanropet return 20.0; typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
27 Evaluering av metodanropet return 20.0; mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
28 Evaluering av metodanropet return 20.0; mv = 20.0; System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
29 Evaluering av metodanropet mv = 20.0; System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
30 Evaluering av metodanropet mv = 20.0; System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
31 Evaluering av metodanropet System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
32 Evaluering av metodanropet System.out.print("Medelvärdet är: "); System.out.println(mv); typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
33 Evaluering av metodanropet System.out.println(mv); Utskrift: "Medelvärdet är: " typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
34 Evaluering av metodanropet System.out.println(mv); Utskrift: "Medelvärdet är: " typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
35 Evaluering av metodanropet System.out.println(20.0); Utskrift: "Medelvärdet är: " typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
36 Evaluering av metodanropet Koden har kört klart Utskrift: "Medelvärdet är: 20.0\n typ: double 20.0 namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
37 Parameteröverföring public static double medel(double v1,double v2) { return (v1 + v2)/2.0; // end medel; de formella parametrarna är vanliga variabler för metoden utgångsvärdena får de från metodanropet. nya lokala variabler skapas typ: double 25.0 namn: v1 typ: double 15.0 namn: v2 mv = medel(25.0,15.0); System.out.print("Medelvärdet är: "); System.out.println(mv); I Java överförs alltid parametrarna via värdeanrop dvs värdet av den aktuella parametern kopieras över till den formella parametern. typ: double namn: mv typ: double 25.0 namn: tal1 typ: double 15.0 namn: tal2
38 Metoder = funktioner och procedurer Använd en funktion om du kan, en procedur om du måste. Funktioner beräknar värden. De utvidgar uttrycksdelen av språket. Ett funktionsanrop: är ett uttryck och har en returtyp (dvs inte void) beräknas till ett värde som returneras. mv = medel(tal1, tal2); Procedurer utför åtgärder. De utvidgar satsdelen av språket. Ett proceduranrop: är ett sats returnerar inget värde (returtyp = void) System.out.print("Störst är: ");
39 Synbarhet (Scope) En variabel/metod syns från det den deklareras tills dess att blocket den deklarerats i tar slut. int global = 4; if (<villkor>) { int local = 3; // här finns local och global... else { // här finns inte local // men global finns... static double sqr(double x){ double tmp = x*x; // här finns tmp och x return tmp; // här finns inte tmp och inte x
40 Overloading (Överlagring) Två eller flera metoder kan ha samma namn om dom skiljer sig åt i sina parametrar. public static int max(int a, int b) { if (a > b) { return a; else { return b; public static int max(int a, int b, int c) { return max(a,max(b,c)); public static double max(double a, double b) { if (a > b)...
41 Att vända på en sträng (igen!) Uppgift: Skriv en metod som vänder om en sträng. Exempel: Hello! bör bli!olleh Tips: Gör så här: str är "Hello!", result är "" str är "Hello!", result är "H" str är "Hello!", result är "eh" str är "Hello!", result är "leh" str är "Hello!", result är "lleh" str är "Hello!", result är "olleh" str är Hello!", result är!olleh"
42 Att vända på en sträng (igen!) Lösning: Tips: public static String rev(string str) { String result = ""; for (int i=0; i<str.length(); i++) { result = str.charat(i) + result; return result; Gör så här: str är "Hello!", result är "" str är "Hello!", result är "H" str är "Hello!", result är "eh" str är "Hello!", result är "leh" str är "Hello!", result är "lleh" str är "Hello!", result är "olleh" str är Hello!", result är!olleh"
43 Fält, vektorer, matriser, arrays ett fält = ett block av värden referensvärde namn: temp temp[2] har numrerade komponenter komponenterna selekteras med index av diskret typ indexeras från noll till length-1 alla komponenter är av samma typ komponenterna kan vara objekt
44 Att skapa fält Deklarera ett fält med 8 heltal: int[] temp = new int[8]; eller deklaration och snabbtilldelning med array initializer int[] temp = {6,7,3,7,1,7,2,9; referensvärde Obs. sådan tilldelning fungerar endast i deklaration, detta går ej: temp = {6,7,3,7,1,7,2,9;
45 Tilldelning av fältvärden Innan: namn: temp referensvärde Uppdatering av ett fältvärde: temp[1] = 8; Efter: namn: temp referensvärde
46 Tilldelning av fältvärden Innan: namn: temp referensvärde Uppdatering av alla fältvärden: fältet längd, går ej att ändra for(int i = 0; i < temp.length; i++){ temp[i] = 2*temp[i]; Efter: namn: temp referensvärde
47 Läsning av fältvärden namn: temp referensvärde temp[3] Läsning av ett fältvärde: int n = temp[3]; ändrar inte fältet n får värdet 7 något heltalsuttryck
48 Bearbeta fältets värden Antag: int[] temp = new temp[8]; Mycket vanligt mönster: for(int i = 0; i < temp.length; i++) { här: kod som bearbeta enskilda fältvärden med temp[i] t.ex. har tilldelning temp[i] = temp[i]
49 Vad gör denna loop? for (int i = 0; i < temp.length; i++) { temp[i] = 1; Den fyller fältet med ettor.
50 Vad gör denna loop? for (int i = 0; i < temp.length; i++) { temp[i] = temp[i] * 2; Den multiplicerar alla element med 2
51 Vad gör denna loop? int antal = 0; // i, j är vanliga namn på loop- index for (int i = 0; i < temp.length; i++) { if (temp[i] < 10) { antal = antal + 1; // Här innehåller antal antalet element <10 Den räknar hur många element < 10
52 Uppgift Summera innehållet i ett fält.
53 Fält och metoder Summera innehållet i ett fält: int sum = 0; for (int i = 0; i < arr.length; i++) { sum = sum + arr[i]; System.out.println(sum);
54 Fält och metoder Summera innehållet i ett fält i en metod: public static int sumarray(int[] arr) { int sum = 0; for (int i = 0; i < arr.length; i++) { sum = sum + arr[i]; return sum;
55 Fält och metoder Skapa fält genom att anropa en metod returtyp: ett fält skapar ett fält public static int[] fillarray(int size) { int[] tmp = new int[size]; for (int i = 0; i<tmp.length; i++) { tmp[i] = i; // eller nåt return tmp; returnerar det nya fältet Loopar som dessa ska ni kunna skriva i sömnen Öva! dvs programmera, programmera, programmera.
56 Kopiera ett fält int[] f1 = {0,1,2,3,4,5; int[] f2 = new int[6]; f2 = f1; // blir INTE som du tänkt vad händer?
57 Kopiera ett fält int[] f1 = {0,1,2,3,4,5; int[] f2 = new int[6]; f2 = f1; // blir INTE som du tänkt vad händer? Man måste kopiera element för element: for (int i = 0; i < f1.length; i++) { f2[i] = f1[i]; Ofta gör man detta i en metod: static int[] copyarray(int[] arr) { int[] tmp = new int[arr.length]; for (int i=0; i<arr.length; i++){ tmp[i] = arr[i]; return tmp; vad händer om metoden kör tilldelning av arr? och anrop hur fungerar parameteröverföringen? f2 = copyarray(f1);
58 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray(f1);
59 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray(f1);
60 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray(f1); namn: f namn: f2 null
61 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray(f1); namn: f namn: f2 null
62 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f namn: f2 null
63 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f namn: f2 null
64 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: arr namn: f2 null
65 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: arr namn: f2 null
66 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: arr namn: f2 null
67 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: tmp namn: arr namn: f2 null
68 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: tmp namn: arr namn: f2 null
69 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: tmp namn: arr namn: f2 null
70 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray( ); namn: f1 namn: tmp namn: arr namn: f2 null
71 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return ; f2 = copyarray( ); namn: f1 namn: tmp namn: arr namn: f2 null
72 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return ; f2 = copyarray( ); namn: f namn: f2 null
73 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return ; f2 = copyarray( ); namn: f namn: f2 null
74 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = ; namn: f namn: f2 null
75 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = ; namn: f namn: f2 null
76 Regeln var: Parameteröverföring Värdet av den aktuella parametern kopieras över till den formella parametern. i detta fall var är parametern ett referensvärde (dvs en pil) int[] f1 = {1,5,3,7,4,5,...; int[] f2 = null; int[] copyarray(int[] arr) { int[] tmp = new int[arr.length];... kopiera... return tmp; f2 = copyarray(f1); namn: f namn: f2
77 Är fält objekt eller primitiva? Några skäl mot: annan syntax än andra objekt klassen har inget namn utan bildas genom ta namn och lägga till [] du kan inte ärva fält du kan inte definiera egna metoder och lägga till klassen längden är en variabel, inte en funktion Några saker som talar för att dom är det: språkdefinitionen säger att dom är det fält är referenstyper (har referensvärde) allokeras med new allokeras på heapen förälderklassen är Object och Object klassens metoder fungerar Så de är objekt, men lite speciella objekt.
78 Vanligaste felen med fält null pointer exception int[] f1 = {0,1,2,3,4,5; int[] f2; for (i = 0; i < f1.length; i++) { f2[i] = f1[i]; Test.java:10: variable f2 might not have been initialized f2[i] = f1[i]; ^ 1 error f2 = f1; // fungerar men...
79 Vanligaste felen med fält (fort.) array index out of bounds går ett steg för långt double sum = 0.0; for (i = 0; i <= f1.length; i++) { sum = sum + f1[i];
80 Vanligaste felen med fält (fort.) Man glömmer att kolla om indata är null static int firstelement(int[] arr) { return arr[0]; Bättre: static int firstelement(int[] arr) { if (arr == null) { throw new IllegalArgumentException("empty array"); else { return arr[0];
81 Vanligaste felen med fält (fort.) Man glömmer att kolla om indata är null static int firstelement(int[] arr) { return arr[0]; Ännu bättre: static int firstelement(int[] arr) { if (arr == null) { throw new IllegalArgumentException("empty array"); else if (arr.length < 1) { throw new IllegalArgumentException("empty array"); else { return arr[0];
82 Flerdimensionella fält (matriser) Är fält med fält som värden. Raderna behöver inte vara lika långa. int[][] m = new int[3][6]; for (int i=0; i< m.length; i++) { for (int j=0; j < m[i].length; j++) { m[i][j] = 0; int[][] m2 = { {1, 2, 3, 4, 5, 6, {1, 1, 1, 1, {6, 5, 4, 3, 2, 1 ;
83 Uppgift Skriv kod som vänder om alla element i ett fält (dvs array). Före: Efter:
Föreläsning 2, vecka 8: Repetition
TDA 548: Grundläggande Programvaruutveckling Föreläsning 2, vecka 8: Repetition Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Idag Metoder och terminologi Referensvärden och arrays Interface och ritning
Metoder - en funktion: medel
itop Läsanvisning: kap 2+13 F5 Metoder - en funktion: medel metodhuvud, funktionshuvud, signatur modifierare formella resultatvärdets typ parametrar metodens namn! Metoder, parameteröverföring! Fält Nästa
Föreläsning 8: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 8: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 De tre senaste föreläsningarna Läsanvisning: kap 2 & 13 meddelanden och
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
Föreläsning 11: Rekursion
TDA 545: Objektorienterad programmering Föreläsning 11: Rekursion Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Läsanvisning: kap 19, men bara t.o.m. sida 812 rekursion fakulteten exponentiering
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Instuderingsfrågor, del D
Uppgift 1. Instuderingsfrågor, del D Objektorienterad programmering, Z1 I vilka av nedanstående problem behöver man använda sig av fält för att få en elegant lösning? I vilka problem är det är det onödigt/olämpligt
TDDC77 Objektorienterad Programmering
TDDC77 Objektorienterad Programmering Föreläsning 5 Sahand Sadjadee IDA, Linköpings Universitet Hösttermin 2018 Outline Arrayer Metoder Räckvidd och Livslängd Arrayer Vända om inlästa värdena Vända om
Föreläsning 3: Booleans, if, switch
TDA 545: Objektorienterad programmering Föreläsning 3: Booleans, if, switch Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Påminnelse om klasser och objekt Boll boll1 = new Boll(5,12); skapar ett nytt
1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Typkonvertering. Java versus C
Typer Objektorienterad programmering E Typkonvertering Typkonvertering Satser: while, for, if Objekt Föreläsning 2 Implicit konvertering Antag att vi i ett program deklarerat int n=3; double x = 5.2; Då
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Föreläsning 1, vecka 7: Rekursion
TDA 548: Grundläggande Programvaruutveckling Föreläsning 1, vecka 7: Rekursion Magnus Myréen Chalmers, läsperiod 1, 2016-2017 Nytt: Extra labbtillfälle för Grupp B (för att grupp Bs labbtider har på senaste
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Arrayer Metoder Räckvidd (Scope) Eclipse
Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Objekt och klasser - Introduktion
Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder
Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ
orienterad programmering Föreläsning 3 Exempel: Telefonboken Fält som funktionsresultat Exempel Definiera static double[] vectorsum(double[] a, double[] b) Betrakta sedan följande kodavsnitt:... double[]
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning
Varför? 732G11 Linköpings universitet 2011-02-08 Varför? 1 2 3 Varför? 4 5 Medelvärde av 5000 tal Varför? while-loopen int nrofints = 5000; int [] integers = new int [ nrofints ]; int pos = 0; while (
OOP Objekt-orienterad programmering
OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.
Funktionens deklaration
Funktioner - 1 Teknik för stora program #include #include......... cout
Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod
Föreläsning 3-4 Innehåll Diskutera Vad gör programmet programmet? Föreslå vilka satser vi kan bryta ut till en egen metod. Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla
Föreläsning 9-10 Innehåll
Föreläsning 9-10 Innehåll Inläsning från textfil, utskrift från textfil Vektorer med objekt Matriser Datavetenskap (LTH) Föreläsning 9-10 HT 2018 1 / 41 Klassen Scanner Läsa från System.in Vi har tidigare
OOP Objekt-orienterad programmering
OOP F2:1 OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion Deklaration och tilldelning OOP F2:2 int x; double d; char ch; boolean
Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer
Exempel for (int antal=; antal < 75; antal++) System.out.println (antal); Arrayer for (int num=5; num
Del A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Ringa in rätt svarsalternativ eller skriv svar i ruta om sådan a) Satsen double x = (int)(1 + 3/2.0) + 3.; resulterar i b) Satsen int x = (int)(1 + 3/2.0) + 3.; resulterar
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Tentamen , Introduktion till Java, dtaa98, dtea53
Mittuniversitetet 2007-09-01 Institutionen för informationsteknologi och medier Sid:1(3) dtaa98, dtea53 Martin Kjellqvist; Linda Karlsson, Ulf Reiman Lösningsansatser Tentamen 2007-09-01, Introduktion
LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p
UMEÅ UNIVERSITET Datavetenskap 010530 LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p Betygsgränser 3 21,5-27 4 27,5-33,5 5 34-43 Uppgift 1. (4p) Hitta de fel som finns i nedanstående klass (det
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-7, TDA540 Dag: 208-0-3, Tid: 4.00-8.00 Uppgift a) class används för en klassdeklaration som
JAVAUTVECKLING LEKTION 8
JAVAUTVECKLING LEKTION 8 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Fält (Arrayer) Att skapa och arbeta med fält Indexering Jämförelse av fält Flerdimensionella fält 1 VAD
LÖSNINGSFÖRSLAG TENTAMEN
LÖSNINGSFÖRSLAG TENTAMEN OBJEKTORIENTERAD PROGRAMMERING I JAVA 5P FRISTÅENDE KURS, DAG (ITM - ÖSTERSUND) MÅNDAG 2 JUNI, 2003, KL. 8-13 TID: 5 TIMMAR ANTAL UPPGIFTER: 8 MAX POÄNG: 43 BETYGSKALA: UNDERKÄND
TENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 12
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 12 I torsdags: Klassen TelefonKostnad Exemplifierar objektorienterad design, metoder, konstruktorer static Standardklassen Math Matematiska
DELPROV 1 I DATAVETENSKAP
Umeå Universitet Datavetenskap Marie Nordström 070502 DELPROV 1 I DATAVETENSKAP Uppgift (poäng) 1 () 2 () 3 () 4 () 5 () 6 () Summa (xx) Inlämnad Poäng Kurs : Datum : 070502 Namn (texta) : Personnummer
Programmeringsteknik och Matlab. Dagens program. Viktiga datum. Repetitionsexempel. Repetition av if/else, for, while och Scanner
Programmeringsteknik och Matlab Övning 3 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..
Ett problem Kontrollstrukturer och er Hur sparas data T ex när man vill spara resultaten av en tävling Exempel med 3 deltagare: public class Competition private int result1; private int result2; private
Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer
Programmering hh.se/db2004 Föreläsning 3: Java. Grundtyper, variabler och arrayer Hej Då, Karel! Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Center for Research on Embedded
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Lösningsförslag: Instuderingsfrågor, del D
Uppgift 1. Objektorienterad programmering, Z1 Lösningsförslag: Instuderingsfrågor, del D a) Inget fält behövs. Man kan läsa in ett tal i taget och addera dessa till summan. b) Här behövs ett fält. c) Här
Dagens föreläsning. Sett i datorsalarna. Mer om arrayer. Matriser. Formatering av utskrifter. Inläsning med hjälp av Scanner-klassen
(10 februari 2019 F4 1 ) Dagens föreläsning Sett i datorsalarna Mer om arrayer Matriser Formatering av utskrifter Inläsning med hjälp av Scanner-klassen (10 februari 2019 F4 2 ) Hört och sett if-loop Skall
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering
Lösningsförslag till tentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-01-09, Tid: 14.00-18.00 Uppgift 1 a) class används för en klassdeklaration
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-17, TDA540 Dag: 2018-04-06, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek
De åtta primitiva typerna Java, datatyper, kontrollstrukturer Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Typ Innehåll Defaultvärde Storlek boolean true, false false 1 bit char Tecken \u000
Outline. I Vi kan lätt göra samma sak för fyra variabler... I Hur gör vi för 400 inlästa värden? I Ofta behöver man flera likadana variabler
Outline Objektorienterad Programmering (TDDC77) Föreläsning V: arrayer, metoder, räckvidd (scope), eclipse Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Vända om inlästa värden Vända om inlästa
Instuderingsfrågor, del E
Uppgift 1. Instuderingsfrågor, del E Objektorienterad programmering, Z1 Skriv en en deklaration som skapar ett 2-dimensionellt heltalsfält med följande utseende: 1 3 6 10 2 5 9 13 4 8 12 15 7 11 14 16
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
[] Arrayer = Indexerad variabel
[] Arrayer = Indexerad variabel Lagra många värden i en variabel Jmfr inom matematiken, variabler x 0, x 1, x 2, I detta dokument tas upp hur man skapar och hanterar sådana variabler i java. Dessa kallas
Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2
AID-nummer: Datum: 2014-12-18 Kurskod: 725G61 Provkod: LAB1 Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2 Skrivningstid: 2014-12-18 klockan 8.00-10.00. Hjälpmedel: Inga. För varje fråga
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt
Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras
Lite om reella tal. Programmering. I java. Om operatorers associativitet och prioritet
Programmering hh.se/db2004 Föreläsning 4: Fält samt Input/Output Verónica Gaspes www2.hh.se/staff/vero www2.hh.se/staff/vero/programmering Lite om reella tal Vad kan man göra med reella tal? Utöver de
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2012-06-04 Skrivtid: 1400-1700 Hjälpmedel: Java-bok Tänk på följande Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till
Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ
Organisation En array Šr en ordnad lista av všrden Varje všrde har ett numeriskt index - deklaration & anvšndning som parametrar flerdimensionella fšlt N element indexeras med 0 till N-1 0 1 2 3 4 5 6
Föreläsning 12: Exempel och problemlösning
TDA 545: Objektorienterad programmering Föreläsning 12: Exempel och problemlösning Magnus Myréen Chalmers, läsperiod 1, 2015-2016 Idag Problemlösning, dvs hur man ska tänka för att hitta lösning int mängd/set
Uppgift: Algoritm för att beräkna kontrollsiffran i ett personnummer givet de 9 första siffrorna. Torrsimning av algoritm för personnummer
F6 Observera att när man utvecklar program så är inte alla lösningar på vägen korrekta. Speciellt den här gången så finns många OH med program som inte fungerar eftersom det är just det vi skall se på
for-satsen Fält for-satsen Föreläsning 8 (OH-bilder 7) for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende:
for-satsen for-sats är en styrsats för iterationer. for-sats har följande generella utseende: TDA143 I1 Programmerade system Föreläsning 8 (OH-bilder 7) for-satsen for ( initiering; villkor; ändring) sats;
Tentamen. Lösningsförslag
Sida 1/8 Tentamen Grundläggande programmering i Java A 5p, DTAA32 2002-03-22 Lösningsförslag Uppgift 1 ( 3p ) Utskriften blir: Skriv in ett tal 24 47 48 intal=471 Uppgift 2 ( 6p ) a.) b.) c.) d.) e.) falskt
Exempel på listor (klassen ArrayList). Ett exempel med fält. Avbildning är en speciell typ av lista HashMap.
Institutionen för Datavetenskap Göteborgs universitet HT2008 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Innehåll Föreläsning 4 Exempel på listor (klassen ArrayList). Ett exempel med fält.
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner
732G11 Linköpings universitet 2011-01-21 1 2 3 4 5 6 Skapa program Kompilera: Källkod Kompilator bytekod Köra: Bytekod Virtuell maskin Ett riktigt program Hej.java class Hej { public static void main (
Arrayer. results
Arrayer 85 Arrayer Deklarerar utrymme för många variabler i en enda deklaration Array (fält) Varje värde har ett numeriskt index i Java indexeras en array med N element med indexen till N-1 Exempel: 1
Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014
Introduktion till Datalogi DD1339 Föreläsning 2 22 sept 2014 Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 public class { public class { Åtkomst, public betyder fullt tillgänglig utifrån public
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Om att lära sig programmera. Föreläsning 1-2 Innehåll.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.axelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2018-03-16 Skrivtid: 8:00 13:00 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
Laboration 13, Arrayer och objekt
Laboration 13, Arrayer och objekt Avsikten med denna laboration är att du ska träna på att använda arrayer. Skapa paketet laboration13 i ditt laborationsprojekt innan du fortsätter med laborationen. Uppgift
Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Lösningar för tenta 3 DAT043,
Lösningar för tenta 3 DAT043, 2018-08-22. Uppgift 1 class Person{ public String förnamn; public String efternamn; public int ålder; private double längd; private double vikt; public Person(String förnamn,
Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar
Java, klasser, objekt (Skansholm: Kapitel 2)
Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma
Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
Tentamen ID1004 Objektorienterad programmering December 15, 2012
Ordinarie tentamen för ID1004 Objektorienterad programmering, 15 december 2012, 9-13 Denna tentamen examinerar 3.5 högskolepoäng av kursen. Inga hjälpmedel är tillåtna. Tentamen består av tre sektioner.
Tentamen i Grundläggande Programvaruutveckling, TDA548
Tentamen i Grundläggande Programvaruutveckling, Joachim von Hacht/Magnus Myreen Datum: 2017-08-14 Tid: 14.00-18.00 Hjälpmedel: Lexikon Engelskt-Valfritt språk. Betygsgränser: U: -23 3: 24-37 4: 38-47 5
TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P
UME UNIVERSITET Datavetenskap 981212 TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P Datum : 981212 Tid : 9-15 HjŠlpmedel : Inga Antal uppgifter : 9 TotalpoŠng : 60 (halva pošngtalet kršvs normalt fšr
String [] argv. Dagens Agenda. Mer om arrayer. Mer om arrayer forts. String [] argv. argv är variabelnamnet. Arrayer och Strängar fortsättning
Dagens Agenda String [] argv String [] argv Arrayer och Strängar fortsättning Booleska operatorer if, for, while satser Introduktion till algoritmer public static void main(string [] argv) argv är variabelnamnet
Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klass
Kungl. Tekn. Högskolan Förel 1, bild 1 Föreläsning 1: Introduktion ffl Kursinnehåll ffl Javarepetition ffl Referenser ffl Nyckelordet static ffl Klassen Mio ffl Särfall ffl Interface Kungl. Tekn. Högskolan
Skriftlig tentamen för kursen DV017A. Inledande programmering i Java A
Skriftlig tentamen för kursen DV017A Inledande programmering i Java A Skrivtid 4 timmar 09.00 13.00 Instruktioner Detta är en tentamen som består av fleralternativsfrågor. Här är några viktiga punkter:
Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER
Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER Logiska uttryck datatypen boolean Logiska uttryck kan ha två möjliga värden, true eller false. Variabler av typen boolean kan tilldelas
Parallellism, återblick
Parallellism, återblick Josef Svenningsson December 11, 2012 Lab7 Det är problem med lab7. Gå med i den grupp som ni använt tidigare. DEMO Flera saker händer samtidigt Ofta hanterar program olika indata
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11
Objektorienterad programmering i Java Undantag Sven-Olof Nyström Uppsala Universitet Skansholm: Kapitel 11 Undantag Engelska: exceptions Skansholm: exceptionella händelser Fel som genereras om man försöker
(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(16 februari 2016 F5.1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (16 februari 2016 F5.2 ) Pokertärningar
TDDC30. Kursledning Kursledare: Jonas Lindgren. Labassistent: Jonas Lindgren Labassistent: Niklas Holma Labassistent: Erik Nilsson
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 1 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Kursinformation Imperativa delen av
Command line argumenter. Objektorienterad Programmering (TDDC77) Vad blir resultatet? Nu då? Ahmed Rezine. Hösttermin 2016
Command line argumenter Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 /* Cla. java * Programmet illustrerar
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning VI: eclipse, felsökning, felhantering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2016 Outline Felhantering Eclipse Felsökning Command line argumenter
F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander
F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många
Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:
Omtentamen för TDA540 Objektorienterad Programmering Institutionen för Datavetenskap CTH HT-16, TDA540 Dag: 2017-04-12, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540. Tentamen för TDA540 Objektorienterad programmering
Institutionen för TENTAMEN CTH VT-15 Datavetenskap 2015-04-18 TDA540 Tentamen för TDA540 Objektorienterad programmering DAG: 15-04-18 TID: 14:00 18:00 Ansvarig: Joachim von Hacht och Christer Carlsson
Att skriva till och läsa från terminalfönstret
Att skriva till och läsa från terminalfönstret Oftast används grafiska komponenter i Java för att kommunicera med användaren (användargränssnitt), men det finns objekt i standardbiblioteken för de tillfällen