Objektorienterad programmering

Relevanta dokument
Objektorienterad programmering Föreläsning 5

Objektorienterad programmering Föreläsning 9. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 12. Copyright Mahmud Al Hakim

Objektorienterad programmering Föreläsning 10. Copyright Mahmud Al Hakim Sorteringsalgoritmer

Agenda. Objektorienterad programmering Föreläsning 13

Objektorienterad programmering Föreläsning 8. Copyright Mahmud Al Hakim Agenda (halvdag)

Objektorienterad programmering Föreläsning 6. Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder

Objektorienterad programmering Föreläsning 11. Copyright Mahmud Al Hakim

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

JAVAUTVECKLING LEKTION 11

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

Agenda (obs! halvdag)

Funktionens deklaration

Objektorienterad programmering Föreläsning 4

Objektorienterad programmering

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

Objekt och klasser - Introduktion

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

Objektorienterad programmering

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

Lösningsförslag övning 2.

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

DAT043 - Föreläsning 7

Objektorienterad programmering

Typkonvertering. Java versus C

Java, klasser, objekt (Skansholm: Kapitel 2)

Objektorienterad programmering Föreläsning 15. Grafiska användargränssnitt (GUI Graphical User Interface)

Övningar Dag 2 En första klass

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

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

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

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

Objektorientering: Lagring, räckvidd och livstid

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

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

TDDC77 Objektorienterad Programmering

Föreläsning 3-4 Innehåll

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

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

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

Innehåll. Användardefinierade typer. Användardefinierade typer Kategorier. Konstruktorer. Konstruktorer Två sätt att skriva initiering av medlemmar

Del2 Klasser, medlemmar och arv Ämnesområden denna föreläsning:

Modeller, Objekt och Klasser

Kursplanering Objektorienterad programmering

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

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

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

Objektorientering: Lagring och livstid

Grundläggande programmering med C# 7,5 högskolepoäng

TDIU01 - Programmering i C++, grundkurs

TDDD78 Objektorientering: Lagring och livstid

JAVA Mer om klasser och objektorientering

Klasser och objekt, referenser Grundkurs i programmering med Python

TDIU01 - Programmering i C++, grundkurs

Objekt och referenser

732G Linköpings universitet 732G11. Johan Jernlås. Översikt. Repetition. Felsökning. Datatyper. Referenstyper. Metoder / funktioner

Outline. Objektorienterad Programmering (TDDC77) Åsidosättning. Signatur. Åsidosättning. Abstrakta klasser. Ahmed Rezine.

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

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

Klasshierarkier - repetition

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

F4 Klasser och Metoder. ID1004 Objektorienterad programmering Fredrik Kilander

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

Introduktion. Klasser. TDP004 Objektorienterad Programmering Fö 2 Objektorientering grunder

Objektorienterad Programmering (TDDC77)

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

Föreläsning 2 sept 05 (Onsdag v 36). DD Chapter 2.

JAVAUTVECKLING LEKTION 3

OOP Objekt-orienterad programmering

Metoder. Inledande programmering med C# (1DV402)

Objektorienterad programmering D2

Objektsamlingar i Java

Objektorienterad Programmering (TDDC77)

Classes och Interfaces, Objects och References, Initialization

