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.

Slides:



Advertisements
Liknande presentationer
Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Advertisements

INTRODUKTION TILL PROGRAMMERING
Repetition av språket Java
Föreläsning 3 Repetition Operatorer Styrstrukturer Deklaration och anrop av metoder.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Metoder i java Det finns två typer av metoder i java
Om Java C =>Java syntax variabler metoder färdiga klasser
Arv.
Polymorfism.
Välkommen Vahid Mosavat
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
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.
Föreläsning 11 Arrayer.
Objektorienterad programmering i Java
OOP F4:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder.
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
Programmering B PHP Lektion 2
int res2=Math.max(tal1,tal2);
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
Föreläsning 7 Uttryck, Operatorer Och Kontrollflöden.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 3 ( ) INNEHÅLL: -Jämförelseoperatorer -Villkorssatser -Logiska operatorer.
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 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
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 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.
F4 - Funktioner & parametrar 1 Programmeringsteknik, 4p vt-00 Modularisering ”svarta lådor” Väl definierade arbetsuppgifter Enklare validering Enklare.
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
Föreläsning 1 Om kursen Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Föreläsning 3, Kapitel 3 Objektinteraktion - Skapa objekt som samarbetar Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David.
OOP F13:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 13 Repetition variabler, selektion och iteration.
OOP F2:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 2 Deklaration och tilldelning Programsatser Tilldelning Input/Output Selektion.
Central-enhet PM CPU BIOS Skiv- minne Sekundär- minnes- enheter (SM)
Föreläsning 3 Villkorssatsen if Slingor: while och for Felsökning.
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
F2 1 Programmeringsteknik, 4p vt-00 Kommentarer Allt mellan /* och */ Varje kommentar byts ut mot en blank av kompilatorn /* Exempel på uttryck, tilldelningsoperatorn.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
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.
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.
Föreläsning4 Repetition slingor Metoder. while-sats består av följande delar: 1. while 2. Villkor-sats (condition) 3. uttryck (statement) while-sats int.
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.
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
Presentationens avskrift:

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 VM för Macintosh Java VM för Windows.java.class ÅÄÖ… … använd helst inte dessa som namn på identifierare.

Den Virtuella Javamaskinen Läser, tolkar och exekverar bytekod Är skrivet för aktuell plattform Måste skaffas om den inte finns Bytekod- filer Virtuell Java Maskin Underliggande Operativ System läser anropar

Klasser Javaprogram beskrivs i klasser En klass är en typdefinition av något En klass består av fält och metoder fält: data som ska associeras till klassen metod: operationer som ska utföras Klass Fält (medlemsvariabler) Metoder Satser Villkor Iterationer (loopar)

public class Punkt { // Inledande vänsterklammer } // Avslutande högerklammer Klassdeklaration Exempel Notera! En klass kan aldrig deklareras som privat (private). (åtkomstodifierare) class Namn (extends) Vissa modifierare kan uteslutas

private int xkord; Fältdeklaration Åtkomstmodifierare Skilj mellan fältvariabler och andra variabler. T.ex lokala variabler som deklareras i en metod. Fälttyp Fältnamn Fält kan vara primitiva typer eller objekt

public void setX(int x) Metoddeklaration En metod är åtkomlig i hela den egna klassen. Dvs den kan anropas från alla andra metoder i klassen Åtkomstmodifierare Returtyp Metodnamn Kodsatser inom matchande klamrar Parametrar

Att Skapa Objekt Enda sättet att skapa är med new Punkt p = new Punkt(); Punkt p; // p == null p = new Punkt(); Eller new returnerar en referens som lagras i objektet p (av typen Punkt ) Med instanceof kan vi testa vilken klass objektet är av p.setX(100); // metodanrop

Åtkomstmodifierare Fyra olika åtkomstformer finns för fält och metoder public - alla kommer åt medlemmen protected – arv, klasser i samma paket private – bara den egna klassen paketåtkomst – i samma paket (default om inget anges)

Parametrar Parametrar används för att skicka information till en metod Parametrar överförs via värdeanrop d.v.s endast en kopia skickas För objektreferenser refererar dock kopian till samma som originalet public void setX(int x) { xkord = n; }

Returvärden Returvärden används för att skicka information tillbaka från en metod Alla metoder har en returtyp, men alla behöver inte returnerar något När en metod returnera ett värde tilldelas metodanropet värdet. obj.setTal(10); obj.getTal(); public int getTal(){ return tal; } obj.getTal() ersättas med 10 10

Reglerar hur ett objekt ska skapas Initierar normalt klassens fält Saknar returtyp Har samma namn som klassen Eventuellt parametrar Konstruktorn public Punkt()

Överlagring Av Metoder Flera metoder med samma namn Varje ny variant måste ha en egen signatur, d.v.s olika antal eller olika typer på parametrarna. Den metod som passar bäst anropas public void skrivUt(String s) { // kod för att skriva ut strängen s } public void skrivUt(String s, Color c) { // kod för att skriva ut strängen s i färgen c } signatur

Primitivatyper boolean boolsk typ char 16-bitar Unicode byte 8-bitars heltal short 16-bitars heltal int 32-bitars heltal long 64-bitars heltal float 32-bitars flyttal double 64-bitars flyttal Samtliga typer är definierade i detalj Finns motsvarande ”wrapper”-klasser

Operatorer Logiska operatorer !, &&, ^, || Aritmetiska operatorer *, /, %, +, - Inkremeteringsoperatorer ++, -- Tilldelningsoperatorer =, +=, -=, *=, /=, %= Jämförelseoperatorer, =, ==, != Villkorsoperatorn op1 ? op2 : op3 Kom ihåg prioritet och associativitet! PrioOperatorTyp 1( )paranteser ökning, minskning 3* / %multiplikation, division, modulus 4+ -addition, subtraktion 5 = mindre-, större än (eller lika med) 6== !=är lika med, skiljt ifrån

Typkonverteringar Implicit konvertering int i = 13; // automatisk "cast" long l = i; // long är större än int double d = i; // double rymmer en int int i = 13; // påtvingad ”cast” char ch = (char)i; // char (16 bit) < int (32 bit) double d = ; // float f = (float)d; // Kan tappa precision!! Explicit konvertering Även möjligt att konvertera objekt Object obj = new Person("Kalle", 33); Person p = (Person)obj;

Villkorskonstruktion if (a > b) { // a är större än b } else { // b är större än a } if (a > b) { // a är större än b } else if (a == b) { // a är exakt som b } else { // b är större än a } int val = Integer.parseInt(s); switch(val) { case 1: // Kod om användaren matat in 1 System.out.println("Du valde 1"); break; case 2: // Kod om användaren matat in 2 Person p = new Person("Kalle", 33); break; case 43: // Kod om användaren matat in 43 skrivUt(); break; case 4: System.exit(0); break; default: System.out.println("Ogiltigt, välj igen!"); }

Iterationskonstruktioner for (int i = 0; i <= 10; i++) { System.out.println(i); } int i = 0; while(i <= 10) { System.out.println(i); i++; } int i = 0; do { System.out.println(i); i++; } while(i <= 10);

Avbrott for (int i = 0; i <= 8; i++) { if (i == 5) { break; } System.out.println(i); } for (int i = 0; i <= 8; i++) { if (i == 5) { continue; } System.out.println(i); } public boolean even(int t) { if (t % 2 == 0) return true; else return false; } public void loop(int a) { for (int i = 0; ; i++) { System.out.println(i); if (i == a) return; } }

Arv (extends) Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda ”Får” alla egenskaper den gamla har Lägger till nya egenskaper (fält) och utökar beteendet (nya metoder) En klass kan endast ärva från en och endast en klass

Vilka Medlemmar Ärvs? De medlemmar i en superklass som är deklarerade public eller protected. Ärver inte de medlemmar i en superklass som har samma namn som en medlem i subklassen Metoder omdefinieras Fält göms Ärver inte konstruktorn som inte är en medlem av klassen

Konstruktorer Vid Arv Konstruktorer ärvs inte! I en subklass konstruktor måste ett anrop på en konstruktor i super- klassen ske När enbart default-konstruktorn används behöver inget anrop göras public Rektangel(int x, int y, double bredd, double langd) { super(x, y); this.bredd = bredd; this.langd = langd; }

Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super kan användas för att referera till en variabel i superklassen public void skrivUt() { System.out.println("Artist: " + artist); super.skrivUt(); }

Abstrakta Klasser En abstrakt klass: är inte komplett går inte att skapa objekt av kan endast ärvas av andra klasser används när implementationen för några, men inte alla, metoder kan tillhandahållas

Abstrakta Metoder En abstrakt metod: saknar implementation har endast en signatur (namn, returtyp och parametrar) implementeras i subklasser Finns minst en abstrakt metod måste hela klassen vara abstrakt public abstract class Djur { public abstract void sov(); }

Arrayer Lagrar flera värden av samma typ I java ses en array som ett objekt int[] tal = new int[10]; int tal[] = new int[10]; Eller så här: int[] tal; // Deklarerar tal = new int[10]; // Skapar Arrayens namn är tal Arrayen innehåller 10 element av typen int tal[0], tal[1], …, tal[9]

Initiering och Storlek En array kan ges värden när den skapas Omges av klamrar, separeras med komma int[] tal = {79, 87, 94, 82, 67, 98, 87, 81}; // 8 element double[] tal = {1.21, , 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("Dotter Svensson", 8)}; // 2 element När en array har skapats har den en fast storlek, som inte kan förändras Konstant length innehåller antal element int antal = betygskala.length; System.out.println(antal);// Skriver 4

Skicka och Returnera En array kan skickas som parameter int[] tal = {1, 2, 3, 4, 5, 6, 7, 8, 9, 10}; add1(tal); public void add1(int[] t) { for (int i = 0; i < t.length; i++) t[i]++; } Det är referensen till arrayen som skickas En metod kan även returnera en array int[] tal = skapaHeltalsArray(); public int[] skapaHeltalsArray() { int[] t = new int[10];... return t; }

java.util.Vector Kan ses som en dynamisk array Använder metoder för att bl.a. lägga till, ta bort och returnera objekt Består internt av en array av Object Kan lagra alla typer av objekt (samtidigt) Konvertera när vi hämtar ut objekten Kan inte hantera primitivatyper Finns i paketet java.util

java.lang.String Strängar i Java hanteras som objekt av klassen String Finns flera användbara metoder för att undersöka strängar Kan inte modifieras efter skapandet! Liknar till en viss del primitiva typer För att jämföra två strängar används metoden equals eller compareTo == kollar om referensen är den samma