1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

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.
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.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
ObjektOrienterad analys och design. SVP Vt2009 Föreläsning nr 2, måndag 8 april kl Diskussion (kurshemsida): Om designuppgiften Om projektuppgiften.
Metoder i java Det finns två typer av metoder i java
Arv.
Abstract & sealed.
Objektorienterad tänkande
Polymorfism.
Metoder.
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.
Programkodens uppbyggnad
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
Next previous Introduktion till Java Av Björn Eiderbäck Adress: Rum 1641, 6tr NADA Osquars Backe 2 Tel: OOMPAE 2000.
TNSL04 – IT grundkurs. VT2008. Föreläsning nr 3, torsdag 7 feb. kl Del 1. Klasser, objekt, metoder, konstruktorer, samlingar och tillstånd. Hur.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
i olika programmeringsspråk
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
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.
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 6 ( ) INNEHÅLL: -Mera om tabeller.
Klasser och objekt Klasser, objekt och instansvariabler
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.
4. Arv och dynamisk bindning
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
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
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 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.
Föreläsning 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
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.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
INTRODUKTION TILL PROGRAMMERING
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
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.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
7. Delegerare och notifierare
TILLÄMPAD DATALOGI (TILDA) Övningsgrupp 2 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.
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
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.
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
Föreläsning Klass Cirkel, Punkt Klassen Object Arv, överskuggning
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.
1 Föreläsning 7 Repetition Instansvariabler och klassvariabler Klassmetoder och Instansmetoder.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Föreläsning 2: Typer, klasser, tilldelning
Föreläsning 5: Att använda klasser & objekt
Presentationens avskrift:

1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8

2 Mer om klasser & objekt this Modifieraren static Inre klasser

3 Klassmetoder & klassvariabler Modifieraren static

4 Klassmetoder (=statiska metoder) kan anropas genom att använda klassnamnet – Inte objektnamnet T ex metoderna i Math -klassen är statiska: Math.floor(2.39);//Ger 2.0 För att skapa en klassmetod eller klassvariabel så skriver man static -modifieraren i metoddefinitionen

5 Klassvariabler (=Statiska variabler) Normalt så har varje objekt sitt eget dataområde med egna instansvariabler Om en variabel deklareras som static, så kommer bara en kopia av variabeln finnas för alla objekt som skapas av samma klass private static double rabatt;

