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



Relevanta dokument
Objektorienterad programmering

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

Objektorienterad programmering Föreläsning 5

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

Objektorienterad programmering Föreläsning 4

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

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

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

Objektorienterad programmering Föreläsning 2

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

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

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

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

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

Objektorienterad programmering

Lösningsförslag övning 2.

JAVAUTVECKLING LEKTION 11

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

Agenda. Objektorienterad programmering Föreläsning 13

Agenda (obs! halvdag)

Imperativ programmering. Föreläsning 4

Laboration 1 - Grunderna för OOP i Java

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

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

Klasser och objekt. Henrik Johansson. August 20, 2008

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

DAT043 - Föreläsning 7

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

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

Design av interaktiv multimedia. Läs i förväg om det som övningarna kommer att beröra. Träna hemma både före och efter övningarna.

Objekt-orienterad programmering. Klassbegreppet och C++ UML. UMLs fördelar

Kapitel 3. Synlighet. Kapitel 3 - Klassanvändning, operatorer och pekare. Synlighet

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

Objektorienterad programmering

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

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

Objektorienterad Programmering DAT043

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

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

DD2385 Programutvecklingsteknik Några bilder till föreläsning 1 24/ Kursöversikt Javarepetition/Javaintroduktion

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

Inledande programmering med C# (1DV402) Ditt första C#-program med Visual Studio

Klasshierarkier - repetition

Det objektorienterade synsättet. Objekt. Datorprogrammet kan uppfattas som en slags modell av den verklighet programmet skall samverka med.

Synlighet. Namespace Scope-operatorn Klasser Vänner

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

Omgivningar. Omgivningar är viktiga eftersom de avgör vilka namn som är synliga och därmed dessas innebörd och de värden som är förknippade med dem.

Övningar Dag 2 En första klass

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

Laboration 1 Introduktion till Visual Basic 6.0

JAVA Mer om klasser och objektorientering

1. Definiera klassvariabel. 2. Instansvariabel för klass. Selektera klass i Browsern och tryck på statics. Definiera protokollnamn, Protocol->Add...

Labb i Datorsystemteknik och programvaruteknik Programmering av kalkylator i Visual Basic

Programmering B med Visual C

EnKlass. Instans 3 av EnKlass. Instans 2 av EnKlass

Design av en klass BankAccount som representerar ett bankkonto

Föreläsning 8 - del 1: Objektorienterad programmering (forts.) - Exempel

Enkla variabler kontra referensvariabel

Objektorienterad programmering Föreläsning 20

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

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

Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering

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

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

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

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

Lösningar till Fiktiv Tentamen på kursen. 2D4135 Objektorienterad programmering, design och analys med Java vt2004. Teoridel

Objektorienterad Programmering (TDDC77)

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

Objektorienterad Programmering (TDDC77)

TENTAMEN OOP

Objektorientering: Lagring, räckvidd och livstid

TUTORIAL: KLASSER & OBJEKT

Målen med OOSU. Objektorienterad programmering. Objektorienterad programmering. Karlstads Universitet, Johan Öfverberg 1

Objektorienterad programmering

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

PROGRAMMERING A VC# 2008 EXPRESS UTVECKLINGSVERKTYGET VISUAL C#

Föreläsning REPETITION & EXTENTA

JAVAUTVECKLING LEKTION 4

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

Arv. Objektorienterad och komponentbaserad programmering

Kursplanering Objektorienterad programmering

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

En förladdare fångar användarens uppmärksamhet under tiden huvudfilmen laddas. Använd din kreativitet när du formger en förladdare och använd sedan

PROV. 10 Uppräknade datatyper

Tentamen. Datalogi I, grundkurs med Java 10p, 2D4112, Lördagen den 30 november 2002 kl , salar E33, E34

OOP F1:1. Föreläsning 1. Introduktion till kursen OOP Vad är Java? Ett första Java-program Variabler Tilldelning. Marie Olsson

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

I Skapa Hej.java och skriv programmet. I Kompilera med javac Hej.java. I Rätta fel och repetera tills du lyckas kompilera ditt program

Objektorienterad Programmering (TDDC77)

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

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

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

1 Namnkontroll (NameControl)

Objektorienterad Programmering (TDDC77)

Föreläsning 7: Objektorienterad programmering - introduktion

F8 - Arv. ID1004 Objektorienterad programmering Fredrik Kilander

OBJEKTORIENTERAD PROGRAMVARUUTVECKLING. Övningstentamen 1

Transkript:

Objektorienterad programmering Föreläsning 6 Copyright Mahmud Al Hakim mahmud@dynamicos.se www.webbacademy.se Agenda Mer om klasser och typer Namnrymder Inkapsling Synlighet Statiska variabler Statiska metoder Copyright 2015 - Mahmud Al Hakim www.webacademy.se 2 1

