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

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

Objekt och klasser - Introduktion

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

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

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

Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling

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

Chapter 4: Writing Classes/ Att skriva egna klasser.

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

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Java, klasser, objekt (Skansholm: Kapitel 2)

Design av en klass BankAccount som representerar ett bankkonto

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

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

1 Programmering i Java. Program element - Introduktion. Exempel. Exempel. Kapitel 3:

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

Objektorienterad programmering Föreläsning 5

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

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

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

Mer om klasser och objekt

Objektorienterad programmering i Java

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

OOP Objekt-orienterad programmering

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

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

Enkla variabler kontra referensvariabel

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

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

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

OOP Objekt-orienterad programmering

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

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

Objektorienterad programmering

Lösningsförslag övning 2.

Parameteröverföring. Exempel. Exempel. Metodkropp

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

Typkonvertering. Java versus C

(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

Objektorienterad Programmering (TDDC77)

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

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

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

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

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

Föreläsning 2, vecka 8: Repetition

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

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

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

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

Övningsuppgift. Bankkonton. Steg 2. Författare: Mats Loock Kurs: Inledande programmering med C# Kurskod:1DV402

Modeller, Objekt och Klasser

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

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

JAVA Mer om klasser och objektorientering

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

Tentamen OOP

Klassdeklaration. Metoddeklaration. Parameteröverföring

Objekt och referenser

Föreläsning 4. Klasser och objekt

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

Objektorienterad Programmering DAT043

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 )

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

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

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

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

Klasser och objekt. Henrik Johansson. August 20, 2008

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

Föreläsning 6: Metoder och fält (arrays)

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

Föreläsning 3-4 Innehåll

TDIU01 - Programmering i C++, grundkurs

Innehåll. 5. More sophisticated behavior. Javas klassbibliotek. Arbete med klassbibliotek. A Technical Support System. Huvudloopens struktur

Ö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.

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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

F2 Datatyper och variabler. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

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

TENTAMEN PROGRAMMERINGSMETODIK MOMENT 2 - JAVA, 4P

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

Introduktion till Java

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

Inledande programmering med C# (1DV402) Tärningarna ska kastas

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

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

PROGRAMMERING-JAVA TENTAMINA

Ett problem. Kontrollstrukturer och arrayer. Arrayer. Lösningen. Arrayer och hakparanteser. Exempel int[] results; results = new int[10]; // 0..

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

Objektorienterad programmering i Java

TENTAMEN OOP

Malmö högskola 2008/2009 CTS

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

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.

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 Ð beteen den - v ad det kan gšra, eller ut sšttas fšr Ett bankkonto Ð har konto numm er Ð har saldo Ð insšttningar till Ð uttag frœn 1 2 class Spar_Konto double saldo; public Spar_Konto(double start_saldo) saldo = start_saldo; }// constructor Spar_Konto public void ins(double belopp) saldo = saldo + belopp; Out.println(belopp + " insatt."); }// method ins É Spar_Konto 1 É public void uttag(double belopp) Spar_Konto 2 if (saldo >= belopp) saldo = saldo - belopp; Out.println(belopp + " uttaget."); } elseout.println(ósœ mycket kan man inte ta ut."); }// method uttag public double get_saldo() return saldo; }// method get_saldo } // class Spar_Konto 3 4 class Konton public static void main (String[] args)... Spar_Konto jan = new Spar_Konto (500.00); Spar_Konto eva = new Spar_Konto (1000.00); Out.println ("Jan's saldo: " + jan.get_saldo()); jan.ins (100.00); Out.println ("Jan's saldo: " + jan.get_saldo()); jan.uttag (75.00); Out.println ("Jan's saldo: " + jan.get_saldo()); Out.println ("Eva's saldo: " + eva.get_saldo()); eva.ins (700.00); Out.println ("Eva's saldo: " + eva.get_saldo()); eva.uttag (2000.00); Out.println ("Eva's saldo: " + eva.get_saldo()); eva.uttag (1299.62); Out.println ("Eva's saldo: " + eva.get_saldo()); } // method main } // class Konton Konton Kšrningen 5 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 o bje kt frœn en klass: Spar_Konto eva = new Spar_Konto (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 Spar_Konto : Spar_Konto eva = new Spar_Konto (1000.00); Initiering i tvœ steg: Objekt referenser Spar_Konto eva; eva = new Spar_Konto (1000.00); Éeller... Spar_Konto eva = new Spar_Konto (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 Metoden nextint ger ett slumptal i všrdemšngden fšr datatypen int Skalas och skiftas Se Flip.java (s.130) 13 14 Uttryck Math.abs (rand.nextint()) % 6 + 1 Math.abs (rand.nextint()) % 10 + 1 Math.abs (rand.nextint()) % 101 Math.abs (rand.nextint()) % 11 + 20 Math.abs (rand.nextint()) % 11-5 Exempel VŠrden 1 to 6 1 to 10 0 to 100 20 to 30-5 to 5 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 15 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 num1 num2 5 12 Efter num1 num2 5 5 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 aliases 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 lokal 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 25 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 initialis era 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 5

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 573.21 account_number 4113787 balance 9211.84 31 32 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 Ett sštt att abstrahera Objekten kan ses som svarta lœdor toms_savings deposit withdraw add_interest produce_statement Inkapsling 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 private : kan nœs inom klassen utan modifierare : kan nœs šverallt i paketet Appendix F 35 36 6

Modifierare Klasser och objekt Se Tunes.java AllmŠn regel : inga attribut public music Metoder som manipulerar objektet public Ð Kallas s ervice metoder 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 Math.sqrt (num) -- kvadratrot 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 Math.random () -- slumptal i intervallet 0.0-1.0 41 42 7

Overloading println (String s) println Samma namn fšr flera metoder Signaturen baseras pœ 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 verladdade metoder Account (int account) account_number = account; balance = 0.0; } // konstruktor Account Account (int account, double initial) account_number = account; balance = initial; } // konstruktor Account 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 45 46 StringTokenizer 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 8