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



Relevanta dokument
Objekt och klasser - Introduktion. Objekt. Spar_Konto 2. Spar_Konto 1. Konton. Ett objekt har: Ett bankkonto. public void uttag(double belopp)

Objekt och klasser - Introduktion

Kapitel 6. Hakparenteser fšr att ange index MŒnga všrden av samma typ

Kapitel 6. Kapitel 6. Hakparenteser fšr att ange index float[] priser = new float[500]; frekvens[4] boolean[] flaggor;

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

Java, klasser, objekt (Skansholm: Kapitel 2)

I STONE. I Variabler, datatyper, typkonvertering. I Logiska och matematiska uttryck. I Metoder-returvärde och parametrar. I Villkorssatser if/else

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

Heltalsrepresentation. Fler byggstenar. Overflow och Underflow. TvŒ-komplement. FlyttalsvŠrden. Fyra heltalstyper. Tecken-bit

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

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

Föreläsning 5-6 Innehåll. Exempel på program med objekt. Exempel: kvadratobjekt. Objekt. Skapa och använda objekt Skriva egna klasser

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

Föreläsning 8 - del 2: Objektorienterad programmering - avancerat

Föreläsning 5-6 Innehåll

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

Design av en klass BankAccount som representerar ett bankkonto

UML. Klassdiagr. Abstraktion. Relationer. Överskugg. Överlagr. Aktivitetsdiagram Typomv. Typomv. Klassdiagr. Abstraktion. Relationer.

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

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Enkla variabler kontra referensvariabel

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

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

Objektorienterad Programmering (TDDC77)

Outline. Objektorienterad Programmering (TDDC77) Att instansiera en klass. Objekt. Instansiering. Åtkomst. Abstrakt datatyp.

Arv. Fundamental objekt-orienterad teknik. arv i Java modifieraren protected Lägga till och modifiera metoder med hjälp av arv Klass hierarkier

Lösningsförslag övning 2.

Mer om klasser och objekt

Objektorienterad programmering i Java

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

OOP Objekt-orienterad programmering

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

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

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

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

Variabler som hör till enskilda objekt. Deklareras på översta nivån i klassen och i regel som private.

Parameteröverföring. Exempel. Exempel. Metodkropp

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

System.out.println("Jaså du har "+ antaldollar + " stycken.");

Modeller, Objekt och Klasser

Objekt och referenser

Ett objekt... Exempel: Om ni tittar er runt i föreläsningssalen ser in många olika fysiska föremål:

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

Föreläsning 4. Klasser och objekt

Objektorienterad programmering

Objektorientering. Objekt och metoder. Objektorientering. Viktiga begrepp. Klass. Objekt. Deklarativ programmering

(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

Objekt, Klasser, Paket m. m.

Objektorienterad programmering i Java

TDDE10 TDDE11, 725G90/1. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

PROGRAMMERING-JAVA TENTAMINA

TDDE10 TDDE11, 725G90. Objektorienterad programmering i Java, Föreläsning 2 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad programmering Föreläsning 5

OOP Objekt-orienterad programmering

Tentamen OOP

Objektorienterad Programmering DAT043

Föreläsning 5. Föreläsning 5. Klasser och objekt. Klasser och objekt. Klasser och objekt

JAVA Mer om klasser och objektorientering

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

Klasser och objekt. Henrik Johansson. August 20, 2008

Föreläsning 2, vecka 8: Repetition

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 )

Programmeringsteknik I. Föreläsning 3: Klasser och arrayer

Malmö högskola 2008/2009 CTS

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

KLASSER. Inkapsling Abstrakt datatyp Public och private. Klassmedlemmar Datamedlemmar Exempel Funktionsmedlemmar

TENTAMEN. Kurs: Objektorienterad programmeringsmetodik 5DV133 Ansvarig lärare: Anders Broberg. VT-13 Datum: Tid: kl

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