(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

1 Egna klasser. 1.1 En punkt-klass

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

Föreläsning 5&6 LOGISKA VARIABLER; IMPLEMENTERA KLASSER; MER ALGORITMER

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

TENTAMEN OOP

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

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

OOP Objekt-orienterad programmering

Programsystemkonstruktion med C++: Övning 2. Karl Palmskog september 2010

Malmö högskola 2008/2009 CTS

Subklasser och arv Inledning till grafik (JFrame och JPanel). Något om interface. Objektorienterad programvaruutveckling GU (DIT011) Subklasser

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

Objektorienterad Programmering (OOP) Murach s: kap 12-16

TUTORIAL: KLASSER & OBJEKT

Föreläsning 2, vecka 8: Repetition

OOP Objekt-orienterad programmering

Exempel på program med objekt Klass med main-metod. Föreläsning 3-4 Innehåll. Övning Viktiga begrepp

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

Enkla variabler kontra referensvariabel

Dynamisk bindning och polymorfism

1 Funktioner och procedurell abstraktion

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

Innehåll. Pekaren this Självreferens. Klasser Resurshantering, representation. Överlagring av operatorer. Överlagring av operatorer

Transkript:

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 This Tilläggsmetoder Uppräkningstyper 1

Konstanter Konstanta uttryck deklareras med nyckelordet const t.ex. const string Rubrik = "FAKTURA"; Rubrik kommer alltid att innehålla samma värde! När man i en klass eller struct deklarerar en variabel som konstant med hjälp av ordet const kommer denna variabel att automatiskt bli en statisk variabel. En variabel som är deklarerad som const måste alltid initieras direkt i deklarationen. Konstanter ska helst börja med en stor bokstav. Readonly En variabel som är deklarerad som readonly får, liksom const-variabler, inte ändras! readonly-variabler får initieras direkt i deklarationen eller i en konstruktor. Ex // Instansvariabel public readonly int kundnr; // Konstruktor public Konto (int kund) { } kundnr = kund; 2

Statiska klasser Statiska klasser innehåller bara statiska metoder. Statiska klasser används endast för att kapsla in statiska metoder. OBS! Inga objekt får skapas av en statisk klass. För att markera att inga objekt får skapas av en klass skriver man ordet static först i klassdeklarationen. Ex. static StatiskKlass { } Statiska klasser - Exempel 3

Statiska klasser Exempel fort. Standardklassen Math Math är en mycket användbar statisk klass som finns i namnrymden System. I denna klass finns ett antal statiska metoder för att beräkna vanliga matematiska funktioner t.ex. kvadratrötter, exponenter och logaritmer. Med hjälp av metoderna Min och Max kan man beräkna minsta respektive största talet av två tal. OBS! För att använda metoderna måste skriva klassnamnet först t.ex. Math.min(a,b); 4

Standardklassen Math - Exempel Parameteröverföring Parameteröverföring Värdeanrop (Call by value) Ref-anrop (Call by reference) Out-anrop 5

Värdeanrop (call by value) Standardmekanismen för parameteröverföring är s.k. värdeanrop (defalut i C#). Parametrarna blir kopior av de argument som ges vid anropet. Ändringar i parametrarna påverkar inte argumenten. OBS! Om ett argument är en referens till ett objekt kopieras referensen och objektet den refererar till kan ändras. Värdeanrop Exempel 1 6

Värdeanrop Exempel 2 Värdeanrop Exempel 3 (Viktigt) 7

Referensanrop (call by reference) Om man verkligen vill att argument av värdetyp skall kunna ändras så kan man använda ref-parametrar. Ordet ref skrivs både i parameterlistan och i anropen. Parametrarna blir referenser till de argument som ges vid anropet. Argumenten måste vara ändringsbara variabler. OBS! Argumenten måste tilldelas något värde. Referensanrop Exempel 8

Out-anrop Samma som ref-anrop men argumenten behöver inte tilldelas något värde. Parametrarna blir referenser till de argument som ges vid anropet. Ordet out skrivs både i parameterlistan och i anropen. Argumenten måste vara ändringsbara variabler. OBS! Parametrarna måste ges värden i metoden. Out-anrop Exempel 9

Out-anrop Exempel fort. Referensen this Alla instansmetoder får en extra dold parameter som inte syns! Denna parameter heter this. Typen på den dolda parametern this är referens till en klass eller struct. Referensen this initieras automatiskt så att den vid varje anrop kommer att referera till det aktuella objektet. OBS! Statiska metoder och egenskaper har inte någon referens this. Dessa är ju inte knutna till något speciellt objekt. 10

this - Exempel Tilläggsmetoder Ibland händer det att man tycker att någon instansmetod saknas i en standardklass eller en klass som man inte skrivit själv och som redan används av andra. Man kan då skriva en tilläggsmetod (extension method). Tilläggsmetoder måste vara statiska och deklareras i en statisk klass. Ordet this framför den första parametern anger att man vill skapa en tilläggsmetod till den typ som den första parametern har. 11

Tilläggsmetoder - Exempel Uppräkningstyper (enum) Uppräkningstyper deklareras med ordet enum. enum Betyg { F, E, D, C, B, A } Uppräkningstyper representeras med en underliggande heltalstyp. Normalt används heltalen 0,1,2 osv. men man kan själv ange heltalsvärden t.ex. enum RomerskSiffra { I=1, V=5, X=10, L=50, C=100, D=500, M=1000 } Uppräkningstyper kan tilldelas och jämföras. 12