Föreläsning 11 Arrayer.

Slides:



Advertisements
Liknande presentationer
INTRODUKTION TILL PROGRAMMERING
Advertisements

Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
De fundamentala datatyperna
Klassarv och inkapsling
Föreläsning 4 Python: mera om funktioner och parametrar
Välkommen Vahid Mosavat
Programmeringsteknik för K och Media
Programmeringsteknik K och Media
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Att programmera i språket Java
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Föreläsning 2 Primitiva datatyper Variabler och konstanter Tilldelning Inläsning Operatorer Villkorssatsen if Slingor: while och for.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
i olika programmeringsspråk
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
Variabler: Datatyp - grundläggande : int, double, char, boolean eller
Programmering i C# 3. Klasser.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Repetition inför slutprovet
Klasser och objekt Klasser, objekt och instansvariabler
Pointers. int a=5; int f(int b) { a--; b++; return b; } int main() { int a=3; printf("%d,",f(a)); printf("%d",a); return 0; }
Programmering B PHP Lektion 2
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Programmeringsteknik för Media1 & K1
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
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.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
1 Föreläsning 5 Programmeringsteknik och Matlab 2D1312/2D1305 Repetition Metoder Array API och klassen ArrayList.
Föreläsning 10 Stränghantering.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Föreläsning 5 Arrayer & ArrayList Hur man använder API:n
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Tabeller -Villkorssatser -Repetitionssatser.
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 5 ( ) INNEHÅLL: -Metoder.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
Föreläsning 4 programmeringsteknik och Matlab 2D1312/ 2D1305
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Class VattenKraft{ public static void main(String[] args){ int num=150; int i, totflöde, maxflöde; int[] fall = new int[num]; //vattenflödet i vattenfallen.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Föreläsning 17 Repetition. Källkodsformat Unicode används åäöμψζ tillåtna i namn på identifierare Inte alla miljöer klarar av det Källkod Bytekod Java.
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 Marcus Hjelm
TILLÄMPAD DATALOGI (TILDA) Övning 1 Marcus Hjelm
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Övning2 programmeringsteknik och Matlab 2D1312/ 2D1305
Övning 3. Repetition Metoder class RepetitionMetoder { public static void main(String [] args) double längd = 2.0; double bredd = 1.0; double area =
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 programmeringsteknik och Matlab 2D1312/2D1305 Metoddeklaration och parametrar Arrayer och ArrayList.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
1 Föreläsning 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
-Repetition -Variabler -Primitiva typer (+ boolean) -Operatörer +, ++, --, -Typ konvertering -Wrapper klasser -Jämförelse operatörer,(==, =,,!=, !) -String.
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
Malmö högskola Rolf Axelsson 2003/2004 DA7235, 4 poäng Fält som returvärde Sortera fält Söka i fält Tvådimensionella fält Fält och spelplan Föreläsning.
DA7351 Programmering 1 Fält och objekt Tvådimensionella fält Sortera fält Föreläsning 13.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
Presentationens avskrift:

Föreläsning 11 Arrayer

Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen Person) GeometriObjekt (Cirkel och Rektangel)

Arrayer Array består av ett antal element Varje element lagrar ett värde av arrayens typ Varje element har ett index som avgör var i arrayen elementet finns tal[0] // första elementet, index 0 tal[1] // andra elementet, index 1 tal[2] // tredje elementet, index 2 En array med N element har 0 som första index och N-1 som sista

Deklarera och Skapa Array Arrayen heltal kan deklareras och skapas på följande sätt: int[] tal; // Deklarerar tal = new int[10]; // Skapar Eller så här: int[] tal = new int[10]; int tal[] = new int[10]; Arrayens namn är tal Arrayen innehåller 10 element av typen int tal[0], tal[1], …, tal[9]

Exempel På Olika Arrayer float[] priser = new float[500]; boolean[] flags; flags = new boolean[20]; char[] tecken = new char[1750]; int a = 33; double[] svar = new double[a + 67]; float[] priser2 = priser;

Arrayer Är Objekt I java ses en array som ett objekt Instansierar en array med new Finns en medlemsvariabel (length) En variabel av typen array är en referensvariabel Används arrayer som parameter skickas referensen, inte elementen En array är dock inte en instans av klassen Array

Arrayer Element refereras med namnet på arrayen följt av dess index tal[4] representerar en plats att lagra ett heltal av typen int T.ex kan den: tal[4] + 3; användas i en uträkning tal[4] = 3; tilldelas ett värde if (tal[4] == 67){...}; jämföras System.out.println(tal[4]); skrivas ut

Storleken på en Array En array har en fast storlek, som inte kan förändras Index som används för att referera ett element måste vara giltigt int tal[] = new int[10]; int i = 3; int j = 5; tal[4]; // Refererar till 5:e elementet tal[i]; // Refererar till 4:e elementet tal[i + j] // Refererar till 9:e elementet tal[j % i] // Refererar till 3:e elementet tal[4.4]; // Kan inte använda ett flyttal som index tal['4']; // Kan inte använda en char som index tal["4"]; // Kan inte använda en String som index tal[-1]; // Kan inte använda negativa tal som index tal[10]; // Kan inte använda tal större högsta index!

Storleken på en Array Varje array har en publik konstant som kallas length Denna konstant innehåller storleken på arrayen (antal element) tal.length; // Rätt tal.length(); // Fel! length innehåller antalet element, inte det högsta index. tal.length == 10 // Sant tal.length == 9 // Falskt

En Array Av Objekt Elementen i en array kan vara referenser till ett objekt Deklarationen: Person[] familj = new Person[3]; reserverar utrymme för att lagra 3 referenser till Person-objekt Några Person-objekt skapas inte Varje objekt i arrayen måste instansieras var för sig

När en array skapas, så skapas inte objekten som ska lagras i arrayen. En Array Av Personer familj 2 1 null Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); Skapar 4 objekt 1 array för att lagra Person-objekt 3 Person-objekt Arrayen används sen för att ”komma åt” de enskilda elementen Notera! När en array skapas, så skapas inte objekten som ska lagras i arrayen. String namn1 = familj[0].getNamn(); familj[1].setNamn("Svea Svensson"); familj[2].print();

Initiering Av Arrayer En array kan ges värden när den skapas Omges av klamrar, separeras med komma Storleken på arrayen bestäms genom antalet initieringsvärden int[] tal = {79, 87, 94, 82, 67, 98, 87, 81}; // 8 element String[] ord = {"Hej", "Java", "Array", "Snö"}; // 4 element double[] tal = {1.21, 32.212, 0.02, 10.1, 0.0}; // 5 element String[] betygSkala = {"IG", "G", "VG", "MVG"}; // 4 element Person[] f = {new Person("Pappa Svensson", 33), new Person("Mamma Svensson", 31), new Person("Dotter Svensson", 8)}; // 3 element

2D Arrayer En 2D-array är en array av arrayer Första arrayens storlek måste anges Den andra arrayen behöver inte vara av samma storlek int[][] array2d_1 = new int[10][10]; // 100 element totalt int[][] array2d_2 = new int[5][4]; // 20 element totalt int[][] array2d_3 = new int[2][]; // x element totalt array2d_3[0] = new int[5]; array2d_3[1] = new int[10]; Exempel på initiering int[][] i = { {0,1}, {1,2} , {2,3} , {3,4}, {4,5} };

Arrayer Som Parametrar En array kan skickas till en metod som en parameter int[] tal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; add1(tal); public void add1(int[] t) { ... } Det är referensen till arrayen som skickas Ändringar på ett element i metoden gör ändringar i ”originalet”

Arrayer som returvärde En metod kan även returnera en array av en viss typ int[] tal = skapaHeltalsArray(); public int[] skapaHeltalsArray() { int[] t = new int[10]; ... return t; }

Arrayer - Nackdelar Fast storlek Kan endast lagra en typ av element Kan varken öka eller minska dynamiskt Kan endast lagra en typ av element Saknar användbara metoder Person[] familj = new Person[3]; familj[0] = new Person("Pappa Svensson", 33); familj[1] = new Person("Mamma Svensson", 31); familj[2] = new Person("Dotter Svensson", 8); familj[3] = new Person("Son Svensson", 14); //kan inte öka familj[2] = new Hund("Karo"); //fel typ