Exempel. Arrayer. Lösningen. Ett problem. Arrayer och hakparanteser. Arrayer

Objektorienterad Programmering (TDDC77)

Klassdeklaration. Metoddeklaration. Parameteröverföring

Outline. Objektorienterad Programmering (TDDC77) Laborationsserie del två. Vad händer under HT2. Introduktion HT2 UML.

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

Föreläsning 8. Arv. Arv (forts) Arv och abstrakta klasser

Tentamen ID1004 Objektorienterad programmering October 29, 2013

Programmering i C++ EDA623 Objektorienterad programutveckling. EDA623 (Föreläsning 5) HT / 33

Kort repetition. Programmeringsteknik för Bio1 och I1. Vad ska vi lära oss idag? Ett exempel

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

Övningar Dag 2 En första klass

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

Att öva på och förstå ett program med flera samverkande klasser.

TENTAMEN OOP

Kopiering av objekt i Java

Föreläsning 3-4 Innehåll

l uppgiftsformulering l algoritmkonstruktion l verifikation l kodning l testning och avlusning l validering l dokumentering l underhœll Kapitel 2

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

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

Föreläsning 7: Objektorienterad programmering - introduktion

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

DAT043 - Föreläsning 7

Programmering i C++ EDA623 Mer om klasser. EDA623 (Föreläsning 6) HT / 26

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

Classes och Interfaces, Objects och References, Initialization

Dagens text. Programmeringsteknik. Mer om Scanner-klassen. Dialogrutor (klassen JOptionPane) Bubbelsortering. Omslagsklasser.

Typkonvertering. Java versus C

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

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

OOP Objekt-orienterad programmering

Transkript:

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 variabler och metoder Ð overloading Ett objekt har: Ð tillstœnd - egenskaper Ð bet een den - vad det kan gšra, eller utsšttas fšr Ett bankkonto Ð har konto nummer Ð har saldo Ð insšttningar till Ð uttag frœn 1 2 SparKonto.java 1 public class SparKonto double saldo; public SparKonto(double startsaldo) saldo = startsaldo; }// constructor SparKonto public void ins(double belopp) saldo = saldo + belopp; Out.println(belopp + " insatt."); }// method ins É É public void uttag(double belopp) SparKonto.java 2 if (saldo >= belopp) saldo = saldo - belopp; Out.println(belopp + " uttaget."); } elseout.println(ósœ mycket kan man inte ta ut."); }// method uttag public double getsaldo() return saldo; }// method getsaldo } // class SparKonto 3 4 class Konton public static void main (String[] args) Konton.java SparKonto jan = new SparKonto (00.00); SparKonto eva = new SparKonto (1000.00); Kšrningen... Out.println ("Jan's saldo: " + jan.getsaldo()); jan.ins (100.00); Out.println ("Jan's saldo: " + jan.getsaldo()); jan.uttag (7.00); Out.println ("Jan's saldo: " + jan.getsaldo()); Out.println ("Eva's saldo: " + eva.getsaldo()); eva.ins (700.00); Out.println ("Eva's saldo: " + eva.getsaldo()); eva.uttag (2000.00); Out.println ("Eva's saldo: " + eva.getsaldo()); eva.uttag (1299.62); Out.println ("Eva's saldo: " + eva.getsaldo()); } // method main } // class Konton 6 1

