Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt
|
|
- Viktor Åberg
- för 6 år sedan
- Visningar:
Transkript
1 Föreläsning 5 Föreläsning 5 Klasser och objekt Klasser och objekt Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. I ett objektorienterat programspråk modelleras den värld som man vill avbilda som ett antal objekt med olika egenskaper och beteenden, vilka kommunicerar och samarbetar med varandra för att utföra simuleringen. Detta modelleringssätt överensstämmer väl med hur vår verkliga värld ser ut och fungerar.
2 Ett objekt någonting man kan tänka på som en egen entitet... någonting som gör något eller som man kan göra något med... någonting som har egenskaper och/eller tillstånd... någonting som representerar ett fysiskt föremål eller en verklig företeelse. Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål: studenter lärare bord stolar pennor datorer böcker OH-apparater väskor... Exempel: Bollar En boll är ett föremål, som kan representeras som ett objekt i ett program. Hur kan man beskriva en boll? En boll beskrivs av sina egenskaper, såsom diameter färg elasticitet position... Vi kan också beskriva en boll med hjälp dess beteende, dvs av vad man kan göra med bollen den kan kastas den kan studsas den kan rullas...
3 Exempel: Bollar De egenskaper som beskriver ett objekt kallas för attribut och definierar objektets tillstånd. En specifik boll kan t.ex vara 24.2 cm i diameter, vara röd och ha en elasticitet på 74%. En annan boll kan vara 5.2 cm i diameter, vara vit och ha en elasticitet på 23%. De aktiviteter man kan göra med ett objekt definierar objektets beteende. beteende Alla objekt har en uppsättning attribut och en uppsättning beteenden. Alla bollar har samma uppsättning attribut och samma beteenden. Det är dessa attribut och beteenden som skiljer bollar från andra objekt och som gör att "bollar är bollar"! Allamodell bollar är haralltid samma uppsättning En en förenkling därattribut man bortser från vissa omständig och det samma är dessa attribut hos sombeteenden. modelleras.det Objekt och beteenden som skiljer bollar från andra objekt och som gör att "bollar är bollar"! Vilka attribut och beteenden hos en företeelse eller ett fysiskt föremålet som skall avbildas beror på vad man är intresserad av i den tänkta tillämpningen. En modell är alltid en förenkling där man bortser från vissa omständigheter hos det som modelleras.
4 Objekt En klass är en mall (modell, mönster, ritning, beskrivning) från vilke objekt kan skapas. Ett objekt har ett tillstånd, ett beteende och en identitet, samt tillhör en viss klass. Klasser Ett objekt har ett tillstånd, ett beteende och en identitet, samt tillhör klass. Vi konstaterade tidigare att alla bollar har samma uppsättning attribut och samma beteenden. Samt att det är dessa attribut och beteenden som gör att "bollar är bollar"! Man kan säga att en viss boll är ett objekt av klassen Boll. En klass är en mall (modell, mönster, ritning, beskrivning) från vilken ett objekt kan skapas.
5 Klasser Klasser är ett sätt för att skapa datatyper, för att kategorisera olika slag av data. En datatyp bestämmer vilka värden som tillhör datatypen och vilka operationer man kan utföra på dessa värden. Att sammanföra data och de operationer som kan utföras på denna data till en enhet kallas för inkapsling (encapsulation). Idéen med en klass är att kunna modellera alla objekt av en viss typ på en och samma gång, istället för att modellera varje enskilt objekt var för sig. Ett objekt är en instans av en klass. I klassen beskrivs de attribut och de beteenden som alla objekt som tillhör denna klass skall ha. Attribut beskrivs med hjälp av variabler. Beteenden beskrivs med hjälp av metoder. Lite terminologi De handlingar eller operationer som ett objekt av en viss klass kan utföra definieras således av de metoder som finns i klassen. För att kunna använda ett objekt måste vi känna till dess gränssnitt, dvs vilka tjänster (vilken service) som objektet erbjuder och hur man får tillgång till dessa. De tjänster ett objekt erbjuder bestäms av de metoder som finns definierade i klass som objektet tillhör. När en metod anropas är det alltid två objekt involverade: - klient, klient objektet som anropar metoden för att få service - server, server objektet som exekverar metoden för att leverera efterfrågad service.
6 Lite terminologi Metoder är den primära mekanismen via vilken objekt kan kommunicera med och påverka varandra. När en metod anropas, skickar klientobjektet ett meddelande med information till serverobjektet. Klientobjektet är alltså avsändare av meddelandet och serverobjektet är mottagare av meddelandet. När metoden exekveras, utför serverobjektet de nödvändiga beräkningarna genom att använda sina egna attribut och/eller den information som skickas från klienten. När en metod terminerar (exekverat klart) skickas information från servern till klienten. Klienten får alltså ett svar på sitt meddelande. Lite terminologi I en klass finns följande olika slag av attribut: - instansvariabler, instansvariabler varje instans har sin egen unika uppsättning som beskriver instansens tillstånd - klassvariabler, klassvariabler finns i endast en uppsättning som delas mellan samtliga instanser av klassen - konstanter (både instanskonstanter och klasskonstanter kan finnas, men endast klasskonstanter skall användas). I en klass finns två olika slag av metoder - instansmetoder, instansmetoder varje instans har sin egen unika uppsättning - klassmetoder, klassmetoder finns i endast en uppsättning som delas mellan samtliga instanser av klassen.
7 Klasser och objekt vi redan sett Hittills i kursen har vi bland annat sett följande konstruktioner: System.out.println( Hello world! ); JOptionPane.showMessageDialog(null,"Hello world! "); double tal = Double.parseDouble("10.123"); double tal2 = Math.pow(5, 2); String str = " "; Scanner scan = new Scanner(str); int heltal = scan.nextint(); double reellttal = scan.nextdouble(); Ange samtliga klasser, objektreferenser, klassmetoder och instansmetoder i kodavsnittet ovan! Klasser: System JOptionPane Double Math String Scanner Klassmetoder: showmessagedialog parsedouble pow Objektreferenser: out str scan Instansmetoder: println nextint nextdouble
8 Att skapa objekt Objekt kan skapas från existerande klasser. Detta görs genom att man först deklarerar en variabel av den klass man vill skapa ett objekt av: KlassNamn objektnamn; Deklarationen innebär att variabeln objektnamn är av klassen KlassNamn och får värdet null (då inget objekt ännu har skapats). Detta kan illustreras på följande sätt: objectnamn objectnamn eller Att skapa objekt För att faktiskt skapa ett objekt används (vanligtvis) operatorn new samt ett anrop av klassens konstruktor: objektnamn = new KlassNamn(); objektnamn vilket illustreras av bredvidstående figur: objektet av typen KlassNamn Variabler som refererar till ett objekt, i likhet med variabeln objektnamn kallas för referensvariabler (medan variabler som används för att lagra enkla data typer kallas för enkla variabler). variabler En konstruktor är en speciell metod för att initiera tillståndet hos det skapade objektet. En konstruktor har samma namn som klassen själv. En klass kan ha flera konstruktorer, med olika parameterprofiler. parameterprofiler Detta kallas för överlagring (overloding). Det kan också finnas överlagrade metoder, dvs metoder med samma namn men med olika parameterprofiler.
9 Att använda ett objekt: standardklassen Random I Java finns paketet java.util som bl.a innehåller standardklassen Random för att skapa slumptalsgeneratorer. Gränssnittet för klassen Random innehåller bl.a en instansmetod public int nextint(int n) returnerar ett slumptal med likformig fördelning i intervallet [0, n[. samt två konstruktorer: import java.util.random; public Random(long seed) sätter slumptalsfröet till seed public class Hazardsätter { slumptalsfröet till ett värde som med hög public Random() sig från fröet för andra instanser public static voidsannolikhet main skiljer (String[] args) { av klassen Random numbergenerator = new Random(); int counter = 0; while (counter < 100) { counter = counter + 1; System.out.println( (numbergenerator.nextint(20)+1)); } } // main Exempel: standardklassen Random } //Hazard Nedanstående program skapar en slumptalsgenerator och använder den för att skriva ut 100 slumptal i intervallet [1, 20]. import java.util.random; public class Hazard { public static void main (String[] args) { Random numbergenerator = new Random(); int counter = 0; while (counter < 100) { counter = counter + 1; System.out.println( (numbergenerator.nextint(20)+1)); } } // main } //Hazard
10 Att definiera egna klasser En deklaration av en klass kan innehålla deklarationer av instansvariabler (tillståndsvariabler tillståndsvariabler), dvs de variabler som varje objekt av klassen har sin egen kopia av konstruktorer, konstruktorer dvs de mekanismer som används för att skapa ett nytt objekt ur klassen (och initiera dess tillstånd) publika instansmetoder, instansmetoder dvs de metoder som varje objekt ur klassen tillhandahåller för omvärlden privata instansmetoder, instansmetoder dvs lokala hjälpmetoder som bara används av andra metoder i klassen klassvariabler (statiska statiska variabler), variabler dvs de variabler som det endast finns en gemensam kopia av för alla objekt i klassen (kan vara publika eller privata) klassmetoder (statiska statiska metoder), metoder dvs metoder som inte är knutna till ett visst objekt utan till själva klassen (kan vara publika eller privata) konstanter, skall alltid göras statiska (kan vara publika eller privata). Exempel: En klass för rektanglar I ett program vill vi hantera rektanglar av olika utseende. De attribut vi är intresserade av hos en rektangel i vår tillämpning är: höjd bredd Detta betyder att vi t.ex. bortser från vilken färg en rektangel har. Det vi vill kunna göra med en rektangel, dvs de beteenden vi är intresserade av, är: ta reda på höjden ta reda på bredden ta reda på ytan ta reda på omkretsen ändra höjden ändra bredden skriva ut rektangelns tillstånd, dvs rektangelns höjd och bredd När vi skapar en rektangel vill vi kunna välja att antingen få en standardrektangel eller få en rektangel för vilken vi anger tillståndet (dvs dess höjd och bredd). Det behövs alltså två olika konstruktorer.
11 Specifikation //skapar en instans av Rectangle med bredden 0 och höjden 0 public Rectangle() //skapar en instans av Rectangle med bredden w och höjden h public Rectangle(double w, double h) //returnerar bredden av aktuell instans public double getwidth() //returnerar höjden av aktuell instans public double getheight() //sätter bredden på av aktuell instans till w public void setwidth(double w) //sätter höjden på av aktuell instans till h public void setheight(double h) //returnerar arean för av aktuell instans public double getarea() public void setheight(double h) { height = h; //returnerar en strängrepresentation av aktuell instans } //setheight public String tostring() public double getarea() { return height * width; }//getarea public double getperimeter() { return 2 * (height + width); } //getperimeter Implementationpublic String tostring() { return "Width = " + width + "\nheight = " + public class Rectangle { }//tostring private double width; //instansvariabel private double height; //instansvariabel } //Rectangle Överlagrade //returnerar omkretsen på av aktuell instans public double getperimeter() public Rectangle() { width = 0; height = 0; }//constructor public Rectangle(double w, double h) { width = w; height = h; }//constructor public double getwidth() { return width; }//getwidth public double getheight() { return height; }//getheight public void setwidth(double w) { width = w; } //setwidth konstruktorer public void setheight(double h) { height = h; } //setheight public double getarea() { return height * width; }//getarea public double getperimeter() { return 2 * (height + width); } //getperimeter public String tostring() { return "Width = " + width + "\nheight = " + height; }//tostring } //Rectangle
12 Två objekt av klassen Rectangle Låt oss skapa två objekt av klassen Rectangle Rectangle rec1 = new Rectangle(5.0, 5.5); Rectangle rec2 = new Rectangle(10.0, 20.0); Scenariot vi får kan illustreras med nedanstående figur. Rectangle double width double height instans av rec1: Rectangle width height instans av rec2: Rectangle 5.0 width height 20.0 Klassdiagram UML är ett objektorienterat modelleringsspråk. För att på ett schematiskt sätt beskriva det viktigaste som en klass innehåller kan man använda sig av ett klassdiagram. klassdiagram Klassdiagrammet för klassen Rectangle visas i figuren bredvid. Rectangle - double width - double height +Rectangle() +Rectangle(double w, double h) +getwidth() : double +getheight() : double +setwidth(double w) : void +setheight(double w) : void +getarea() : double +getperimeter() : double +tostring() : String Klassnamn Attribut Metoder
13 Olika slag av metoder Metoderna i en klass kan klassificeras enligt: konstruktor för att initiera tillstånden hos objektet som skapas Rectangle() Rectangle(double w, double h) avläsare (accessor accessor, get-metoder) get-metoder för att avläsa värdet hos instansvariabler eller klassvariabler, dvs avläsa tillstånd hos ett objekt double getwidth() double getheight() omformare (mutator mutator, set-metoder) set-metoder som manipulerar instansvariabler eller klassvariabler, dvs ändra tillstånd hos ett objekt eller hos klassen void setwidth(double w) void setheight(double h) operation som använder instansvariablerna för att göra beräkningar double getarea() double getperimeter() String tostring() Metoder En instansmetod anropas genom att ange namnet på objektet som skall anropas, följt av en punkt., följt av metodens namn och metodens argumentlista. objektnamn.metodnamn(argumentlista) En klassmetod anropas genom att ange klassens namn, följt av en punkt., följt av metodens namn och argumentlista. Klassnamn.metodnamn(argumentlista) Exempel: Scanner data = new Scanner(" "); double width = data.nextdouble(); double height = data.nextdouble(); Random hazard = new Random(); int randomheight = hazard.nextint(100); Rectangle firstrec = new Rectangle(); Rectangle secondrec = new Rectangle(width, height); firstrec.setheight(randomheight); double thewidth = secondrec.getwidth();
14 Det reserverade ordet this Varje objekt har en referens till sig själv. Denna är dock inte "synlig" utan nås via det reserverade ordet this. I klassen Rectangle har metoden setwidth följande utseende: public void setwidth(double w) { width = w; } //setwidth Men kan även skriva: public void setwidth(double w) { this.width = w; } //setwidth public class Rectangle { private double width;... public Rectangle() { width = 0; height = 0; } public void setwidth(double w) { public class Rectangle { this.width = w; public class Rectangle { }//getwidht private double width;... private double width;... } //Rectangle Det reserverade ordet this... public Rectangle() { public Rectangle() { width = 0; width = 0; height = 0; height = 0; } } public void setwidth(double w public void setwidth(double this.width = w; this.width = width; }//getwidht.. }//getwidht.... } //Rectangle } //Rectangle Att referera till this är nödvändigt om instansvariabeln och den formella parametern har samma namn som i exemplet nedan: public void setwidth(double width) { this.width = width; } //setwidth Anledningen till detta är att vi har en namnkonflikt och då gäller närhetsprincipen, närhetsprincipen vilket i detta fall betyder att width avser den aktuella parametern. Att ha samma namn på instansvariabler och på formella parametrar till metoder är vanligt förekommande (width säger ju mer än w om vad parametern avser). public class Rectangle { private double width;... public Rectangle() { width = 0; height = 0; } public void setwidth(double width) { this.width = width; }//getwidht... } //Rectangle
15 Bättre implementation av klass Rectangle public class Rectangle { private double width; //instansvariabel private double height; //instansvariabel public Rectangle() { width = 0; height = 0; }//constructor public Rectangle(double width, double height) { this.width = width; public void setheight(double height) { this.height = height; this.height = height; }//constructor } //setheight public double getwidth() { public double getarea() { return width; return height * width; }//getwidth }//getarea public double getheight() { public double getperimeter() { return height; return 2 * (height + width); public void setheight(double }//getheight } //getperimeter this.height = height; public void setwidth(double width) { public String tostring() { this.width = width; return "Width = + width + "\nheight = " + height; } "//setheight } //setwidth }//tostring } //Rectangle public double getarea() { height) { return height * width; }//getarea public double getperimeter() { return 2 * (height + width); } //getperimeter public String tostring() { Synlighetsmodifierare return "Width = " + width + "\nheight = " }//tostring En metod har följande utseende: } //Rectangle modifierare resultattyp namn(parameterlista) { lokala deklarationer satser } En typ av modifierare är synlighetsmodifierare som anger metodens synlighet. Det finns fyra olika modifierare för synlighet public synlig för alla klasser private synlig endast i klassen själv protected synlig för klassen själv, klasser i samma paket och för subklasser utelämnad synlig för klassen själv och för alla andra klasser i samma paket
16 Information hiding dölja information I klassen Rectangle är instansvariablerna width och height deklarerade som privata: private double width; private double height; vilket innebär att de är okända för andra klasser. För att kunna ta reda på i vilket tillstånd ett objekt befinner sig i måste det därför finnas publika åtkomstmetoder som returnerar instansvariablernas värden (avläsare avläsare): public double getwidth() public double getheight() Och för att kunna förändra tillståndet hos ett objekt måste det finnas publika metoder som ändra instansvariablernas värden (modifierare modifierare): public void setwidth(double width) public void setheight(double height) Information hiding dölja information Detta tillvägagångssätt att ha privata instansvariabler samt ha publika metoder för att avläsa och modifiera värdet av instansvariablerna kallas för information hiding och är en mycket viktig programmeringsprincip. Information hiding ger fördelen att man skiljer mellan objektets specifikation och objektets implementation, dvs man behöver inte känna till objektets inre uppbyggnad för att kunna använda objektet. En annan fördel är att objektet kan isoleras mot fel i andra objekt. Endast tillgång till gränssnitt Även tillgång till implementationen
17 Information hiding dölja information Allt informationsutbyte mellan klient och server skall ske via ett väldefinierat gränssnitt, som utgörs av de publika metoderna som finns definierade för klassen som servern tillhör. Keep it secret! Keep it safe! Metoden tostring Om en klass implementerar instansmetoden Keep it secret! Keep it safe! public String tostring() blir det möjligt att representera ett objekt av klassen som en sträng och därmed kunna skriva ut objekt på ett snyggt och begripligt sätt. Om vi i klassen Rectangle inför instansmetoden public String tostring() { return "Width = " + width + "\nheight = " + height + "\n"; }//tostring och i ett program deklarerat ett objekt enligt Rectangle rek = new Rectangle(10, 20); kan vi t.ex skriva System.out.println("Rektangeln har värdet \n" + rek); Vi får då utskriften: Rektangeln har värdet Width = 10.0 Height = 20.0
18 Metoden tostring Uttrycket "Rektangeln har värdet \n" + rek översätts automatiskt till "Rektangeln har värdet \n" + rek.tostring() innan uttrycket evalueras. Om vi inte definierar metoden tostring finns ändock metoden tillgänglig, eftersom den ärvs av klassen Object som är superklass till alla klasser. Men resultatet av satsen System.out.println("Rektangeln har värdet \n" + rek); blir då istället en obegripligt utskrift i stil med: Rektangeln har värdet Rectangle@11a698a Det som skrivs ut är namnet på klassen och den så kallade hashkoden för objektet. När man skriver metoden String tostring() i en klass, överskuggar (override override) metoden tostring-metoden som ärvs från Object.
Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:
Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. I ett objektorienterat programspråk modelleras den värld som man vill avbilda
Föreläsning 5. Föreläsning 5
Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. Föreläsning 5 I ett objektorienterat programspråk modelleras den värld
Föreläsning 4. Klasser och objekt
Föreläsning 4 Klasser och objekt Klasser och objekt Ett program i Java är en modell som används för att simulera uppträdandet hos en verklig eller påhittad värld. I ett objektorienterat programspråk modelleras
2I1049 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
Enkla variabler kontra referensvariabel
Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som används för att representera en primitiv datatyp kallas för enkel variabel. Deklarationssatsen
Objekt och klasser - Introduktion
Objekt och klasser - Introduktion Begreppet objekt Hur klasser används för att skapa objekt Fördefinierade klasser Metoder och parameteröverföring Definiera klasser Modifierare Statiska variabler och metoder
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut
Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering
och metoder Introduktion till objektorienterad programmering Markus Saers markus.saers@lingfil.uu.se orientering Deklarativ programmering Beskriver förutsättningarna för något Prolog Imperativ programmering
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305. Klass Object, instans av klass public/private Klassvariabler och klassmetoder
Föreläsning 8 Programmeringsteknik och Matlab 2D1312/2D1305 Klass Object, instans av klass public/private Klassvariabler och klassmetoder 1 Array och ArrayList Arrayer och ArrayList är till för att innehålla
JAVAUTVECKLING LEKTION 11
JAVAUTVECKLING LEKTION 11 2016 Mahmud Al Hakim mahmud.al.hakim@nackademin.se www.alhakim.se AGENDA Mer om klasser och objekt Statiska/instans-metoder Överlagrade metoder Inkapsling Konstruktorer 1 UPPGIFT
Lösningsförslag övning 2.
Objektorienterad programmering, Z1 Lösningsförslag övning 2. Uppgift 1. public class SIUnits { public static double yardspermeter = 1.093613; public static double poundperkilo = 2.204623; public static
Objekt och klasser - Introduktion. Objekt. SparKonto.java 2. SparKonto.java 1. Konton.java. Ett objekt har: Ett bankkonto
Objekt och klasser - Introduktion Objekt Ð Begreppet objekt Ð Hur klasser anvšnds fšr att skapa objekt Ð Fšr-definierade klasser Ð Metoder och parameteršverfšring Ð Definiera klasser Ð Modifierare Ð Statiska
Dagens program. Programmeringsteknik och Matlab. Objektorienterad programmering. Vad är vitsen med att ha både metoder och data i objekten?
Programmeringsteknik och Matlab Övning 4 Dagens program Övningsgrupp 2 (Sal Q22/E32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kurshemsida: http://www.nada.kth.se/kurser/kth/2d1312
Mer om klasser och objekt
Klassvariabler och klassmetoder En klass kan innehålla klassvariabler och klassmetoder. TDA143 I1 Programmerade system Föreläsning 5 (OH-bilder 5) Mer om klasser och objekt Christer Carlsson Det som skiljer
Idag. 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
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 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,
Kort om klasser och objekt En introduktion till GUI-programmering i Java
Kort om klasser och objekt En introduktion till GUI-programmering i Java Klasser En klass är en mall för hur man ska beskriva på något. Antag att vi har en klass, Bil. Den klassen innehåller en lista på
Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel
Objekt Instansvariabler Instansmetoder Klassvariabler Klassmetoder Inkapsling Föreläsning 6 Vad är ett objekt? Ett objekt har egenskaper, som kallas för objektets attribut Egenskaperna beskriver tillsammans
public 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
Fö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[]
Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016
Objektorienterad Programkonstruktion Föreläsning 2 2 nov 2016 Objekt - klass Namn Fält1 Fält2 Fält3 Metod1 Metod2 Metod3 Metod4 Objekt - klass Objekt - klass Objekt - klass + Objekt - klass public class
Arv: 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
DAT043 - Föreläsning 7
DAT043 - Föreläsning 7 Model-View-Controller, mer om klasser och interface (arv, ) 2017-02-06 Designmönstret Observer avläser Observer Observable meddelar Observer avläser En eller flera objekt registrerar
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat
Föreläsning 8 - del 2: Objektorienterad programmering - avancerat Johan Falkenjack johan.falkenjack@liu.se Linköpings universitet Sweden December 4, 2013 1 Innehåll Arv och andra viktiga begrepp Abstrakta
UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.
Översikt Klasshierarkier UML klassdiagram Relation mellan klasser mellan klasser och objekt Association ning ing andling Programmering tillämpningar och datastrukturer 2 UML UML Unified Modeling Language
Inkapsling 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
I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else
Förkunskaper från tidigare föreläsningar: Objektorienterad Programmering (TDDC77) Föreläsning IX: Klasser och Objekt, Instantiering Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2015 I STONE I Variabler,
Lösningsförslag. 1 Lösningsförslag. Uppgift 1
Uppgift 1 Lösningsförslag import java.awt.rectangle; public class ImprovedRectangle extends Rectangle { public ImprovedRectangle(int width, int height) { super(width, height); public ImprovedRectangle(int
JAVA Mer om klasser och objektorientering
JAVA Mer om klasser och objektorientering Begreppet package - paket Package används när man t ex vill skapa ett eget bibliotek med klasser. Sen är det då meningen att man ska importera detta paket i det
Laboration 1 - Grunderna för OOP i Java
Uppdaterad: 2006-08-31 Laboration 1 - Grunderna för OOP i Java Inledning Laborationen går ut på att lära sig grunderna för objektorienterad programmering, samt motsvarande språkkonstruktioner i Java. Labben
Dagens föreläsning. Arrayer och klasser. Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 1 )
(26 januari 2018 F3 1 ) Dagens föreläsning Arrayer och klasser Medan ni väntar: Gå till m.voto.se/prog11 och svara på några gamla tentamensfrågor! (26 januari 2018 F3 2 ) Arrayer En array är en datatyp
Enkla variabler kontra referensvariabel
Föreläsning 6 Mer om klasser och objekt Föreläsning 6 Mer om klasser och objekt Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. En variabel som
1 Uppgift 1. a) Skapar ett Company-objekt med hjälp av den överlagrade konstruktorn. Du kan själv välja värden på instansvariablerna.
1 Uppgift 1 Klassen Company Banken FinanceTrust som tidigare bara haft privatpersoner som kunder vill nu bygga ut sitt datasystem så att även företag kan registreras som kunder. Skriv klassen Company som
TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 TDDE11, 725G90/1 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder
Java, klasser, objekt (Skansholm: Kapitel 2)
Java, klasser, objekt (Skansholm: Kapitel 2) Uppsala Universitet 11 mars 2005 Objectorienterad programmering Sida 1 Vad är en klass? En klass är ett sätt att beskriva en mängd objekt och deras gemensamma
Föreläsning 6. Mer om klasser och objekt. Enkla variabler kontra referensvariabel. Omslagsklassen Integer. Referensvariabler
Enkla variabler kontra referensvariabel En variabel är ett namngivet minnesutrymme i datorns primärminne. Föreläsning 6 Mer om klasser och objekt En variabel som används för att representera en primitiv
Malmö högskola 2008/2009 CTS
Laboration 8 Avsikten med laborationen är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Föreläsning 4. Klass. Klassdeklaration. Klasser Och Objekt
Föreläsning 4 Klasser Och Objekt Klass Beskrivning av en objekttyp Beskriver egenskaper och beteende (fält och metoder) Klassen fungerar som en ritning Objekt skapas från klassbeskrivningen - instansieras
TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDC30 Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Konstruktorer Statiska metoder & attribut
Klasser och objekt. Henrik Johansson. August 20, 2008
Föreläsning 5 Klasser och objekt Henrik Johansson August 20, 2008 Ett objekt är en modell av ett fysisikt eller ett tänkt ting. Objektet och det som vi kan göra med det beskrivs av en mall, en klass. Ett
Subklasser 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).
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER
Föreläsning 8 SLUMPTAL, SIMULERING + INTRODUKTION TILL VEKTORER Från laboration 3 till 4 I laboration 3 har du implementerat klasser implementerat metoder i klasserna I laboration 4 kommer du att implementera
Objektorienterad Programmering DAT043
Objektorienterad Programmering DAT043 Föreläsning 3 22/1-18 Moa Johansson (delvis baserat på Fredrik Lindblads material) 1 Kom ihåg: Visa Javas API. Nämn att slidesens också har tillhörande text på kurshemsidan.
Objektorienterad programmering Föreläsning 5
Objektorienterad programmering Föreläsning 5 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda UML Övning Mer om metoder Standardklassen String Konstruktorer Överlagrade metoder Standardklassen
Administrativt. Programmeringsteknik för I1. Dagens program. Objektorienterad programmering
Programmeringsteknik för I1 Övning 2 Administrativt Övningsgrupp 2 (Sal E32/D32) Johannes Hjorth hjorth@nada.kth.se Rum 4538 på plan 5 i D-huset 08-790 69 02 Kontrollera att ni har fått Lab2 inrapporterad
public class BoundedCounter {
Uppgift 1 I Javas standardbibliotek finns en klass för rektanglar. Nedanstående kod visar relevanta delar av klassen: public class Rectangle {... public Rectangle(int height, int weight) {... public Rectangle(int
OOP Objekt-orienterad programmering
OOP F4:1 OOP Objekt-orienterad programmering Föreläsning 4 Metoder klass-metoder instans-metoder Metoder - subrutiner OOP F4:2 Kod som utför en viss operation. Ligger i olika klasser och anropas via operatorn.
EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.
EDAA20 Programmering och databaser Mål komprimerat se kursplanen för detaljer Läsperiod 1 7.5 hp anna.aelsson@cs.lth.se http://cs.lth.se/edaa20 Mer information finns på kursens webbsida samt på det utdelade
TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU
TDDE10 TDDE11, 725G90 Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU På denna föreläsning: Introduktion OOP Instanser, instansvariabler, instansmetoder
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
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
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Instansiering Åtkomst Abstrakt datatyp UML Överlagring
TENTAMEN 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
Sammanfattning och repetition utgående från typiska tentamensuppgifter
(2 mars 2018 F6 1 ) Dagens föreläsning Sammanfattning och repetition utgående från typiska tentamensuppgifter (2 mars 2018 F6 2 ) A-fråga Hur många objekt skapas av nedanstående kod? World w = new World();
TENTAMEN OOP
TENTAMEN OOP 2014-01-19 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 11
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 11 I måndags: programmera effektivt planera skriv tydlig kod använd felsökning teori inkapsling referenser static new, konstruktorer
Laboration 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
Grundläggande programmering, STS 1, VT Sven Sandberg. Föreläsning 14
Grundläggande programmering, STS 1, VT 2007. Sven Sandberg Föreläsning 14 I torsdags & fredags: arrayer Deklaration, initiering, åtkomst Arrayer är referenser Arrayer som parametrar och returvärden Exempel
Föreläsning 5 (6) Metoder. Metoder Deklarera. Metoder. Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc
Föreläsning 5 (6) Metoder Metoder Parametrar Returvärden Överlagring Konstruktorer Statiska metoder tostring() metoden javadoc Metoder Deklarera public void setnamn(string n) Åtkomstmodifierare Returtyp
För att skriva data till skärmen ( konsolen) används objektet System.out tillsammans med metoden println eller print.
1 Inmatning och utskrift Inmatning från tangentbord och utskrift till skärm sker i java med hjälp av objekten System.out och System.in. Dessa båda objekt är exempel på strömmar. En ström är en typ som
Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.
Tentamen Programmeringsteknik I 2013-06-14 med lösningar 1. Svara kortfattat på följande: a) Vad är en instansvariabel? Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och
1 Egna klasser. 1.1 En punkt-klass
1 Egna klasser Vi har bekantat oss med klasser genom att se hur vi kan använda olika klasser. I synnerhet klassen Scanner och klassen Math. För scannerklassen skapade vi en instans för att sedan utnyttja
Objektorientering - Arv och polymorfi. Eric Elfving Institutionen för datavetenskap
Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser. Vi får också möjlighet att referera
Idag. Javas datatyper, arrayer, referenssemantik. Arv, polymorfi, typregler, typkonvertering. Tänker inte säga nåt om det som är likadant som i C.
Idag Javas datatyper, arrayer, referenssemantik Klasser Arv, polymorfi, typregler, typkonvertering Strängar Tänker inte säga nåt om det som är likadant som i C. Objectorienterad programmering Sida 1 Ett
Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.
Objektorienterad Programmering (TDDC77) Föreläsning X: Klass diagram, inkapsling, arv Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Att instansiera en klass Objekt I Man instansierar (skapar
"Är en"-relation. "Har en"-relation. Arv. Seminarium 2 Relevanta uppgifter. I exemplet Boll från förra föreläsningen gällde
Föreläsning 7 "Har en"-relation Arv "Har en" "Är en" Superklassen Object Överskuggning Fordonsexempel Seminarium 2 Relevanta uppgifter Uppgift 31 I exemplet Boll från förra föreläsningen gällde följande
Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random
Kasta tärning tills etta Skriv ett program som låter en användare spela detta tärningsspel: Spelaren gör första tärningsslaget och får samma poäng som tärningen visar. Sedan fortsätter spelet enligt följande
TENTAMEN OOP
TENTAMEN OOP 2014-03-15 ANVISNINGAR Påbörja varje ny uppgift på nytt blad. Skriv endast på ena sidan av bladen. Skriv tydligt - oläsbara svar beaktas ej. BETYGSÄTTNING Max antal poäng är 30. För att bli
Modeller, Objekt och Klasser
Modeller, Objekt och Klasser Bildserie 3 Objekt Orienterad Programmering OO-programmering bygger på att vi som människor uppfattar tillvaron i termer av objekt - Bastu, pizza, öl,... Det borde vara lättare
TDA550 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,
Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Klassen calculator Signatur Calculator
TDDC76 - Programmering och Datastrukturer
TDDC76 - Programmering och Datastrukturer Objektorientering - Arv och polymorfi Eric Elfving Institutionen för datavetenskap 1 / 25 Med hjälp av arv kan vi bryta ut saker som är gemensamt hos flera klasser.
Objekt, Klasser, Paket m. m.
Objekt, Klasser, Paket m. m. Bildserie 3 Objekt Ett objekt karakteriseras av - Identitet, det som gör det möjligt att särskilja objektet från andra objekt - Tillstånd, den data som finns i objektet - Beteende,
Föreläsning REPETITION & EXTENTA
Föreläsning 18 19 REPETITION & EXTENTA Programmeringsteknik på 45 minuter Klasser och objekt Variabler: attribut, lokala variabler, parametrar Datastrukturer Algoritmer Dessa bilder är inte repetitionsbilder
Objektorienterad Programmering (TDDC77)
Objektorienterad Programmering (TDDC77) Föreläsning XI: åsidosättning, gränssnitt, uppräkning, hierarkier Ahmed Rezine IDA, Linköpings Universitet Hösttermin 2017 Outline Överlagring (overloading) Arv
Agenda. Objektorienterad programmering Föreläsning 13
Objektorienterad programmering Föreläsning 13 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webacademy.se Agenda Ett objektorienterat exempel Repetition Mer om arv Abstrakta klasser Abstrakta metoder
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder
Introduktion TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder OO är den mest använda programmeringsparadigmen idag, viktigt steg att lära sig och använda OO. Klasser är byggstenen i
Malmö högskola 2007/2008 Teknik och samhälle
Laboration 8 Avsikten med denna laboration är att du lära dig skapa objekt med hjälp av klasser. Detta är en introduktion till ett objektorienterat tankesätt. Med hjälp av detta tankesätt kan du så småningom
Fö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
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering!
Överlagring, static, testning, formella metoder och undantag! Förelasning 13!! TDA540 Objektorienterad Programmering! Gränssnitt igen För att kunna ändra på olika delar av programmet utan att andra delar
Klasshierarkier - 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
725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack
725G61 - Laboration 5 Grundläggande objektorientering Johan Falkenjack November 26, 2013 1 Inledning I labb 1-3 tittade vi på de grundläggande byggstenarna i programmering. Vi lärde oss om variabler, styrstrukturer
F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander
F4 Klasser och Metoder ID1004 Objektorienterad programmering Fredrik Kilander fki@kth.se Klasser och objekt Klasser definierar (utgör idén) Objekt instantierar (utgör förekomsten) En klassdefinition Många
Föreläsning 3-4 Innehåll
Föreläsning 3-4 Innehåll Skriva egna metoder Logiska uttryck Algoritm för att beräkna min och max Vektorer Datavetenskap (LTH) Föreläsning 3-4 HT 2017 1 / 36 Diskutera Vad gör programmet programmet? Föreslå
Fö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?
Anmälningskod: Lägg uppgifterna i ordning. Skriv uppgiftsnummer (gäller B-delen) och din kod överst i högra hörnet på alla papper
Tentamen Programmeringsteknik I 2016-03-17 Skrivtid: 1400 1900 Tänk på följande Skriv läsligt. Använd inte rödpenna. Skriv bara på framsidan av varje papper. Lägg uppgifterna i ordning. Skriv uppgiftsnummer
Att deklarera och att använda variabler. Föreläsning 10. Synlighetsregler (2) Synlighetsregler (1)
Föreläsning 10 STRING OCH STRINGBUILDER; VARIABLERS SYNLIGHET Att deklarera och att använda variabler När vi deklarerar en variabel, t ex int x; inför vi en ny variabel med ett namn och en typ. När namnet
Objektorienterad programmering
Objektorienterad programmering Föreläsning 7 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda Konstanter och readonly Statiska klasser Standardklassen Math Parameteröverföring Referensen
Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1
Objektorienterad programmering Vi började med att programmera i main, sedan gick vi vidare till flera metoder i en klass. Nu är det dags för flera klasser. Objektorienterad programmering Relationer mellan
Objektorientering: Lagring och livstid
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2018 Objektorientering: Lagring och livstid Tre sorters variabler Tre sorters variabel (1): Lokal 2 Lokal variabel Deklareras inuti en metod Vid varje anrop
Kopiering av objekt i Java
1 (6) Kopiering av objekt i Java Först När du läser detta papper bör du samtidigt studera dokumentationen för klasserna Object, Cloneable (java.lang) och ArrayList (java.util). Mycket blir klarare genom
Malmö högskola 2007/2008 Teknik och samhälle
Laboration 9 Avsikten med denna laboration är att du ska jobba vidare med klasser. Uppgifterna går ut på att skriva metoder och att skriva konstruktorer. Laborationen bygger vidare på laboration 8. Skapa
Konstruktion 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
Idag. Exempel, version 2. Exempel, version 3. Ett lite större exempel
Idag Ett exempel Undantag Substitutierbarhet, subtyper, subklasser När val av metod beror av typerna hos två objekt Lite om överlagring Exempel, version 2 Notera: för samtliga figurer gäller: arean av
Objektorientering: Lagring, räckvidd och livstid
TDDD78, TDDE30, 729A85 jonas.kvarnstrom@liu.se 2019 Objektorientering: Lagring, räckvidd och livstid Tre sorters variabler, två sorters metoder Räckvidd och livstid 2 Variabler (lokala och medlemsvariabler)
Exempel 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
(Man brukar säga att) Java är... Denna föreläsning. Kompilering av Java. Historik: Java. enkelt. baserat på C/C++ Allmänt om Java
(Man brukar säga att) Java är... Denna föreläsning Allmänt om Java Javas datatyper, arrayer, referenssemantik Klasser Strängar enkelt baserat på C/C++ objekt-orienterat från början dynamiskt utbyggbart
F8 - 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