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

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

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

Objektorienterad programmering

Agenda. Objektorienterad programmering Föreläsning 13

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

Objektorienterad programmering Föreläsning 5

Objektorienterad programmering

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

JAVAUTVECKLING LEKTION 4

Agenda (obs! halvdag)

Objektorienterad programmering

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

Objektorienterad programmering

Objektorienterad programmering Föreläsning 4

Static vs Dynamic binding Override vs Overload. Objekt-orienterad programmering och design Alex Gerdes och Sólrún Halla Einarsdóttir, 2018

Objektorienterad programmering Föreläsning 20

Objektorienterad programmering i Java

Programmering = modellering

Arv. Objektorienterad och komponentbaserad programmering

Samlingar, Gränssitt och Programkonstruktion! Förelasning 11!! TDA540 Objektorienterad Programmering!

Classes och Interfaces, Objects och References, Initialization

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

Classes och Interfaces, Objects och References Objekt-orienterad programmering och design (DIT952) Niklas Broberg, 2016

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 31/ Exempel: Implementation av Schackpjäser.

Objektorienterad programmering Föreläsning 2

Abstrakt klass. DD2385 Programutvecklingsteknik Några bilder till föreläsning 4 7/ Exempel: Implementation av Schackpjäser.

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

Statistik över heltal

Föreläsning 13 Innehåll

Objektorienterad programmering D2

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

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Objektinteraktion. Objektorienterad programmering Laboration 2. Syfte Att konstruera ett litet objektorienterat program med flera samverkande objekt.

Datatyper. Programmering. Att definiera datatyper i Java. Laddade partiklar. (x,y) (Rx,Ry) hh.se/db2004

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

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

TENTAMEN I PROGRAMMERING. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

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

Föreläsning 15: Repetition DVGA02

Modeller, Objekt och Klasser

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

OOP Objekt-orienterad programmering

Översikt. Stegvis förfining. Stegvis förfining. Dekomposition. Algoritmer. Metod för att skapa ett program från ett analyserat problem

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

Introduktionsmöte Innehåll

TENTAMEN. Luleå tekniska universitet

JAVAUTVECKLING LEKTION 11

Java-syntax (arv) Exempel: public class Crow extends Bird {... } Jämför med Lab 1: public class FirstApp extends Frame {... }

Objektorienterad konstruktion

Typkonvertering. Java versus C

OOP Objekt-orienterad programmering

JAVAUTVECKLING LEKTION 8

Enkla variabler kontra referensvariabel

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

Databasutveckling Microsoft T-SQL - Fortsättning. Funktioner GROUP BY HAVING Skapa databaser Skapa tabeller Lite om transaktioshantering

Introduktion till algoritmer - Lektion 4 Matematikgymnasiet, Läsåret Lektion 4

Java, klasser, objekt (Skansholm: Kapitel 2)

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

TENTAMEN OOP

Introduktion till arv

Objektsamlingar i Java

OOP Objekt-orienterad programmering

Fortsättningskurs i programmering F 2. Algoritmer i Programutveckling Hugo Quisbert Problemexempel 1

EDAA01 Programmeringsteknik - fördjupningskurs

Data, typ, selektion, iteration

Två designmönster, MVC och Observer/Observable. Objektorienterad programvaruutveckling GU (DIT011)

Kursplanering Objektorienterad programmering

PROGRAMMERINGSTEKNIK TIN212

Static vs Dynamic binding Polymorfism. Objekt-orienterad programmering och design (DIT953) Niklas Broberg, 2018

Lösningsförslag övning 2.

Programexempel: tärningsspel. Programexempel: tärningsspel Kasta tärning tills etta. Klassen Die Specifikation. Slumptalsgenerator Klassen Random

TENTAMEN I. OBJEKTORIENTERAD PROGRAMMERING för Z1. På tentamen ges graderade betyg:. 3:a 24 poäng, 4:a 36 poäng och 5:a 48 poäng

Påminnelse: en datatyp för bilder. Programmering. En datatyp för bilder. Spegelbild. hh.se/db2004

Tentamen. DD2385 Programutvecklingsteknik vt 2015 Fredagen den 5 juni 2015 kl Hjälpmedel: penna, suddgummi, linjal

Objektorienterad programmering

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

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

Outline. Objektorienterad Programmering (TDDC77) Signatur. Klassen calculator. Överlagring (overloading) Arv (inheritance) Ahmed Rezine

TDDC30. Objektorienterad programmering i Java, datastrukturer och algoritmer. Föreläsning 2 Jonas Lindgren, Institutionen för Datavetenskap, LiU

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

Programmering A. Johan Eliasson

Objektorienterad Programkonstruktion. Föreläsning 4 8 nov 2016

Imperativ programmering. Föreläsning 4

TDDE10 m.fl. Objektorienterad programmering i Java Föreläsning 6 Erik Nilsson, Institutionen för Datavetenskap, LiU

Objektorienterad Programmering (TDDC77)

TENTAMEN OOP

TDDD78 Viktiga begrepp, del 2

OOP Objekt-orienterad programmering

Kopiering av objekt i Java

TDDC77 Objektorienterad Programmering

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

Föreläsning REPETITION & EXTENTA

TUTORIAL: KLASSER & OBJEKT