Klasser En klass Šr en mall fšr ett objekt Modell/mšnster efter vilket objekt skapas En klass definierar metoder och information knutna till objekt Att skapa ett objekt kallas instantiering, Skapa Objekt Operatorn new skapar ett objekt frœn en klass: SparKonto eva = new SparKonto (1000.00); Initialiseras till det objekt som skapas av new Objektet genereras av aktuell konstruktor 7 8 Konstruktorer Speciell metod som anv. fšr att skapa objekt Samma namn som klassen Kan ta parametrar, som ofta initialiserar attribut i objektet Konstruktorn SparKonto : SparKonto eva = new SparKonto (1000.00); Initiering i tvœ steg: Objekt referenser SparKonto eva; eva = new SparKonto (1000.00); Éeller... SparKonto eva = new SparKonto (1000.00); Metoderna till existerande objekt nœs med punktoperatorn: jan.uttag (100.00); 9 10 Klassen String Klassen String TeckenstrŠngar Šr objekt av klassen String String namn = new String (ÓPippi LŒngstrump"); Alternativ fšr klassen String : String name = ÓPippi LŒngstrump"; Objekt av klassen String kan aldrig Šndras Enstaka tecken i en stršng nœs med index Fšrsta index = 0 Klassen String definieras i java.lang Bra metoder i klassen String Se Carpe_Diem.java (s.126) 11 12 2

HjŠlpmetoder till String String temp,namn; int lgd,index; namn = new String (ÓPippi LŒngstrump"); lgd = namn.length(); System.out.println(Ó3:e=Ó + namn.charat(2)); temp = namn.tolowercase(); index = namn.indexof(õœõ); if (temp.equals(namn)) System.out.println(ÓLika!Ó); if (temp == namn)... Klassen Random Klassen Random tillhandahœller en slumptalsgenerator nextint všrdemšngden fšr datatypen int Slumptalsfrš i konstruktorn Random slump = new Random(); eller egetfröavtypenlong Random slump = new Random(xx); int kast = Math.abs (slump.nextint()) % 6 + 1 13 14 RŠtt talomrœde Ut tryck VŠrden Math.abs (slump.nextint()) % 10 + 1 1 to 10 Math.abs (slump.nextint()) % 101 0 to 100 Math.abs (slump.nextint()) % 11 + 20 20 to 30 Math.abs (slump.nextint()) % 11 - - to Referenser En referens till ett objekt Šr en referens till objektets minnesadress Chess_Piece bishop1 = new Chess_Piece(); bishop1 All interaktion sker via referens variabel Tilldelning pœverkas 1 16 Tilldelning Referens tilldelning AllmŠnt tas en kopia av ett všrde och lagras i en variabel Fšr primitiva typer: num2 = num1; Fšre Efter num1 num2 12 num1 num2 Fšr objekt referenser, kopieras minnesadressen: bishop2 = bishop1; Fšre Efter bishop1 bishop2 bishop1 bishop2 17 18 3

Alias Garbage Collection TvŒ eller flera referenser till samma objekt kallas alias Bara en kopia av objektet Allt som gšrs via en referens pœverkar alla alias Bra men anvšnds med eftertanke Om alla referenser tas bort kan objektet inte lšngre nœs Objektet oanvšndbart Automatisk garbage collection Programmerarens ansvar i andra sprœk 19 20 Syntax fšr metoder: Metoder retur-typ metod-namn ( parameter-lista ) } sats-lista int third_power (int number) int cube; cube = number * number * number; return cube; } // metod third_power Exempel 21 22 Metoder Kan innehœlla lokala deklarationer & exekverbara satser Lokalt deklarerade variabler Metoden third_power utan lokala variabler : int third_power (int number) return number * number * number; return - satsen I metod-huvudet anges returvšrdets typ Om inget všrde returneras anges void Satsen return anger vilket všrde som returneras Typreglerna mœste fšljas } // metod third_power 23 24 4

Programflšdet Metoden main anropas av systemet nšr bytecoden ges till interpretatorn terhoppet sker till anropsstšllet main metod1 metod2 Parametrar En metod kan ta noll eller flera parametrar Varje parameter specificeras med typ och namn formella parametrar metod1(); metod2(); aktuell parametrar 2 26 Parameteršverfšring Syntax : Definiera klasser Kopia av všrdet till den formella parametern BŒde primitiva typer och objektreferenser NŠr en referens šverfšrs blir den formella parametern ett alias fšr aktuell parameter Se Parameter_Passing.java class klass-namn deklarationer konstruktorer metoder } Attribut/variabler, konstruktorer och metoder kallas medlemmar 27 28 class Account Definiera klasser Konstruktorer int account_number; double balance; Account (int account, double initial) account_number = account; balance = initial; } // konstruktor Account En konstruktor : Ð Fšr att initialisera nytt objekt Ð Samma namn som klassen Ð Returnerar inget všrde, void anges inte void deposit (double belopp) balance = balance + belopp; } // metod deposit Bra att alltid definiera en konstruktor } // klass Account 29 30

