Föreläsning Innehåll. Generisk klass. Några metoder i klassen ArrayList<E>
|
|
- Astrid Nilsson
- för 7 år sedan
- Visningar:
Transkript
1 Föreläsning Innehåll Klassen ArrayList<E> Klassen ArrayList<E> Inläsning från textfil, utskrift på textfil Arv Undervisningsmoment: föreläsning övning 5 laboration 9-10 Avsnitt i läroboken: , 12.8, , , 10 Avsnitt 12.6 och ingår inte i kursen, men är bra att läsa om du fortsätter med programmering på egen hand eller i någon annan kurs. Klassen ArrayList<E> används för att lagra element i en lista är en standardklass (i paketet java.util). innehåller alltid objekt (inte int, double,... ). lagrar internt sina element i en vektor. utökar vektorns storlek vid behov. har metoder för att sätta in och ta bort element... EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Några metoder i klassen ArrayList<E> /** Skapar en tom lista. */ ArrayList(); /** Returnerar elementet på plats pos. */ E get(int pos); /** Lägger in obj sist. */ void add(e obj); /** Tar bort elementet på plats pos, returnerar det borttagna elementet. */ E remove(int pos); /** Returnerar antalet element. */ int size(); Generisk klass ArrayList<E> är en generisk klass vilket innebär att den kan innehålla objekt av godtycklig typ. En generisk klass har en eller flera typparametrar. När en generisk klass används ersätts typparametrarna med klassnamn. Exempel där vi skapar en lista som kan innehålla String-objekt och sätter in tre teckensträngar i listan: ArrayList<String> words = new ArrayList<String>(); words.add("ett"); words.add("par"); words.add("ord"); EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
2 ArrayList kan bara innehålla objekt Wrapperklasser Om man vill lagra heltal, reella tal etc. måste man använda motsvarande wrapperklass: inte ArrayList<Integer> list = new ArrayList<Integer>(); list.add(2); ArrayList<int> list = new ArrayList<int>(); Primitiva typer i Java: boolean short int long char byte float double Motsvarande wrapperklasser: Boolean Short Integer Long Character Byte Float Double EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Autoboxing - unboxing int vs Integer Automatisk konvertering mellan primitiv datatyp och motsvarande wrapperklass. Exempel: Integer i = 12; // autoboxing till Integer-objekt Observera skillnaden mellan typerna int (primitiv datatyp) och Integer (klass). Exempel: int a = 12; Integer b = 12; // autoboxing, därför samma resultat som // Integer b = new Integer(12); ArrayList<Integer> list = new ArrayList<Integer>(); list.add(12); // autoboxing int n = list.get(0); // unboxing a b b är en referensvariabel som kan referera till Integer-objekt. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
3 Traversera elementen i en lista Mönster Behandla alla elementen i listan - for each Alternativ 1 Uppgift: Behandla alla elementen i en lista. Algoritm: för varje element i listan { använd elementet Det finns olika sätt att traversera listan: for each -sats använda metoderna get och size i en for-sats ArrayList<Integer> list = new ArrayList<Integer>(); list.add(53); list.add(-11); int sum = 0; for (int n : list) { sum = sum + n; // för varje heltal n i list Fungerar bra när man ska gå igenom listan från början. (Svårare om man inte ska starta från position 0.) Fungerar även för att traversera andra samlingar av element i Java. Man får inte ändra i listan med add eller remove inuti for-each-satsen. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Behandla alla elementen i listan - for-sats med get och size Alternativ 2 ArrayList<Integer> list = new ArrayList<Integer>(); list.add(53); list.add(-11); Övning En lista nbrs av typen ArrayList<Double> innehåller ett antal tal. Räkna antal positiva tal. int sum = 0; for (int i = 0; i < list.size(); i++) { sum = sum + list.get(i); Fungerar bra med klassen ArrayList. Kan bli långsam i andra sammanhang. Metoden get finns inte i alla Javas samlingsklasser. Tänk på att list.size() levererar ett nytt värde om listans antal element ändras. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
4 Vektor vs Arraylist<E> ArrayList<E> passar bra när antal element inte är bestämt. Klassen har färdiga metoder för att lägga till element, ta bort element... En vektor passar bra när man på förhand vet antal element. Exempel: en kortlek med 52 kort: Card[] deck = new Card[52]; en samling räknare vid registrering int[] nbrs = new int[6]; Observera att ett ArrayList-objekt är en lista och inte en vektor (även om det internt i objektet används en vektor för att lagra elementen.) En nyskapad list är tom från början. Ett anrop av metoden size() på en nyskapad lista ger resultatet 0. En nyskapad vektor har däremot redan från början det antal element som angavs vid skapandet. Elementen har startvärden (0, 0.0, false, null etc. beroende på typ). EDAA20 (F13-15 programmering) HT / 60 Exempel: klassen Polygon public class Polygon { private ArrayList<Point> vertices; /** Skapar en polygon. */ public Polygon() { vertices = new ArrayList<Point>(); /** Lägger till en ny punkt med koordinaterna x, y. */ public void addvertex(int x, int y) { vertices.add(new Point(x, y)); /** Flyttar polygonen avståndet dx i x-led, dy i y-led. */ public void move(int dx, int dy) { for (Point p : vertices) { p.move(dx, dy); EDAA20 (F13-15 programmering) HT / 60 Exempel: klassen Polygon Forts /** Ritar polygonen i fönstret w. */ public void draw(simplewindow w) { if (vertices.size() == 0) { return; Point start = vertices.get(0); w.moveto(start.getx(), start.gety()); for (int i = 1; i < vertices.size(); i++) { w.lineto(vertices.get(i).getx(), vertices.get(i).gety()); w.lineto(start.getx(), start.gety()); Sökmetoder i ArrayList<E> Det finns färdiga metoder för att söka i listan: /** Söker upp ett element som matchar obj. Returnerar true om sådant element element finns, annars false. */ boolean contains(object obj); /** Söker upp ett element som matchar obj. Returnerar index för första förekomsten av elementet, -1 om elementet inte finns. */ int indexof(object obj); /** Tar bort första förekomsten av objektet obj, om det finns. Returnerar true om ett element togs bort. */ boolean remove(object obj); Klassen Object i Java kan användas som typ för alla slags objekt. Det ingår inte i kursen att använda dessa metoder. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
5 Sökmetoder i ArrayList<E> Forts. Inuti metoderna med en parameter av typen Object används en metod boolean equals(object obj) för att jämföra obj med elementen i listan. Om den inte är implementerad på rätt sätt i elementens klass fungerar inte sökningen. Använd alltså inte dessa metoder om du inte vet vad du gör. Men lär dig hur du ska göra om du fortsätter programmera i Java. Överkurs En equals-metod finns i Javas wrapperklasser samt i klassen String. Att t.ex. anropa contains på en lista av typen ArrayList<Integer> eller ArrayList<String> är alltid ok. Om du vill använda dessa sökmetoder för att lagra objekt av en typ C och vill att med likhet menas att värdena på ett eller flera attribut överensstämmer måste du skriva en egen equals-metod i klassen C. EDAA20 (F13-15 programmering) HT / 60 Sökmetoder i ArrayList<E> Överkurs, forts. Om du vill använda sökmetoderna på en lista vertices av typen ArrayList<Point> måste du implementera metoden på equals i klassen Point: public class Point { private int x; private int y; // konstruktor och metoder public boolean equals(object obj) { if (! obj instanceof Point) { return false; Point p = (Point) obj; return x == p.x && y == p.y; EDAA20 (F13-15 programmering) HT / 60 Övning Sökning Lägg till följande metod i klassen Polygon: /** Undersöker om punkten x,y ingår bland polygonens hörnpunkter. */ public boolean hasvertex(int x, int y) { Insättning i sorterad följd Exempel: ArrayList<String> wordlist= new ArrayList<String>(); wordlist.add("apelsin"); wordlist.add("banan"); wordlist.add("druva"); wordlist.add("enbär"); Uppgift: Lägg till ordet word idenredansorteradelistan. wordlist "apelsin" "banan" "druva" "enbär" word "citron" EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
6 Insättning i sorterad följd Klassen Scanner Lösning: Sök efter positionen för word, dvs. sök efter det första ord som är större än eller lika med word. Sätt in word på rätt position i listan: int pos = 0; while (pos < wordlist.size() && wordlist.get(pos).compareto(word) < 0) { pos++; wordlist.add(pos, word); wordlist "apelsin" "banan" "citron" "druva" "enbär" Vi har tidigare i kursen skapat Scanner-objekt som läser från tangentbordet: Scanner scan = new Scanner(System.in); Man kan också skapa Scanner-objekt som läser från en fil (här från en fil med namnet indata.txt): Scanner scan = new Scanner(new File("indata.txt")); Det är inte säkert att den angivna filen finns. Då får man ett fel som man måste ta hand i en try catch-sats. Se nästa bild. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 try catch-sats Vissa fel, t.ex. att försöka öppna en fil som inte finns, måste man ta hand om i en try catch-sats. I exemplet nedan görs ett försök att öppna filen indata.txt. Om det inte går avbryts exekveringen av satserna i try-blocket och satserna i catch-blocket kommer att utföras. try { // Här försöker vi öppna filen indata.txt scan = new Scanner(new File("indata.txt")); catch (FileNotFoundException e) { // Här kan man skriva vad som ska hända om // filen inte kan öppnas. Läsa indata från fil Exempel public class SumNumbers { public static void main(string[] args) { Scanner scan = null; try { scan = new Scanner(new File("tal.txt")); catch (FileNotFoundException e) { System.out.println("Filen kunde inte öppnas"); System.exit(1); int sum = 0; while (scan.hasnextint()) { sum = sum + scan.nextint(); System.out.println("Summa: " + sum); scan.close(); EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
7 Utskrift på fil Klassen PrintWriter Utskrift på fil Exempel public class PrintWriterExample { public static void main(string[] args) { PrintWriter out = null; try { out = new PrintWriter(new File("utdata.txt")); catch (FileNotFoundException e) { System.out.println("Filen kunde inte öppnas"); System.exit(1); utskrifter med out.print hamnar på filen out.close(); public class PrintSquareRoots { public static void main(string[] args) { PrintWriter out = null; try { out = new PrintWriter(new File("utdata.txt")); catch (FileNotFoundException e) { System.err.println("Filen kunde inte öppnas"); System.exit(1); for (int i = 1; i <= 100; i++) { out.println("kvadratroten av " + i + " = " + Math.sqrt(i)); out.close(); EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Klassdiagram UML Arv Exempel Unified Modelling Language kan användas för att beskriva klasser och samband mellan klasser. används även vid design av databaser. Klassdiagram, exempel: En kortlek kan innehålla många kort. Ett kort ingår i en kortlek. Antag att vi i ett program hanterar olika slags fordon: public class Car { public class Bus { private String licensenbr; private String licensenbr; private Person owner; private Person owner; private int maxpassengers; private int maxpassengers; Carddeck 1 * Card suit rank public class Truck { public class MotorCycle { private String licensenbr; private String licensenbr; private Person owner; private Person owner; private int maxload; EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
8 Problem De olika slagen fordon har olika egenskaper och beskrivs i var sin klass: Car, Truck, Bus och MotorCycle. Problem 1: Antag att vi vill simulera en kö framför ett trafikljus. Kön representeras av en lista eller en vektor med fordon. Hur ska vi deklarera en sådan lista eller vektor? Vilken typ har elementen? Problem 2: Klasserna har en hel del likadan kod (attributen licensenbr och owner ). Onödigt att skriva samma kod flera gånger. Jobbigt om något behöver ändras. Gemensam typ för fordon Lösning på problem 1 Vi behöver en klass som beskriver fordon: Vehicle Då kan vi skapa listor och vektorer som kan innehålla olika slags fordon: ArrayList<Vehicle> list = new ArrayList<Vehicle>(); Vehicle[] v = new Vehicle[100]; Men får vi sätta in t.ex. Car-objekt i list eller v? Ja, om Car ärver klassen Vehicle: public class Car extends Vehicle { EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Arv Klassdiagram Referensvariabler och arv Vehicle superklass En referensvariabel som deklarerats med typen C får referera till objekt av klassen C och dessutom till objekt av alla subklasser till C. Exempel: En variabel med typen Vehicle får referera till objekt av alla subklasser till Vehicle. Car Truck Bus MotorCycle Vehicle avehicle; avehicle = new Car("ABC123", p1, 5); avehicle = new Bus("DEF789", p2, 56); subklass EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
9 Superklass Lösning på problem 2 Abstrakta klasser Låt superklassen Vehicle innehålla de attribut och metoder som är gemensamma för alla fordon. Klasserna Car, Truck, Bus och MotorCycle får ärva dessa attribut och metoder från klassen Vehicle. public abstract class Vehicle { private String licensenbr; private Person owner; I program som använder våra fordonsklasser kommer vi inte att skapa objekt av klassen Vehicle, utan bara av klasserna Car, Truck, Bus och MotorCycle. I verkligheten finns bilar, bussar, lastbilar och motorcyklar, men på vägarna kör det inte omkring någonting som bara är fordon. Superklasser man inte ska skapa objekt av kallas abstrakta klasser. public abstract class Vehicle { EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Subklasser Arv Klassdiagram Kvar i respektive subklass är de attribut och metoder som är specifika för just det fordonet. public class Car extends Vehicle { private int maxpassengers; Vehicle licensenbr owner public class Bus extends Vehicle { private int maxpassengers; Car maxpassengers Bus maxpassengers Truck maxload MotorCycle public class Truck extends Vehicle { private int maxload; EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
10 Objekt innehåller både ärvda och egna attribut Exempel: Car-objekt En klass kan vara både superklass och subklass Klassdiagram Deklareras i superklassen Vehicle Deklareras i subklassen Car licensenbr owner maxpassengers "ABC123" 5 PassengerVehicle maxpassengers Vehicle licensenbr owner Truck maxload MotorCycle Car Bus EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Konstruktorer i superklasser public, private eller protected Vehicle har en konstruktor (fast vi inte ska skapa Vehicle-objekt.) Den kommer att anropas inuti subklassernas konstruktorer. Inuti konstruktorn ges startvärden till de attribut som är deklarerade i Vehicle. public abstract class Vehicle { private String licensenbr; private Person owner; /** Initierar ett Vehicle-objekt med registreringsnumret licensenbr och ägaren owner. */ protected Vehicle(String licensenbr, Person owner) { this.licensenbr = licensenbr; this.owner = owner; I klassen måste man tala om vilka storheter som ska vara åtkomliga utanför klassen. public åtkomlig utanför klassen private endast åtkomlig inuti i klassen protected åtkomlig i klassen och i alla dess subklassser Ofta är attribut och konstruktorer i superklasser deklarerade protected. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
11 Konstruktorer i subklasser Fördelar med arv Genom att lägga till satsen super() först i konstruktorn ser man till att superklassens konstruktor utförs. public class Truck extends Vehicle { private int maxload; Modellen beskriver det verkliga systemet bättre. Gemensamma attribut och metoder behöver bara skrivas en gång i superklassen. /** Skapar ett Truck-objekt med registreringsnumret licensenbr, ägaren owner och maxlasten maxload. */ public Truck(String licensenbr, Person owner, int maxload) { super(licensenbr, owner); this.maxload = maxload; Vi kan deklarera referensvariabler som får referera till objekt av alla de olika subklasserna. Exempel: ArrayList<Vehicle> list = new ArrayList<Vehicle>(); list.add(new Car("ABC123", p1, 5)); list.add(new Bus("DEF789", p2, 56)); EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Klassen Object Metoden tostring i klassen Object I klassen Object finns metoden: I Java finns en klass Object som är superklass till alla andra klasser. En referensvariabel av typen Object kan alltså referera till objekt av alla typer. Exempel: Object obj = new Car("ABC123", p1, 5); I klassen Object finns det några metoder (t.ex. tostring och equals) som alla andra klasser ärver. /** Skapar en "läsbar representation" av objektet. */ String tostring(); När man skriver ut ett objekt, t.ex: Car c = new Car("ABC123", p1, 5); System.out.println(c); så är det metoden tostring som används inuti println. Man kan definiera om (skugga) metoden tostring så att man får exakt den utskrift man vill ha. Man kan t.ex. lägga till följande metod i klassen Car: public String tostring() { return licensenbr; EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
12 Metoden equals i klassen Object Exempel: geometriska figurer I klassen Object finns metoden: /** Undersöker om detta objekt är lika med obj. */ boolean equals(object obj); Metoden equals i Object fungerar likadant som ==, dvs. jämför referenser. I följande exempel returnerar equals därför värdet false trots att bägge bilarna har samma värden på attributen: Car c1 = new Car("ABC123", p1, 5); Car c2 = new Car("ABC123", p1, 5); c1.equals(c2) c1 c2 "ABC123" "ABC123" I ett program ska geometriska figurer (kvadrater och cirklar) hanteras. Figurerna ska kunna flyttas och ritas upp på skärmen. Figurerna ska kunna ritas i ett SimpleWindow-fönster. Figurerna ska kunna flyttas. För att beskriva en figurs läge ska klassen Point användas. Vilka klasser behövs? Hur ska arv användas? Man kan själv definiera om (skugga) metoden equals så att den jämför innehållet i objekten istället. Detta är gjort i Javas wrapperklasser och i klassen String. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 När ska arv användas? Här ska arv inte användas public class Point { private int x, y; Arv passar bra när man har en är en -relation mellan klasser. En kvadrat är en slags figur. En cirkel är en slags figur. public Point(int x, int y) { this.x = x; this.y = y; public void move(int dx, int dy) { x = x + dx; y = y + dy; Ska klassen Point vara superklass till klassen Shape så att klassen Shape kan ärva attributen x, y och metoden move? Nej! En figur är inte en slags punkt. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
13 Superklassen Shape Sammansättning Subklassen Square En figur har en punkt som anger figurens läge. public abstract class Shape { protected Point location; protected Shapes(int x, int y) { location = new Point(x, y); public void move(int dx, int dy) { location.move(dx, dy); // figurens läge public class Square extends Shape { private int side; public Square(int x, int y, int side) { super(x, y); this.side = side; public int getside() { return side; public void draw(simplewindow w) { // rita fyra linjer i en kvadrat EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Subklassen Circle Exempel på arv: geometriska figurer public class Circle extends Shape { private int radius; public Circle(int x, int y, int radius) { super(x, y); this.radius = radius; Shape location move(int, int) public int getradius() { return radius; public void draw(simplewindow w) { // rita många linjer i en cirkel Square side draw(simplewindow) Circle radius draw(simplewindow) EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
14 Typregler för arv Uppgift Flytta figurerna En referensvariabel som deklarerats med typen C får referera till objekt av klassen C och dessutom till objekt av alla subklasser till C. Shape s; Circle c; Vilka tilldelningssatser är korrekta? 1 c = new Circle(100, 100, 50); 2 s = new Circle(100, 100, 50); 3 c = new Square(100, 100, 50); 4 s = new Square(100, 100, 50); Antag att det i en vektor shapes finns 100 figurer lagrade. Flytta alla figurerna 10 pixels i x-led och 20 pixels i y-led. Shape[] shapes = new Shape[100]; // 100 figurer av olika slag läggs in i vektorn for (int i = 0; i < shapes.length; i++) { shapes[i].move(10, 20); Alla figurer flyttas på samma sätt. Metoden move implementeras därför i superklassen Shape. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Rita figurerna Problem med metoden draw Antag att det i en vektor shapes finns 100 figurer lagrade. Rita alla figurerna. Shape[] shapes = new Shape[100]; // 100 figurer av olika slag läggs in i vektorn for (int i = 0; i < shapes.length; i++) { shapes[i].draw(w); Kvadrater och cirklar ritas på olika sätt. Metoden draw måste därför implementeras i subklasserna Square respektive Circle. Ok: Square sq = new Square(100, 100, 50); sq.draw(w); Ok: Shape s = new Square(100, 100, 50); s.move(10, 20); Borde fungera, men fungerar inte ännu: Shape s = new Square(100, 100, 50); s.draw(w); Eftersom s är deklarerad med typen Shape så söker kompilatorn i klassen Shape och uppåt i arvshierarkin efter draw. Men metoden draw finns inte där. Istället är draw implementerad i subklasserna Square och Circle. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
15 Lösning abstrakt metod Dynamisk bindning För att vi ska kunna skriva s.draw() och shapes[i].draw() måste det finnas en metod draw i klassen Shape. Lösningen är att deklarera draw som en abstrakt metod. public abstract class Shape { protected Point location; protected Shapes(int x, int y) { location = new Point(x, y); public void move(int dx, int dy { x = x + dx; y = y + dy; Java använder dynamisk bindning vid metodanrop. Det innebär att det är objektets typ som under exekveringen avgör vilken metod som ska anropas. När satsen shapes[i].draw(w) ska utföras undersöker Java-systemet objektet shapes[i]. Om det är ett Square-objekt så anropas draw i Square, om det är ett Circle-objekt så anropas draw i Circle. public abstract void draw(simplewindow w); EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60 Objektuttrycken this och super Checklista this Referens till det aktuella objekt. super Referens till det aktuella objekt, men har superklassens typ. Exempel på vad du ska kunna Förklara begreppet generisk klass. Använda klassen ArrayList<E>. Skriva ut data på en textfil Läsa in data från en textfil Förstå och rita enkla UML-diagram. Förklara begreppen: arv, superklass, subklass, abstrakta klasser och metoder. Implementera superklasser och subklasser. EDAA20 (F13-15 programmering) HT / 60 EDAA20 (F13-15 programmering) HT / 60
Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna
Föreläsning 13-15 Innehåll Checklista Klassen ArrayList Arv Undervisningsmoment: föreläsning 13-15 övning 5 laboration 9-10 Avsnitt i läroboken: 12.1-3, 12.8, 9.1-9.6, 10 Avsnitt 12.6 och 12.10 ingår
Läs merEDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass
EDAA20 Föreläsning 11-12 Klassen ArrayList Klassen ArrayList Skriva program som läser data från en textfil och skriver data till en textfil Repetition inför delmålskontroll 2 är en standardklass (i paketet
Läs merObjektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt
Föreläsning 15 & 16 ARV Objektorienterad programmering (OOP) Idé: vi ser ett program som en modell av verkligheten Ursprung: Simula-67, Norsk regnesentral, 1960-talet Smalltalk-80: Xerox PARC, 1970-talet
Läs merFöreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts
Föreläsning 11-12 Innehåll Hantera många element Tidigare har vi använt vektorer för att lagra många element av samma tp. Eempel: Klassen ArraList Inläsning från tetfil, utskrift på tetfil int[] nbrs
Läs merFöreläsning 13 Innehåll
Föreläsning 13 Innehåll Arv Repetition Om tentamen Datavetenskap (LTH) Föreläsning 13 HT 2017 1 / 32 Diskutera Här är början på klassen MemoryWindow som använts på en lab. Vad kan menas med extends SimpleWindow?
Läs merFö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
Läs merFöreläsning 5-6 Innehåll
Föreläsning 5-6 Innehåll Skapa och använda objekt Skriva egna klasser Datavetenskap (LTH) Föreläsning 5-6 HT 2017 1 / 32 Exempel på program med objekt public class DrawSquare { public static void main(string[]
Läs merSaker du ska kunna Föreläsning 13 & 14
Saker du ska kunna Föreläsning 13 & 14 LISTOR Ta bort element från en vektor Både sorterad och osorterad Söka upp element i en vektor Linjärsökning räcker (jag har även visat binärsökning) Registrering
Läs merFöreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser
Föreläsning 5-6 Innehåll Exempel på program med objekt Skapa och använda objekt Skriva egna klasser public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600,
Läs merFö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
Läs merEDAA20 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
Läs merEDAA20 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
Läs merFö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
Läs merDatastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer
Föreläsning 1-12 Innehåll Vektorer Registrering (räkna element av olika slag) Sökning Matriser Klasserna String och StringBuilder Repetition inför delmålskontroll 2 Undervisningsmoment: föreläsning 1-12
Läs merFö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å
Läs merExempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp
Föreläsning 3-4 Innehåll Eempel på program med objekt Klass med main-metod Klasser Implementera (skriva programkod för) egna klasser Datatper Undervisningsmoment: föreläsning 3-4 övning 2 laboration 3-5
Läs merObjekt-orientering. Java är ett objekt-orienterat programmeringsspråk
Repetition EDAA10 Objekt-orientering Java är ett objekt-orienterat programmeringsspråk Program byggs upp av klasser och objekt Objekt instantieras från klasser Klasser och objekt innehåller attribut och
Läs merJava Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
Läs merOOP 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
Läs merFöreläsning 2 Innehåll. Generiska klasser. Generik i Java. Varför generiska klasser Bakgrund
Föreläsning 2 Innehåll Generiska klasser Javas samlingsklasser är generiska. Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element metoden equals En generisk
Läs merFö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äs merFöreläsning 2 Innehåll
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs mer1 Repetition av viktiga begrepp inom objektorienterad programmering
Repetition av viktiga begrepp inom objektorienterad programmering 3 1 Repetition av viktiga begrepp inom objektorienterad programmering Tema: Arv, parameteröverföring, statiska attribut och metoder. Litteratur:
Läs merRepetition av OOP- och Javabegrepp
ArrayList Repetition av OOP- och Javabegrepp En lista i vilken man kan lagra objekt Implementerar List-interfacet Skiljer sig från ett vanligt endimensionellt fält: Dynamisk expanderar när den blir
Läs merRepetition av viktiga begrepp inom objektorienterad programmering
Repetition av viktiga begrepp inom objektorienterad programmering Tema: Arv, parameteröverföring, statiska attribut och metoder. Arv U 1. Betrakta följande klasser: public class Person { protected String
Läs merFö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
Läs merMål Förklaring av termer
Föreläsning 1 Innehåll Detta kan du Förkunskaper Introduktion Kursens mål och innehåll Undervisning Arv, abstrakta klasser och metoder (repetition) Abstrakta datatyper - lista, stack, FIFO-kö, mängd, map,
Läs merArv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }
En klassdefinition class A extends B {... Arv definierar en klass A som ärver av B. Klassen A ärver alla fält och metoder som är definierade för B. A är en subklass till B. B är en superklass till A. class
Läs merKompilering 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
Läs merMål Förklaring av termer
Föreläsning 1 Innehåll Detta kan du Förkunskaper Introduktion Kursens mål och innehåll Undervisning Abstrakta datatyper och delar av Javas klassbibliotek Arv, abstrakta klasser och metoder (repetition)
Läs merAtt 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
Läs merTDDD78 Viktiga begrepp, del 2
jonas.kvarnstrom@liu.se 2015 TDDD78 Viktiga begrepp, del 2 Identitet och likhet Är likhet och identitet samma sak? Oj, vi har samma kläder på oss idag! Nej, men likadana! Besserwisser 3 Detta är två rutor
Läs merFöreläsning 3 Innehåll. Generiska klasser. Icke-generisk lista ArrayList, skiss av implementering. Icke-generisk lista Risk för fel
Föreläsning 3 Innehåll Generiska klasser Implementera generiska klasser Exceptions Dokumentationekommentarer javadoc Enhetstestning - junit Man kan deklarera en eller flera typparametrar när man definierar
Läs merLite 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
Läs merIdag. 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
Läs merTDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2
TDA550 Objektorienterad programvaruutveckling IT, forts. kurs Övning vecka 2 Pelle Evensen, Daniel Wetterbro 5 november 2009 Sammanfattning Denna vecka ska vi titta på abstrakta klasser kontra interface,
Läs merDAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU
DAT043 Objektorienterad programmering för D, DIT011 Objektorienterad programvaruutveckling för GU lösningsförslag till tentamen 2017-06-09 Tid: 8:30-12:30. Plats: SB. Ansvarig lärare: Fredrik Lindblad,
Läs merDel 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
Läs merFö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
Läs merSubklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 5 Innehåll Subklasser och arv Inledning till grafik (JFrame och JPanel).
Läs merClasses och Interfaces, Objects och References, Initialization
Classes och Interfaces, Objects och References, Initialization Objekt-orienterad programmering och design (DIT953) Niklas Broberg/Johannes Åman Pohjola, 2018 Abstract class En abstract class är en class
Läs merProgrammering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.
Programmering med Java Programmering med Java Programspråket Java Källkodsexempel Källkod Java API-exempel In- och utmatning Grunderna Ann Pan panda@nada.kth.se Rum 1445, plan 4 på Nada 08-7909690 Game.java
Läs merInnehåll. dynamisk bindning. och programmering CRC) u Arv, polymorfi och
Innehåll u OOP snabbintroduktion u Datatyper u Uttryck u Satser u Arv (intro) u Programvaruutveckling och programmering u Klassdesign och metodik (UML, CRC) u Arv, polymorfi och dynamisk bindning u Fält
Läs merDagens 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
Läs merF8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander
F8 - Arv ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Arv och subklasser Klasser innehåller attribut och beteenden En subklass ärver dessa från föräldern Detta ger: Återanvänd kod
Läs merIdag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes
Idag statiska metoder och variabler private/public/protected final, abstrakta klasser, gränssnitt, delegering wrapper classes ett lite större exempel Objectorienterad programmering Sida 1 Vad vi vet om
Läs merKonstruktion av klasser med klasser
Konstruktion av klasser med klasser Klasser kan byggas på redan denierade klasser genom att klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: Klassen PairOfDice har två attribut attribut
Läs merDagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.
(1 oktober 2017 F5 1 ) Dagens text Programmeringsteknik Mer om Scanner-klassen Dialogrutor (klassen JOptionPane) Bubbelsortering ArrayList Omslagsklasser Arbetsexempel (1 oktober 2017 F5 2 ) Pokertärningar
Läs mer2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning
2I1049 Föreläsning 5 Objektorienterad programmering i Java KTH-MI Peter Mozelius Objektorientering Världar uppbyggda av objekt Inte helt olikt vår egen värld Ett sätt att modularisera våra system Objekten
Läs merDagens 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
Läs merpublic och private Obs: private inte skyddar mot access från andra objekt i samma klass.
public och private En metod som är public får anropas från alla metoder i alla klasser. Ett attribut som är public får avläsas och ändras från alla metoder i alla andra klasser. En metod som är private
Läs merFöreläsning 2 Innehåll
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
Läs merClasses och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016
Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016 Abstract class En abstract class är en class som inte kan skapa några objekt. Syfte:
Läs merAbstrakt datatyp. -Algoritmer och Datastrukturer- För utveckling av verksamhet, produkter och livskvalitet.
-Algoritmer och Datastrukturer- Abstrakt datatyp Datatyp för en variabel Betecknar i ett programmeringsspråk den mängd värden variabeln får anta. T ex kan en variabel av typ boolean anta värdena true och
Läs merSeminarium 3 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.
Seminarium 3 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Java Collections Framework interface och klasser för samlingar av element interfacen Iterator och Iterable och foreach-sats
Läs merArrayer. 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
Läs merTentamen, EDAA20/EDA501 Programmering
LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna
Läs merFö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
Läs merExempel. 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
Läs merEtt 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
Läs merExempel på användning av arv: Geometriska figurer
(9 maj 2014 Klasshierarkier 1 ) Exempel på användning av arv: Geometriska figurer Uppgift: Skriv ett program som kan hantera några olika geometrisk figurer: linjer, cirklar och rektanglar. (9 maj 2014
Läs merObjekt som argument. Föreläsning 7-8 Innehåll. Hur komma åt den andra kvadratens attribut? Anropa metod på objektet självt
Föreläsning 7-8 Innehåll Objekt som argument Antag att vi har lagt till följande metod i klassen Square (från lab 4). Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder
Läs merSeminarium 2 Introduktion till Java Collections Framework Innehåll. Generik Bakgrund. Exempel på en generisk klass java.util.arraylist.
Seminarium 2 Introduktion till Java Collections Framework Innehåll Generik Bakgrund Generik används för att få typsäkra datastrukturer Java Collections Framework Standardbibliotek med datastrukturer i
Läs merEDAA30 Programmering i Java - fortsättningskurs
Föreläsning 1 Föreläsning 1 Innehåll EDAA30 Programmering i Java - fortsättningskurs cs.lth.se/edaa30 Kursansvarig: Marcus Klang marcus.klang@cs.lth.se Introduktion Kursens mål och innehåll Undervisning
Läs merKlasshierarkier - repetition
Klasshierarkier - repetition Klasser kan byggas på redan denierade klasser, egna och/eller färdigskrivna, genom: I att klassobjekt används som attribut (instansvariabler): har-relation. Exempel: traksystemet
Läs merTENTAMEN 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
Läs merFöreläsning 7-8 Innehåll
Föreläsning 7-8 Innehåll Mer om att skriva egna klasser Fel och felsökning Klasserna String och StringBuilder Datavetenskap (LTH) Föreläsning 7-8 HT 2017 1 / 42 Objekt som argument Antag att vi har lagt
Läs mer2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det rik
2D1311 Programmeringsteknik för Bio1 och Bio2, vt 2003 Fiktivt prov På flervalsfrågorna är endast ett svar rätt om inget annat anges i frågan! Det riktiga provet tar 45 minuter (en lektionstimme) och det
Läs merGrundkurs 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
Läs merFöreläsning 4 Innehåll. Abstrakta datatypen lista. Implementering av listor. Abstrakt datatypen lista. Abstrakt datatyp
Föreläsning 4 Innehåll Abstrakta datatypen lista Definition Abstrakta datatypen lista egen implementering Datastrukturen enkellänkad lista Nästlade klasser statiska nästlade klasser inre klasser Listklasser
Läs merJava Collections Framework. Föreläsning 2 Innehåll. Java Collections Framework interface hierarki. Java Collections Framework interface hierarki
Föreläsning 2 Innehåll Java Collections Framework (interface och klasser för samlingar av element) Använda generiska klasser autoboxing - och unboxing Iterera genom en samling element Jämföra element skugga
Läs mer2. Betrakta följande program, där fyra heltal läses från tangentbordet och några (ointressanta) beräkningar görs:
Övningsuppgifter I kursen ingår 10 övningar (det är ingen övning vecka 7 i läsperiod ht2). Under övningarna ska du självständigt eller tillsammans med en kamrat lösa övningsuppgifterna. Övningsledaren
Läs merGrundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Läs merTENTAMEN OOP
TENTAMEN OOP 2013-08-08 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
Läs merObjektorienterad 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
Läs merOOP Objekt-orienterad programmering
OOP F9:1 OOP Objekt-orienterad programmering Föreläsning 9 Arv och klasshierarkier Polymorfism OOP F9:2 Djur - String namn - int vikt + String getnamn() + int getvikt() + void ökavikt(int x) Ko - int mjölkvolym
Läs merInkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private
Inkapsling tumregler Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler Tobias Wrigstad (baserat på material från Tom Smedsaas) 5 november 2010 1. Man skall
Läs merF12 - Collections. ID1004 Objektorienterad programmering Fredrik Kilander
F12 - Collections ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Collections (samlingar) En collection är ett objekt som fungerar som en samling av andra objekt En collection erbjuder
Läs merÖvning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone.
TDA550 - Objektorienterad programvaruutveckling, fk Övning 4. I denna övning ska vi titta på icke-muterbarhet kontra muterbarhet, samt metoderna equals, hashcode och clone. Uppgift 1 Icke-muterbarhet kontra
Läs merFöreläsning 9 Innehåll
Föreläsning 9 Innehåll Binära sökträd algoritmer för sökning, insättning och borttagning, implementering effektivitet balanserade binära sökträd, AVL-träd Abstrakta datatyperna mängd (eng. Set) och lexikon
Läs merF4. programmeringsteknik och Matlab
Programmeringsspråk Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer 1 Ett program är en eller flera instruktioner
Läs merDel A (obligatorisk för alla)
Del A (obligatorisk för alla) A1. Koden följer garanterat namnkonventionerna. Ringa in rätta svar och lämna in tillsammans med dina övriga svar! a) Hur många objekt skapas av följande kod? World w = new
Läs merOOP Objekt-orienterad programmering
OOP F10:1 OOP Objekt-orienterad programmering Föreläsning 10 Mer om arv och klasshierarkier Interface Hierarkier - många nivåer OOP F10:2 Djur Rovdjur Hovdjur Fåglar Fiskar Björn Kattdjur Ko Lamm Hjort
Läs merBegreppet subtyp/supertyp i Java. Mera om generik. Generik och arv. Generik och arv. Innehåll
Mera om generik Begreppet subtyp/supertyp i Java Innehåll Wildcards Vektorer och generik Supertyper för en viss klass C är alla klasser från vilka C ärver och alla interface som klassen implementerar.
Läs mer5. En metod som anropar sig själv a) får inte förekomma i Java-program b) kallas destruktiv c) kallas iterativ d) kallas rekursiv 6. Vilka värden har
Datalogi I, grundkurs med Java 10p, 2D4112, 2002-2003 Exempel på tentafrågor i Java Först följer frågor av flervalstyp. Frågorna är inte ordnade efter svårighetsgrad. 1. Skillnaden mellan typerna int och
Läs merFöreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser
Föreläsning 8 Arv och abstrakta klasser Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen (extends) Den nya klassen behåller alla egenskaper som den gamla
Läs merKlasshierarkier. Klasser kan byggas på redan definierade klasser
Klasshierarkier Klasser kan byggas på redan definierade klasser på två sätt: Klassobjekt används som dataattribut när en ny klass beskrivs. Exempel: klassen partikel består av ett antal attribut av typen
Läs merLaboration 1: Figurer i hierarki
Laboration 1: Figurer i hierarki Bakgrund Två grundläggande tekniker i objektorienterad konstruktion är arv och komposition. Mål Laborationen har flera avsikter: 1. Ge kunskaper i hur program kan organiseras
Läs merFöreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER
Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER Denna vecka Läsperiodens sista föreläsning Uppsamlingslabb (laboration 6 redovisas först nästa läsperiod) Ingen resurstid
Läs merTentamen 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
Läs merFö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
Läs merTDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 4 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Interface Generiska klasser Undantag
Läs merOmtentamen 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-08-30, Tid: 14.00-18.00 Ansvarig: Examinator: Alex Gerdes Carlo A. Furia Förfrågningar:
Läs merTDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Mer om Interface Generiska klasser Undantag Nästlade klasser 1
Läs merTvådimensionella fält
Tvådimensionella fält Tvådimensionella fält är fält av fält. int[][] tabell = new int[][4]; tabell Tvådimensionella fält Istället för att skapa ett tvådimensionellt fält med new kan fältet skapas genom
Läs merDAT043 - föreläsning 8
DAT043 - föreläsning 8 Paket, generics, Java collections framework 2017-02-07 Paket och tillgänglighet Ovanför klasser finns en hierarkisk namespace med paket. Filer som inte deklareras i något paket finns
Läs merProgrammering i C++ EDA623 Arv. EDA623 (Föreläsning 6) HT 2013 1 / 42
Programmering i C++ EDA623 Arv EDA623 (Föreläsning 6) HT 2013 1 / 42 Arv Innehåll Härledda klasser Konstruktorer och destruktorer vid arv Tillgänglighet Polymorfism och dynamisk bindning Abstrakta klasser
Läs merOutline. 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
Läs merArv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier
Arv Fundamental objekt-orienterad teknik arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier Programmeringsmetodik -Java 165 Grafisk respresentation: Arv
Läs mer