Högskolan Dalarna sid 1 av 7 DI-institutionen Hans-Edy Mårtensson Sten Sundin

Laboration 1: Figurer i hierarki

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

CS - Computer science. Datateknik Informationsbehandling Datalogi Datavetenskap (ÅA 2008)

Föreläsning 8 Programmeringsteknik och Matlab DD1312. Klassmetod. Egen modul

Transkript:

Objektorienterad programmering Föreläsning 8 Copyright Mahmud Al Hakim mahmud@webacademy.se www.webacademy.se Agenda (halvdag) Objektorienterad programutveckling Algoritmer Algoritmkonstruktionerna Relationer Har-relation (komposition) Känner-till-relation Är-relation (arv) Klassen Object Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2 1

Algoritmer En algoritm är en beskrivning av hur ett visst problem lösas. En algoritm är en beräkningsmetod. En algoritm består av ett antal elementära operationer och anvisningar om i vilken ordning operationerna skall utföras. Man kan ställa krav på en algoritm: Den skall lösa det givna problemet. Den skall vara entydig (inte luddigt formulerad). Om problemet har ett slutmål så skall algoritmen avslutas efter ett ändligt antal steg. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 3 De viktigaste Algoritmkonstruktionerna Sekvens En sekvens är en följd av steg som utförs ett i taget i den ordningen de skrivits. Varje steg utförs exakt en gång. Selektion En selektion innebär att ett alternativ bland två eller fler skall väljas. Iteration En del av algoritmen skall kunna upprepas ett visst antal gånger eller tills ett visst villkor har uppfyllts. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 4 2

Stegvis förfining När man skall lösa ett komplicerat problem är det till stor hjälp att dela in problemet i mindre delproblem som löses var för sig. Delproblemen kan i sin tur behöva delas upp i ytterligare delproblem osv. Detta är en mycket viktig teknik vid algoritm- och programkonstruktion! Tekniken kalls stegvis förfining. Man brukar ofta använda den engelska termen top down design. Tips! Bra exempel finns i boken, sid. 162 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 5 Algoritmer - Exempel Beskriv en algoritm som visar hur man kan beräkna summan 1+2+3 +n när n är givet. n är ett heltal > 0 1. Sätt summa till 0 och en räknare till 1 2. Upprepa följande tills k är större än eller lika med n 2.1 Addera summa och k och spara resultatet i summa 2.2 Öka k med ett 3. Det önskade resultatet finns nu i summa Övning Lös problemet i C# med hjälp av ovanstående algoritm. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 6 3

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 7 Relationer i C# Relationer i C# Har-relation (komposition) Känner-tillrelation Är-relation (arv) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 8 4

Har-relation (komposition) När man bygger modeller av verkligheten finner man ofta att vissa objekt är uppbyggda med hjälp av andra objekt. Det som kännetecknar en har-relation är att ett objekt har ett annat objekt som en del. För att få en äkta har-relation måste instansvariabeln vara av värdetyp (enkel variabel eller struct). Exempel En rät linje i ett koordinatsystem som har två punkter. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 9 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 10 5

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 11 Känner-till-relation Känner-till-relationer skapas i C# med hjälp av referenser (jämför med har-relationer). Exempel Klassen Person. En person har ett namn och en adress. Om vi lägger till en relation som säger att en person kan vara gift, med hjälp av en referens till en annan person, så kommer vi att få en känner-till-relation. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12 6

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 13 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 14 7

Är-relation (arv) När man deklarerar en ny klass kan man utgå från en redan existerande klass och lägga till egenskaper eller förändra egenskaper. Man säger då att den nya klassen blir en subklass till den gamla och att den gamla blir en superklass till den nya.. I C# används termen derived class istället för subklass och termen base class istället för superklass. En av huvudidéerna med arv är att man vid objektorienterad programmering skall kunna använda sig av och ärva färdiga klasser som ingår i s.k. klassbibliotek. Exempel: En lärare är en person. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16 8

Copyright 2015 - Mahmud Al Hakim www.webacademy.se 17 Klassen Object Klassen Object är automatiskt superklass till alla andra klasser, både standardklasser och sådana man deklarerar själv. Klassen Object är även superklass till alla värdetyper t.ex. structer. I klassen Object finns metoder som ärvs av alla klasser och structer, bl. a. ToString och Equals. När man anropar ToString för ett visst objekt får man som resultat en text som innehåller namnet på den klass eller struct objektet tillhör. Man kan deklarera om metoden ToString i sin egen klass eller struct. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18 9

Metoden Equals Metoden Equals jämför det aktuella objektet med ett annat objekt. Den ger värdet true om den uppfattar objekten som lika och värdet false annars t.ex. If (obj1.equals(obj2) ) Equals jämför bara referenser vid jämförelse mellan referenstyper (t.ex. klasser). Alltså två objekt betraktas lika bara om de var samma objekt. Equals jämför objektens innehåll vid jämförelse mellan värdetyper. Alltså två objekt är lika om de har samma typ och innehåller samma sak! Copyright 2015 - Mahmud Al Hakim www.webacademy.se 19 Jämförelse mellan referenstyper Copyright 2015 - Mahmud Al Hakim www.webacademy.se 20 10

Jämförelse mellan värdetyper Copyright 2015 - Mahmud Al Hakim www.webacademy.se 21 11