Klasser och objekt Klassen definierar data typen fšr ett objekt, men lagrar inga všrden Varje objekt har eget minnesutrymme Variabler i en klass kallas instans variabler Alla metoder i en klass har tillgœng till attributen i klassen Metoder delas i klassen Klass int account_number double balance Klasser och objekt Objekt account_number 2908371 balance 73.21 account_number 4113787 balance 9211.84 31 32 Inkapsling Inkapsling Ett objekt ska klara sig sjšlv - all manipulation via metoderna Gšr det svœrt fšr ÓutanfšrstŒendeÓ OkŠnt fšr anvšndaren hur saker gšrs Abstraktion Objekten kan ses som svarta lœdor eva ins uttag getsaldo... anvšndare 33 34 Modifierare Modifierare Inkapsling gšrs med visibility modifiers En modifierare Šr ett reserverat ord final definierar konstant 3 modifierare: public, private och protected public : kan nœs šverallt ifrœn protected : kan nœs šverallt i paketet private : kan nœs inom klassen utan modifierare : kan nœs šverallt i paketet Appendix F 3 36 6

Modifierare Klasser och objekt Se Tunes.java AllmŠn regel : inga attribut public music Metoder som manipulerar objektet public Ð Kallas service met oder add_cds print main HjŠlp metoder inte public 37 38 static Statiska attribut static - bœde attribut och metoder Associerar med klassen snarare Šn objektet Avsteg ifrœn objekts-tanken Normalt har varje objekt eget minnesutrymme static gšr variabeln gemensam fšr alla objekt i klassen private static int count; Kallas ibland klass variabler 39 40 Statiska metoder Metoder anropas via ett objekt Om metoden Šr statisk anropas den med klassnamnet Exempel : klassen Math i java.lang innehœller statiska matematiska operationer Math.abs (num) -- absolutbeloppet In.readFloat() Ð egendefinierad statisk metod Statiska metoder main Šr statisk; anropas av systemet utan att nœgot objekt skapas Kan ej referera instansvariabler Kan referera statiska variabler eller lokala variabler Statiska metoder kallas ibland klass metoder Appendix O Out.println () Ð egendefinierad statisk metod 41 42 7

Overloading println (String s) println Samma namn fšr flera metoder Signaturen = parametrarnas antal, typ och ordning Signaturen mœste vara unik Returtypen Šr inte del av signaturen println (int i) println (double d) etc. System.out.println ("The total is:"); System.out.println (total); Olika versioner av metoden println 43 44 Flera konstruktorer public SparKonto(double startsaldo) saldo = startsaldo; }// konstruktor SparKonto verlagrade metoder public SparKonto(int kontonr, double startsaldo) kontonummer = kontonr; saldo = startsaldo; }// konstruktor SparKonto Se Purchase_Power.java Manager name "Jim" Stock_Item name "beans" product_buyer Purchase_Power jim bob beans franks Ett exempel Manager name "Bob" Stock_Item name "franks" product_buyer 4 46 this StringTokenizer Objektet kan referera till sig sjšlv Skicka sig sjšlv som parameter t.ex. product_buyer.order_stock(this) Klassen StringTokenizer delar in stršngar i tokens Tokens separeras av blank, tab, vagnretur och ÓnyradÓ Klassen StringTokenizer definieras i java.util Se Int_Reader.java (s.129) 47 48 8