6 I varuhuset – ”Idag 10% rabatt på alla glas- & konservburkar” Sylt 230g 18kr Marmelad 300g 20kr Tonfisk 275g 10kr Sardiner 310g 8kr public class BurkBurk { private static double rabatt; private String innehåll; private int vikt; private double pris;..plus en del metoder... Alla burkar (objekt) är skapade av klassen Burk, så var och en har sina egna instansvariabler av vikt, pris och innehåll. Men alla är rabatterade med samma procentsats, då rabatt är en klassvariabel! Exempel: LivsmedelsAvdelning.java tillsammans med Burk.java

7 Klassvariabler Alla objekt som skapats av samma klass delar på klassvariablerna  Om man ändrar en klassvariabels värde i en av objekten, så ändras den också för alla andra objekt! Om man ser någon gemensam egenskap mellan objekt, som man vill ska vara lika för alla objekt:  Då kan det vara aktuellt att använda klassvariabler.  Ofta kan det vara räknare Exempel: CountInstances.java tillsammans med Slogan.java Exempel: MainDemo.java tillsammans med Klassmetod_KlassVariabelDemo.java

8 Klassmetoder (=Statiska metoder) public static int trippel (int tal) { int resultat; resultat = tal * 3; return resultat; } public class Helper Eftersom det är en klassmetod, så anropas metoden enligt: värde = Helper.trippel(5);

9 Klassmetoder (=Statiska metoder) main är en statisk metod – En klassmetod. Den anropas av systemet utan att ett objekt skapas först.  public static void main (String args[]) {...} Statiska metoder kan referera till statiska- och lokala variabler Statiska metoder kan inte referera till instansvariabler  Instansvariablerna existerar inte förrän ett objekt existerar

10 this - referensen För att objekt ska kunna referera till ”sig själv”

11 this -referensen this referensen gör att ett objekt kan referera till sig självt Objekt

12 Tre sätt att använda this 1. Referera till egna instansvariabler eller instansmetoder T ex this.pris = temp_pris; //Tilldelning till egen instansvaríabel 2. Anropa egen konstruktor this(); //Anropar egen konstruktor utan inparametrar 3. Referens till det egna objektet T ex return this; //Returnerar en referens till sig själv (objektet självt) Exempel: This_Exempel.java tillsammans med ObjektA.java och ObjektB.java

13 1. this -referensen this referensen används för att:  Särskilja inparametrar i en metod (eller konstruktor) från instansvariabler med samma namn public class Konto { String namn; int kontoNummer; double balans; public Konto(String namn,int kontoNummer,double balans) { this.namn = namn; this.kontoNummer = kontoNummer; this.balans = balans; } Är de lokala variablerna från parameterlistan i metod huvudet Syftar på det här objektets instansvariabler

14 Vid anrop till egen konstruktor, så måste detta anrop stå som första sats 2. this -referensen public class Konto { String namn; int kontoNummer; double balans; public Konto(String namn,int kontoNummer,double balans) { this.namn = namn; this.kontoNummer = kontoNummer; this.balans = balans; } public Konto(String namn,int kontoNummer) { this(); //Anropar egen konstruktor utan inparametrar this.balans = 0.0; //Nyöppnat konto }

15 I t ex en metod kan referens till det egna objektet returneras 3. this -referensen public class Konto { String namn; int kontoNummer; double balans; public Konto(String namn,int kontoNummer,double balans) { this.namn = namn; this.kontoNummer = kontoNummer; this.balans = balans; } public Konto getKonto() { return this; //Returnerar en ref. till detta objekt }

16 Att returnera this -referensen Med this referensen kan man returnera en referens till det egna objektet. T ex: public Kub getKubObjekt() { return this; } Exempel: Returnera_This.java tillsammans med Kub.java

17 Garbage Collection

18 Garbage Collection När ett objekt inte längre har referenser till sig, så kan det inte heller kommas åt av programmet Objektet är oanvändbart och kallas därför för garbage (=skräp, sopor) Java utför periodisk automatic garbage collection.  Detta gör att det minne, som det oanvändbara objektet tar upp, automatiskt lämnas tillbaka till systemet

19 Inre klasser Klass som är inkapslad i en yttre klass

20 Inre klasser Förutom att en klass kan innehålla data och metoder, så kan en klass också innehålla andra klasser En klass som är deklarerad i en annan klass kallas för nästlad klass och om den inte är statisk kallas den för inre klass Yttre klass Inre klass public class YttreKlass { private class InreKlass { }

21 Inre klasser Är icke-statiska klasser. Alltså det får inte stå:  public static class InreKlass{} En inre klass är associerad med varje instans i den yttre klassen, dvs. vi kommer åt alla yttre metoder och -variabler från en inre klass En instans av en inre klass kan endast existera inuti en instans skapad av den yttre klassen Ex på hur en yttre och inre klass ”samarbetar”:  Exempel: TestInner.java tillsammans med Outer.java

22 Inre klasser En inre klass har tillgång till alla variabler och metoder i den omgivande yttre klassen, även privata

23 Inre klasser Vid kompilering så skapas en separat bytekod-fil (*.class) av den inre klassen. InreKlass finns deklarerad inuti en yttre klass YttreKlass. Två class-filer kommer att skapas vid kompilering: 1. YttreKlass.class 2. YttreKlass$InreKlass.class Inre klasser kan deklareras som static, men i det fallet kan de inte referera till instansvariabler eller instansmetoder.

24 Vad kan inre privata klasser användas till?  Består av minst tre typer av objekt: 1. Komponenter  T ex knappar, textfält, drop-downlister mm 2. Händelser  T ex händelsen att användaren klickar på en knapp 3. Lyssnare  T ex att ”fånga upp händelsen”, dvs. lyssna om användaren klickade på knappen  Denna (eller dessa) lyssnare byggs med fördel upp av en inre klass i den klass som beskriver användargränssnittet där komponenterna finns. Grafiska användargränssnitt