Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp

Relevanta dokument
Föreläsning 5-6 Innehåll

Fö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 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

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. Om att lära sig programmera. Föreläsning 1-2 Innehåll.

Föreläsning Innehåll. Hantera många element. Exempel: polygon Godtyckligt antal element. Exempel: polygon forts

Föreläsning 13 Innehåll

Föreläsning 3-4 Innehåll

Föreläsning 3-4 Innehåll. Diskutera. Metod. Programexempel med metod

Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)

Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER

1 Egna klasser. 1.1 En punkt-klass

Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?

Föreläsning 9-10 Innehåll

Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.

Objektorienterad Programmering (TDDC77)

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.

Objekt 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

public och private Obs: private inte skyddar mot access från andra objekt i samma klass.

(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

Föreläsning REPETITION & EXTENTA

Objektorienterad Programmering (TDDC77)

Malmö högskola 2007/2008 Teknik och samhälle

Java, klasser, objekt (Skansholm: Kapitel 2)

Föreläsning 1-2 innehåll

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Programmering med Java. Grunderna. Programspråket Java. Programmering med Java. Källkodsexempel. Java API-exempel In- och utmatning.

EDAA20 Föreläsning Klassen ArrayList. Viktiga operationer på ArrayList. Generisk klass

Uppgiften är att beskriva en kvadrat i ett Java program. En första version av programmet skulle kunna se ut så här:

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Malmö högskola 2008/2009 CTS

Inkapsling tumregler. Åtkomstmodifikatorer, instantiering, referenser, identitet och ekvivalens, samt klassvariabler. public och private

Objekt-orientering. Java är ett objekt-orienterat programmeringsspråk

Introduktion till Datalogi DD1339. Föreläsning 2 22 sept 2014

Typkonvertering. Java versus C

LÖSNINGSFÖRSLAG Programmeringsteknik För Ing. - Java, 5p

Tentamen OOP

Objektorienterad programmering. Fält som funktionsresultat. Mer om fält: att uppdatera ett parameterfält. Kontrast: Parametrar av primitiv typ

Classes och Interfaces, Objects och References, Initialization

Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc

1 Repetition av viktiga begrepp inom objektorienterad programmering

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.

Kort om klasser och objekt En introduktion till GUI-programmering i Java

Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt

Föreläsning 10 OM DELMÅLSKONTROLLEN ; VARIABLERS SYNLIGHET STRING OCH STRINGBUILDER

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning Innehåll. Checklista. Några metoder i klassen ArrayList<E> Exempel på vad du ska kunna

Parameteröverföring. Exempel. Exempel. Metodkropp

Datastrukturer. Föreläsning Innehåll. Program med vektor Exempel. Deklarera vektorer

Objektorienterad programmering (OOP) Föreläsning 15 & 16. Klasser för olika slags fordon. Klasser och objekt

Repetition av viktiga begrepp inom objektorienterad programmering

Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering

Objektorienterad programmering i Java

Datatyper och kontrollstrukturer. Skansholm: Kapitel 2) De åtta primitiva typerna. Typ Innehåll Defaultvärde Storlek

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Muddy. Funktioner / metoder. Punktnotation. Evalueringsordning

Klasser i Java kan ha metoder och egenskaper. Metoder beskriver funktioner som klassen kan utföra. Egenskaper beskriver innehållet i klassen.

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 rik

2 b) Följande finns definierat: public class Spel String titel = "Spel"; Dice[] tärningar = new Dice[10]; tärningar[0] = new Dice("Röd"); tärningar[1]

Vem är vem på kursen. Objektorienterad programvaruutveckling GU (DIT011) Kursbok Cay Horstmann: Big Java 3rd edition.

Laboration 1: Figurer i hierarki

Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto

Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 11

Objektorienterad programmering i Java

OOP Objekt-orienterad programmering

