Objekt och klasser - Introduktion

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

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

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

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

Klassdeklaration. Metoddeklaration. Parameteröverföring

Java, klasser, objekt (Skansholm: Kapitel 2)

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

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

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

Chapter 4: Writing Classes/ Att skriva egna klasser.

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

Enkla variabler kontra referensvariabel

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

Parameteröverföring. Exempel. Exempel. Metodkropp

Mer om klasser och objekt

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

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

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

JAVA Mer om klasser och objektorientering

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

Föreläsning 2, vecka 8: Repetition

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

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

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

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

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

Objektorienterad programmering

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

OOP Objekt-orienterad programmering

OOP Objekt-orienterad programmering

Lösningsförslag övning 2.

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

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

Objekt och referenser

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

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

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

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

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

Objektorienterad Programmering DAT043

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

Modeller, Objekt och Klasser

Vad är ett objekt? Tillstånd och beteende. Vad är ett objekt? Exempel

DAT043 - Föreläsning 7

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

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

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

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

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 )

Objektorienterad programmering i Java

JAVAUTVECKLING LEKTION 11

Objektorienterad Programmering (TDDC77)

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

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

Föreläsning 4. Klasser och objekt

(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

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

Klasser och objekt. Henrik Johansson. August 20, 2008

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

Objektorienterad programmering Föreläsning 5

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

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

Objektorientering: Lagring, räckvidd och livstid

Malmö högskola 2008/2009 CTS

Objektorienterad programmering i Java

Objekt, Klasser, Paket m. m.

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

Classes och Interfaces, Objects och References, Initialization

Typkonvertering. Java versus C

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

Tentamen ID1004 Objektorienterad programmering October 29, 2013

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.

F7 - Arrayer. ID1004 Objektorienterad programmering Fredrik Kilander

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

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

Föreläsning 3-4 Innehåll

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

Objektorienterade programmeringsspråk. Objektorienterade språk. Den objekt-orienterade modellen. Jämför med icke-oo

EDAA20 Programmering och databaser. Mål komprimerat se kursplanen för detaljer. Checklista. Föreläsning 1-2 Innehåll. Programmering.

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

Objektorienterad Programkonstruktion. Föreläsning 2 2 nov 2016

Introduktion till Java

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

Föreläsning REPETITION & EXTENTA

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

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

Objektorientering: Lagring och livstid

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

725G61 - Laboration 5 Grundläggande objektorientering. Johan Falkenjack

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

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

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

Klasser och Objekt i Java. C++ använder beteckningarna datamedlem resp. medlemsfunktion. Klassdefinition. Exempel: Variabler

PROGRAMMERING-JAVA TENTAMINA

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

Tentamen OOP

Transkript:

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 overloading Programmeringsmetodik -Java 59

Ett objekt har: Objekt tillstånd - egenskaper beteenden - vad det kan göra, eller utsättas för Ett bankkonto har konto nummer har saldo insättningar till uttag från Programmeringsmetodik -Java 60

SparKonto.java public class SparKonto { double saldo; public SparKonto(double startsaldo) { saldo = startsaldo; }// constructor SparKonto public void ins(double belopp) { saldo = saldo + belopp; System.out.println(belopp + " insatt."); }// method ins Programmeringsmetodik -Java 61

SparKonto.java public void uttag(double belopp) { if (saldo >= belopp) { saldo = saldo - belopp; System.out.println(belopp + " uttaget."); } else System.out.println("Så mycket kan man inte ta + ut."); }// method uttag public double getsaldo() { return saldo; }// method getsaldo } // class SparKonto Programmeringsmetodik -Java 62

Konton.java class Konton { public static void main (String[] args) { SparKonto jan = new SparKonto (500.00); SparKonto eva = new SparKonto (1000.00); System.out.println ("Jan s saldo: " + jan.getsaldo()); jan.ins (100.00); System.out.println ("Jan s saldo: " + jan.getsaldo()); jan.uttag (75.00); System.out.println ("Jan s saldo: " + jan.getsaldo()); Programmeringsmetodik -Java 63

Konton.java System.out.println ("Eva s saldo: " + eva.getsaldo()); eva.ins (700.00); System.out.println ("Eva s saldo: " + eva.getsaldo()); eva.uttag (2000.00); System.out.println ("Eva s saldo: " + eva.getsaldo()); eva.uttag (1299.62); System.out.println ("Eva s saldo: " + eva.getsaldo()); } // method main } // class Konton Programmeringsmetodik -Java 64

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. Programmeringsmetodik -Java 65

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 Programmeringsmetodik -Java 66

Konstruktorer Speciell metod som används för att skapa objekt Samma namn som klassen Kan ta parametrar, som ofta initierar attribut i objektet Konstruktorn SparKonto : SparKonto eva = new SparKonto (1000.00); Programmeringsmetodik -Java 67

Initiering i två steg: SparKonto eva; Objekt referenser eva = new SparKonto (1000.00); eller... SparKonto eva = new SparKonto (1000.00); Metoderna till existerande objekt nås med punktoperatorn: jan.uttag (100.00); Programmeringsmetodik -Java 68

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 Programmeringsmetodik -Java 69

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)... Programmeringsmetodik -Java 70

Klassen Random Klassen Random tillhandahåller en slumptalsgenerator nextint värdemängden för datatypen int Slumptalsfrö i konstruktorn Random slump = new Random(); eller Random slump = new Random(xx); int kast = Math.abs (slump.nextint()) % 6 + 1 Programmeringsmetodik -Java 71

Rätt talområde Uttryck 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-5 -5 to 5 Programmeringsmetodik -Java 72

Referenser En referens till ett objekt är en referens till objektets minnesadress Chess_Piece bishop1 = new Chess_Piece(); ELVKRS All interaktion sker via referens variabel Tilldelning påverkas Programmeringsmetodik -Java 73

Tilldelning Allmänt tas en kopia av ett värde och lagras i en variabel För primitiva typer: num2 = num1; Före Efter QXP QXP QXP QXP Programmeringsmetodik -Java 74

Referens tilldelning För objekt referenser, kopieras minnesadressen: bishop2 = bishop1; Före Efter ELVKRS ELVKRS ELVKRS ELVKRS Programmeringsmetodik -Java 75

Alias 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 Programmeringsmetodik -Java 76

Garbage Collection Om alla referenser tas bort kan objektet inte längre nås. Objektet blir då oanvändbart I java tas alla sådana objekt bort. Kallas automatisk garbage collection Programmerarens ansvar i en del andra språk Programmeringsmetodik -Java 77

Syntax för metoder: Metoder retur-typ metod-namn ( parameter-lista ) { sats-lista } Programmeringsmetodik -Java 78

Exempel int third_power (int number) { int cube; cube = number * number * number; return cube; } // metod third_power Programmeringsmetodik -Java 79

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; } // metod third_power Programmeringsmetodik -Java 80

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 Programmeringsmetodik -Java 81

Programflödet Metoden main anropas av systemet när bytecoden ges till interpretatorn Återhoppet sker till anropsstället PDLQ P\0HWKRG P\0HWKRG Programmeringsmetodik -Java 82

Parametrar En metod kan ta noll eller flera parametrar Varje parameter specificeras med typ och namn formella parametrar aktuell parametrar Programmeringsmetodik -Java 83

Parameteröverföring 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 ParameterPassing.java (s. 226) Programmeringsmetodik -Java 84

Syntax : class klass-namn { } deklarationer konstruktorer metoder Definiera klasser Attribut/variabler, konstruktorer och metoder kallas medlemmar Programmeringsmetodik -Java 85

Definiera klasser class Account { int account_number; double balance; Account (int account, double initial) { account_number = account; balance = initial; } // konstruktor Account void deposit (double belopp) { balance = balance + belopp; } // metod deposit } // klass Account Programmeringsmetodik -Java 86

En konstruktor : Konstruktorer För att initialisera nytt objekt Samma namn som klassen Returnerar inget värde, void anges inte Bra att alltid definiera en konstruktor Programmeringsmetodik -Java 87

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 instansvariabler Alla metoder i en klass har tillgång till attributen i klassen Metoder delas i klassen Programmeringsmetodik -Java 88

Inkapsling Ett objekt ska klara sig själv - all manipulation via metoderna Gör det svårt för utanförstående att manipulera objekten på ett annat sätt än det var tänkt. Okänt för användaren hur saker görs Abstraktion Objekten kan ses som svarta lådor Programmeringsmetodik -Java 89

Modifierare Inkapsling görs med visibility modifiers synlighets modifierare. Modifierarna är reserverade ord Vi har tidigare sett på final som definierar konstanter Tre modifierare: public, private och protected Programmeringsmetodik -Java 90

Modifierare 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 Programmeringsmetodik -Java 91

Modifierare Allmän regel : inga attribut public Metoder som manipulerar objektet public Kallas service metoder Hjälp metoder inte public Programmeringsmetodik -Java 92

static static - både attribut och metoder Associerar med klassen snarare än objektet Avsteg ifrån objekts-tanken Programmeringsmetodik -Java 93

Statiska attribut Normalt har varje objekt eget minnesutrymme static gör variabeln gemensam för alla objekt i klassen private static int count; Kallas ibland klassvariabler Programmeringsmetodik -Java 94

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 Keyboard.readFloat() Appendix M Programmeringsmetodik -Java 95

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 klassmetoder Programmeringsmetodik -Java 96

Överlagring Överlagring overloading : samma namn för flera metoder Signaturen = parametrarnas antal, typ och ordning Signaturen måste vara unik Returtypen är inte del av signaturen Programmeringsmetodik -Java 97

println println (String s) println (int i) println (double d) etc. System.out.println ("The total is:"); System.out.println (total); Olika versioner av metoden println Programmeringsmetodik -Java 98

this Objektet kan referera till sig själv Skicka sig själv som parameter t.ex. product_buyer.order_stock(this) Programmeringsmetodik -Java 99

Räckvidd (scope) En instansvariabel är tillgänglig i hela klassen. För lokala variabler gäller att de är tillgängliga i det block man har deklarerat dem. Man får ej återanvända variabelnamn för lokala variabler deklarerade i ett omslutande block. this kan användas för att komma åt en instansvariabel om man har en lokal variabel med samma namn. Programmeringsmetodik -Java 100