Visa aktuellt klockslag i ett fönster Skapa ett nytt projekt med hjälp av mallen Windows Forms Application. Ändra fönstrets egenskaper Ändra namnet till Klocka Ändra storlek till 200x100 Döp om filen Form1 till Klockvisare Skapa en etikett (Label) Ändra namnet till a Ändra egenskapen Text till 00:00:00 Ändra Font till Arial, 18, fet stil Centrera etiketten Lägg till filen Tidpunkt.cs till projektet. Lägg till en Timer (finns i gruppen Components) Ändra egenskapen Interval till 1000 (en sekund) Ändra egenskapen Enabled till true Dubbelklicka på Timer-ikonen för att skapa en automatisk Tick-metod. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 3 Uppdatera klassen Klockvisare Copyright 2015 - Mahmud Al Hakim www.webacademy.se 4 2

Tips Copyright 2015 - Mahmud Al Hakim www.webacademy.se 5 Namnrymder (namespace) Risken att två olika klasser givits samma namn i olika programtextfiler är stor. För att råda bot på detta kan man använda namnrymder. Man kan då kapsla in en grupp av typdeklarationer i en viss namnrymd. Deklarationerna kan då inte kollidera med deklarationer som gjorts utanför den aktuella namnrymden. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 6 3

Olika filer Samma namnrymd Olika klasser Olika filer Olika namnrymder Samma klassnamn (olika klasser) Copyright 2015 - Mahmud Al Hakim www.webacademy.se 7 Sub-namnrymder En namnrymd kan innehålla andra namnrymder (subnamnrymder). En namnrymd som innehåller en sub-namnrymd kallas super-namnrymd. Man kan alltså bygga upp en hierarkisk struktur. Klassbibliotek skapas på detta sätt. Standardklasserna i C# är organiserade i namnrymder enligt denna modell. T.ex. Supernamnrymden System som innehåller Subnamnrymden Windows som i sin tur innehåller subnamnrymden Forms. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 8 4

Användning av namnrymder Explicit namngivning Ge det fullständiga namnet vid användning: Superrymdnamn.Subrymdnamn.namn (klass, struct m.m.) T.ex. System.Windows.Forms.MessageBox Using-direktiv Ett using-direktiv importerar de typdeklarationer som finns i den angivna namnrymden using namnrymd; T.ex. using System.Windows.Forms; Copyright 2015 - Mahmud Al Hakim www.webacademy.se 9 Global namespace (namnlös namnrymd) Det är tillåtet att lägga typdeklarationer ytterst i programmet (top-level) så att de inte är inkapslade i någon namespace-deklaration. Dessa deklarationer hamnar då i den s.k. globala namnrymden. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 10 5

Inkapsling och synlighet En av huvudidéerna när det gäller objektorienterad programmering att programmen skall delas in i klart avgränsade delar. Exempelvis, instansvariabler. Dessa måste kapslas in (gömmas) i en klass och får inte vara synliga och tillgängliga utanför klassen. För att ange synligheten för en medlem (t.ex. instansvariabel eller metod) i en klass använder man sig av de reserverade orden: private, public, internal och protected. De vanligaste är private och public. Om man inte anger något antas att man skrivit private. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 11 Synlighet för medlemmar i klasser Det som deklareras som private är bara synligt inne i klassen själv. Det som deklareras som public kan användas överallt. Ordet internal används för att ange att en medlem är synlig i klasser som ingår i samma assemblyfil som den klass som medlemmen tillhör. Ordet protected används i samband med arv (mer om detta senare). Copyright 2015 - Mahmud Al Hakim www.webacademy.se 12 6

Synlighet Exempel 1 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 13 Synlighet Exempel 2 Copyright 2015 - Mahmud Al Hakim www.webacademy.se 14 7

Statiska medlemmar Ibland har man medlemmar som är gemensamma för alla de objekt som tillhör en viss klass. I C# kallas sådana medlemmar statiska medlemmar. Man använder sig av det reserverade ordet static när man deklarerar statiska medlemmar. Copyright 2015 - Mahmud Al Hakim www.webacademy.se 15 Statiska variabler En statisk variabel är en variabel som är deklarerad inne i en klass och som bara finns på ett enda ställe. Alltså, finns bara i en upplaga, gemensam för alla objekt som tillhör klassen. Om man i någon instansmetod förändrar en statisk variabel, så kommer ändringen att påverka alla objekt av den aktuella klassen, efterson alla delar på den statiska variabeln. Exempel En variabel som håller reda på hur många instanser av en viss klass som finns för närvarande! Copyright 2015 - Mahmud Al Hakim www.webacademy.se 16 8

Statiska variabler och metoder Copyright 2015 - Mahmud Al Hakim www.webacademy.se 17 Statiska egenskaper Copyright 2015 - Mahmud Al Hakim www.webacademy.se 18 9