2 b) Följande finns definierat: public class Käk String titel = "Chili con carne"; Krydda[] kryddor = new Krydda[10]; kryddor[0] = new Krydda("Svartpe

Klasser och objekt. Henrik Johansson. August 20, 2008

Övningar Dag 2 En första klass

Föreläsning 2. Täcker material från lektion 1, 2, 3 och 4:

OOP Objekt-orienterad programmering

Arv: Fordonsexempel. Arv. Arv: fordonsexempel (forts) Arv: Ett exempel. En klassdefinition class A extends B {... }

TENTAMEN OOP

DI-institutionen Sid 1 av 6 Hans-Edy Mårtensson Sten Sundin

Grundläggande programmering med C# 7,5 högskolepoäng

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

Idag. statiska metoder och variabler. private/public/protected. final, abstrakta klasser, gränssnitt, delegering. wrapper classes

Grundkurs i programmering, 6 hp (725G61) Dugga 2 tillfälle 2

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Programstruktur och terminologi. Programmet producerar följande utskrift i terminalfönstret: Ett Javaprogram består av en eller flera klasser

Objektorienterad programmering

Lösningsförslag övning 2.

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

Enkla variabler kontra referensvariabel

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

JAVA Mer om klasser och objektorientering

Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder

2I1049 Föreläsning 5. Objektorientering. Objektorientering. Klasserna ordnas i en hierarki som motsvarar deras inbördes ordning

Omtentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-17, TDA540. Dag: , Tid:

Bankkonto - övning. Övning 2 Skriv en metod, geträntan, som returnerar räntan.

Hej Då, Karel! Programmering. Vårt första Javaprogram. hh.se/db2004. Java. Grundtyper, variabler och arrayer

Det finns en referensbok (Java) hos vakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Programmering A. Johan Eliasson

Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Föreläsning 2, vecka 8: Repetition

Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.

Tentamen för TDA540 Objektorienterad Programmering. Institutionen för Datavetenskap CTH HT-16, TDA540. Dag: , Tid:

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

Sammanfattning och repetition utgående från typiska tentamensuppgifter

Föreläsning 1 & 2 INTRODUKTION

Transkript:

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 Avsnitt i läroboken: 3, 5 public class ClickAndDraw { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(200, 200, "A square"); w.waitformouseclick(); Square sq = new Square(w.getMouseX(), w.getmousey(), 40); sq.draw(w); Vad händer när man eekverar programmet? EDAA20 (F3-4 programmering) HT 2016 1 / 42 EDAA20 (F3-4 programmering) HT 2016 2 / 42 Övning Viktiga begrepp Vilka klasser/filer behövs för att köra programmet? Vilka variabler finns i main-metoden? Vilka tper har de? Hur skapar man objekt? Hur många objekt skapas i programmet? Varför står det w framför.waitformouseclick() och sq framför.draw(w)? Ge eempel på en aktuell parameter. Filer med programkod: ClickAndDraw.java klassenmedmain-metoden Square.java klassensquare SimpleWindow.java klassensimplewindow För att köra programmet ClickAndDraw behövs motsvarande.class-filer som skapas vid kompileringen: ClickAndDraw.class Square.class SimpleWindow.class EDAA20 (F3-4 programmering) HT 2016 3 / 42 EDAA20 (F3-4 programmering) HT 2016 4 / 42

Klass Klass Mönster Programkoden delas upp i klasser. Klassen lagras normalt i en egen fil. Objekt av samma slag beskrivs av en klass som innehåller: Deklaration av attribut de variabler som beskriver objektets tillstånd. metoder Klassen fungerar som en mall för objekten. public class Klassnamn { // deklaration av attribut // konstruktor // övriga metoder EDAA20 (F3-4 programmering) HT 2016 5 / 42 EDAA20 (F3-4 programmering) HT 2016 6 / 42 Block Klassen Square Attribut Block Satser som hör ihop. Omges av klammerparenteser { public class Square { private int ; private int ; private int side; attribut Eempel: Satserna i en klass: public class Square { eller satserna som ska repeteras i en for-sats: for (int i = 0; i < 9; i++) { Attribut Attribut är variabler där objektets tillstånd lagras. Attributen skapas då objektet skapas (med new ) och finns så länge som objektet finns. Attributen får defaultvärden då de skapas (0, 0.0, null, ). Attributen får användas i hela klassen. Attributen är normalt deklarerade private är bara snliga inuti klassen. EDAA20 (F3-4 programmering) HT 2016 8 / 42 EDAA20 (F3-4 programmering) HT 2016 7 / 42

Klassen Square Metoderna draw och move public eller private /** Ritar kvadraten i fönstret w. */ public void draw(simplewindow w) { w.moveto(, ); w.lineto(, + side); w.lineto( + side, + side); w.lineto( + side, ); w.lineto(, ); /** Flttar kvadraten avståndet d i -led, d i -led. */ public void move(int d, int d) { = + d; = + d; Man måste ange vad som ska vara åtkomligt utanför klassen. public snlig utanför klassen private bara snlig inuti i klassen Iregelärattributenprivataochmetodernapublika. Det kan finnas metoder som bara ska utnttjas internt inuti klassen. De ska då deklareras private. EDAA20 (F3-4 programmering) HT 2016 9 / 42 EDAA20 (F3-4 programmering) HT 2016 10 / 42 Aktuella parametrar (argument) Formella arametrar Aktuella parametrar (argument) Eempel: Parametrar används för att föra in värden till en metod. Man vill skapa kvadrater med olika läge och sidlängd, fltta kvadraten med olika avstånd,... public class DrawSquare { public static void main(string[] args) { SimpleWindow w = new SimpleWindow(600, 600, Square ); Square sq = new Square(20, 10, 40); sq.move(30, 10); sq.draw(w); aktuella parametrar (argument) Formella parametrar De formella parametrarna deklareras i metodens parameterlista. Parametrarna skapas då metoden anropas och försvinner när metoden är färdigeekverad. Värdena på de aktuella parametrarna kopieras vid anropet in i motsvarande formella parametrar. De formella parametrarna är bara åtkomliga inuti metoden. public void move(int d, int d) { formella parametrar tp och namn d d 30 10 EDAA20 (F3-4 programmering) HT 2016 11 / 42 EDAA20 (F3-4 programmering) HT 2016 12 / 42

Klassen Square Metoderna getx, gety och getarea Metoder som returnerar värden /** Tar reda på -koordinaten för kvadratens läge. */ public int getx() { return ; Vissa metoder returnerar ett värde. De har då något annat än void som returtp. Metoden måste också ha (minst) en return-sats. /** Tar reda på -koordinaten för kvadratens läge. */ public int gety() { return ; /** Tar reda på kvadratens area. */ public int getarea() { return side * side; returtp public int getarea() { return side * side; return-sats EDAA20 (F3-4 programmering) HT 2016 13 / 42 EDAA20 (F3-4 programmering) HT 2016 14 / 42 Eekvering och metodanrop Ett anrop av en metod innebär att eekveringen fortsätter med den första satsen i den anropade metoden. När den anropade metoden är klar återupptas eekveringen i den metod där anropet gjordes. public static void main { sq.draw(); public void draw (SimpleWindow w) { w.moveto(, ); public void moveto (int, int ) { Klassen Square Konstruktor /** Skapar en kvadrat med övre vänstra hörnet i, och med sidlängden side. */ public Square(int, int, int side) { this. = ; this. = ; this.side = side; Konstruktor Konstruktorn är en metod med samma namn som klassen, saknar returtp. Satserna i konstruktorn utförs då objektet skapas (med new ). Konstruktorn innehåller oftast satser för att ge attributen startvärden. Konstruktorn är deklarerad public är snlig utanför klassen. EDAA20 (F3-4 programmering) HT 2016 15 / 42 EDAA20 (F3-4 programmering) HT 2016 16 / 42

this this this är en referens till objektet självt. this kan t.e. användas för att nå ett attribut bra vid namnkrockar. Eempel: Det är vanligt att samma namn används på parametrar och på attribut: public Square(int, int, int side) { this. = ; this. = ; this.side = side; parametern side attributet side Implementera en klass Recept Om man har en specifikation av en klass kan man följa dessa steg: Skriv public class { runt om. Deklarera attributen. Implementera konstruktorn och de övriga metoderna. Deklarera attributen private och metoderna public. EDAA20 (F3-4 programmering) HT 2016 17 / 42 EDAA20 (F3-4 programmering) HT 2016 18 / 42 Övning Implementera klasser Övning Implementera klasser Lägg till följande metod i klassen Square: Lägg till en metod i klassen Square som ändrar kvadratens sidlängd: /** Sätter sidlängden till newside */ public void setside(int newside) { /** Returnerar true om kvadraten har större area än kvadraten other, i annat fall returneras false. */ public boolean biggerthan(square other) { EDAA20 (F3-4 programmering) HT 2016 19 / 42 EDAA20 (F3-4 programmering) HT 2016 20 / 42

Klassen Point från datorlab. 3 Specifikation /** Skapar en punkt med koordinaterna,. */ Point(int, int ); /** Tar reda på -koordinaten. */ int getx(); /** Tar reda på -koordinaten. */ int gety(); /** Flttar punkten avståndet d i -led och d i -led. */ void move(int d, int d); /** Beräknar avståndet mellan denna punkt och punkten p. */ double distanceto(point p); /** Returnerar en teckensträng som representerar punkten. Strängen innehåller koordinaterna. E: 150 200 */ String tostring(); EDAA20 (F3-4 programmering) HT 2016 21 / 42 Klassen Point implementering Klassen Point Implementering public class Point { private int ; private int ; /** Skapar en punkt med koordinaterna och. */ public Point(int, int ) { this. = ; this. = ; /** Tar reda på -koordinaten. */ public int getx() { return ; /** Tar reda på -koordinaten. */ public int gety() { return ; EDAA20 (F3-4 programmering) HT 2016 22 / 42 Hur komma åt den andra punktens attribut? /** Flttar punkten avståndet d i -led och d i -led. */ public void move(int d, int d) { = + d; = + d; /** Beräknar avståndet mellan denna punkt och punkten p. */ public double distanceto(point p) { return Math.hpot( - p., - p.); Koordinaterna för det punkt-objekt metoden utförs på når vi som vanligt via attributen och. För att nå det andra objektets koordinater kan vi använda metoderna i Point: Math.hpot( - p.getx(), - p.gety()) Vi kan också nå det andra punkt-objektets attribut direkt: /** Returnerar en teckensträng som representerar punkten. Strängen innehåller koordinaterna. E: 150 200 */ public String tostring(){ return + " " + ; Math.hpot( - p., - p.) Detta beror på att attributen är privata för klassen, inte för ett specifikt objekt. Detta fungerar alltså eftersom p har tpen Point och metoden distanceto finns i klassen Point. EDAA20 (F3-4 programmering) HT 2016 23 / 42 EDAA20 (F3-4 programmering) HT 2016 24 / 42

Klassen Math Klassen Math innehåller metoder för att beräkna kvadratrot, sinus, cosinus etc. Där finns också konstanterna Math.PI och Math.E (e = 2.718... ) Metoden double hpot(double a, double b) som beräknar p a 2 + b 2 kan användas när man beräknar avståndet mellan två punkter. Eempel: Math.hpot( - p., - p.) Statiska attribut och metoder Attributen och metoderna i klassen Math är statiska. De är inte knutna till något objekt utan finns bara i en upplaga för klassen. Man når statiska storheter med Klassnamn.namn, inte referens.namn. Eempel: double result = Math.pow(10, 4); Inuti klassen Math ser det ut så här: public class Math { public static final double PI = 3.14159265358979323846; /** beräknar av a upphöjt till b */ public static double pow(double a, double b) { EDAA20 (F3-4 programmering) HT 2016 25 / 42 EDAA20 (F3-4 programmering) HT 2016 26 / 42 Konstanter Metoden tostring() Det är vanligt att man lägger till en metod tostring() i en klass: Man kan deklarera konstanter för värden som inte ska ändras. Eempel: static final double PI = 3.14159265358979323846; static final int NBR_CARDS = 52; static behöverbarafinnasienupplaga final värdetfårinteändras public String tostring(){ return + " " + ; Metoden tostring() ska returnera en sträng som representerar objektet och som används vid utskrifter. Metoden tostring() anropas inuti print() och println() när man skriver ut ett objekt: Sstem.out.println(sq); Metoden tostring används också inifrån debuggern. EDAA20 (F3-4 programmering) HT 2016 27 / 42 EDAA20 (F3-4 programmering) HT 2016 28 / 42

String String Datatp för teckensträngar String är egentligen en klass och teckensträngar är egentligen objekt. Men man kan skapa teckensträngar utan att använda new: String s = "En massa tecken"; Program som använder punkter Eempel public class ComputeDistance { public static void main(string[] args) { Point p1 = new Point(50, 20); Point p2 = new Point(25, 35); double dist = p1.distanceto(p2); Sstem.out.println(dist); 50 20 Man kan konkatenera (slå ihop) en sträng med en annan sträng eller med ett värde av en annan tp. Resultatet blir en n sträng. + " " + p1 p2 dist 29.154 25 35 EDAA20 (F3-4 programmering) HT 2016 29 / 42 EDAA20 (F3-4 programmering) HT 2016 30 / 42 Vad är tillgängligt inuti en metod? public class Point private int ; private int /** Beräknar avståndet mellan denna punkt och punkten p. */ public double distanceto(point p) { return Math.hpot( - p., - p.); Lokal variabel Alternativ implementering av metoden distanceto där avstånden i - och -led lagras i lokala variabler: /** Beräknar avståndet mellan denna punkt och punkten p. */ public double distanceto(point p) { int Dist = - p.; int Dist = - p.; return Math.hpot(Dist, Dist); Inuti metoden distanceto får vi använda attributen och. metodens parametrar p. lokala variabler deklarerade inuti metoden finns inga i eemplet. Lokala variabler En lokal variabel skapas när deklarationen eekveras och försvinner när det block den är deklarerad i är färdigeekverat. Innan man använder en lokal variabel måste man ge den ett startvärde. En lokal variabel är endast åtkomlig i det block där den är deklarerad (från det den är deklarerad). EDAA20 (F3-4 programmering) HT 2016 31 / 42 EDAA20 (F3-4 programmering) HT 2016 32 / 42

Parametrar och lokala variabler i datorns minne Aktiveringspost Vid varje anrop av en metod reserveras plats i minnet för metodens parametrar och lokala variabler (variabler som deklareras inuti metoden). Detta minnesutrmme kallas för aktiveringspost. När man lämnar metoden strks aktiveringsposten. Eempel: När metoden distanceto eekveras skapas en aktiveringspost som innehåller den formella parametern p. Övning Implementera klasser Lägg till en metod i klassen Point som returnerar mittpunkten mellan punkten och punkten p. /** Returnerar mittpunkten mellan punkten och punkten p. */ public Point midpoint(point p) { formell parameter p 25 35 EDAA20 (F3-4 programmering) HT 2016 33 / 42 EDAA20 (F3-4 programmering) HT 2016 34 / 42 Program som använder punkter Eempel 2 En klass kan implementeras på olika sätt Alternativ 1 public class CreateMidpoint { public static void main(string[] args) { Point p1 = new Point(100, 100); Point p2 = new Point(300, 50); Point m = p1.midpoint(p2); Sstem.out.println("Mittpunkten: " + m); 100 p1 p2 m 200 75 100 300 50 Läget hos en kvadrat kan representeras av två heltal - och -koordinat för övre vänstra hörnet: public class Square { private int ; private int ; private int side; /** Skapar en kvadrat med övre vänstra hörnet i, och med sidlängden side. */ public Square(int, int, int side) { this. = ; this. = ; this.side = side; side 20 10 40 EDAA20 (F3-4 programmering) HT 2016 35 / 42 EDAA20 (F3-4 programmering) HT 2016 36 / 42

En klass kan implementeras på olika sätt Alternativ 2 Datatper Läget hos en kvadrat kan representeras av en punkt: public class Square { private Point location; // övre vänstra hörnet private int side; // sidlängd /** Skapar en kvadrat med övre vänstra hörnet i, och med sidlängden side. */ public Square(int, int, int side) { location = new Point(, ); this.side = side; location side 40 20 10 De data som behandlas i ett program är av olika tper, t.e. heltal, flttal, referenser Eempel: int sum = 0; double d = 12.7; boolean read = false; char blank = ; Square sq = new Square(10, 10, 50); EDAA20 (F3-4 programmering) HT 2016 37 / 42 EDAA20 (F3-4 programmering) HT 2016 38 / 42 Primitiva datatper Konvertering mellan int och double bte heltal (-128+127) short heltal (-32768+32767) int heltal (-2147483648+2147483647) long heltal (ca -9*1018 +9*1018) float flttal tal (tal med decimaldel) double flttal tal (tal med decimaldel) boolean logiska värden (true eller false) char tecken Ett int-värde får plats i en variabel av tpen double: double d = 42; Tvärtom går inte utan konvertering eller avrundning: Konvertering till int: double d = 42.87; int a = (int) d; // talet avkortas till 42 sum d read blank 0 12.7 false ' ' Avrundning till närmaste heltal: double d = 42.87; int b = (int) Math.round(d); // talet avrundas till 43 Metoden round ger ett resultat av tpen long som måste konverteras till tpen int. EDAA20 (F3-4 programmering) HT 2016 39 / 42 EDAA20 (F3-4 programmering) HT 2016 40 / 42

Referens Checklista Eempel: Square sq; String s; Referensvariabler kan innehålla en referens till objekt, d.v.s. adressen till det område i minnet där objektet lagras. sq = new Square(10, 10, 50); sq En referensvariabel kan också tilldelas värdet null. sq = null; sq null Eempel på vad du ska kunna Förklara begreppen: objekt, klass, specifikation, implementering. Implementera enkla klasser (med attribut, konstruktor och övriga metoder). Rita figur över minnessituationen med variabler och objekt med attribut (d.v.s. visa att du förstår vilka variabler och objekt som finns och hur de hänger ihop). Förklara begreppet datatp EDAA20 (F3-4 programmering) HT 2016 41 / 42 EDAA20 (F3-4 programmering) HT 2016 42 / 42