Inkapsling.

Slides:



Advertisements
Liknande presentationer
Föreläsning 9 Programmeringsteknik och Matlab 2D1312/2D1305
Advertisements

Interface.  Interface är en datatyp och har alltså egen syntax och en hel del egna regler för vad arv från interface innebär.  Interface är renodlad.
Avlusning Debugger (”avlusare”) Breakpoints Watch.
Array Skriv ett program som frågar följande: ”Hur många tal vill du mata in?” användaren matat in ett tal t.ex n. då frågar programmet n ggr följande.
Klasser och objekt.
Funktioner och programorganisation
Programmeringsteknik
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
Repetition av objektorientering
OOP Objekt-orienterad programmering
Föreläsning 1.
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
Metoder i java Det finns två typer av metoder i java
Arv.
Objektorienterad tänkande
Polymorfism.
Programmeringsteknik för K och Media
Föreläsning 13 Allt om tentan. Sistaminutenhjälp: På fredag 17 december kl 12 sitter Linda i kemi-fiket och svarar på frågor.
Programkodens uppbyggnad
Föreläsning 6 Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 6 Klass Object, instans av klass public/private Klassvariabler och klassmetoder.
Alice in Action with Java
Föreläsning 13 Polymorfism, Paket och JAR-filer. Polymorfism Ordet härstammar från grekiskan Poly – många Morf – form Polymorf – många former Någonting.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser och instansvariabler -Tabeller av klassobjekt.
Objektorienterad programmering i Java
Programmering i C# 3. Klasser.
Programmering B PHP Lektion 2
Sid 41 Fordon int antalhjul; int vikt;
Föreläsning 2 Kort Översikt Över Javaspråket. Källkodsformat Unicode används åäöμψζ tillåtna Inte alla miljöer klarar av det Källkod Bytekod Java VM för.
Vektorer (klassen Vector) Sortering
Polymorfism.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Räckvidd och synlighet. Abelli, B. (2004). Programmeringens Grunder – med exempel i C#. Lund: Studentlitteratur 22 Synlighet (meddelandesändning) Det.
UTVECKLING MED RAMVERKET.NET Marcus Medina. Dagens visdomsord ” Ingen vet vad han klarar innan han har försökt. ” - Publilius Syrus (85 f.Kr.-43 f.Kr.).
F. Drewes, Inst. f. datavetenskap1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning Singel mot multipelt.
OOP F6:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList toString() – metoden.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Klasser -Att definiera egna klasser -Klassvariabler -Klassmetoder.
OOP F3:1 Marie Olsson OOP Objekt-orienterad programmering Föreläsning 3 Iteration Många variabler av samma sort – Arrayer.
Föreläsning 8 Arv och abstrakta klasser. Arv Definierar en klass utifrån en redan existerande klass Den nya klassen utökar den ärvda klassen ( extends.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 8 ( ) INNEHÅLL:Klasser: -Konstruktorer -Klassvariabler -Instansmetoder -Privata.
Jonny Karlsson INTRODUKTION TILL PROGRAMMERING Föreläsning 7 ( ) INNEHÅLL: -Metoder -Lokala variabler -Mera om klasser: -Nyckelorden.
1 Föreläsning 6 Programmeringsteknik och Matlab 2D1312/2D1305 Metoder & parametrar Array API och klassen ArrayList.
Next previous RMI, Remote Method Invocation Om du har boken av Marty Hall, läs avsnitt 15.8 För fler exempel se:
Föreläsning 8 Programmeringsteknik och Matlab DD1312 Klassmetoder Egen modul, Self Metoderna: __str__, __lt__,… Meddelande Arv, Överlagring av metoder,
Föreläsning 9 Gränssnitt. Super Super kan användas till anrop av en omdefinierad metod Super kan användas till anrop av konstruktorer i superklassen Super.
Föreläsning 1. Innehåll Introduktion till objektorientering –OOP (objektorienterad programmering) –Objekt, instanser, klasser C++ –OO i C++ –Standardbibliotek.
Föreläsning 12 Om slutprovet. Repetition –deklaration av variabler –skapande av objekt (instansiering) –Vektorer och Vector-klassen –Klasser –Instans-/klassvariabler.
Föreläsning 4 Klasser Och Objekt.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Objektorienterad programmering
Föreläsning 2. Allmänt STL genererar varningar i Visual C++ –”#pragma warning (disable : 4786)”
1 Föreläsning 8 Mer om klasser och objektorientering.
Arv repetition Arv = Är relation Tillgänglighet public, protected och private. Överklass ös Direkt härledd underklass dhu: Class dhu : public ös{} Indirekt.
7. Delegerare och notifierare
OOP F5:1 Stefan Möller OOP Objekt-orienterad programmering Föreläsning 5 Klasser och objekt Skapa objekt - new Referenser Konstruktorer Inkapsling.
Föreläsning 5 Objekt Klasser Konstruktorer Metoder Minnesbilder av objekt.
Programmeringsteknik för K och Media
Föreläsning 5 Klasser och instanser
Föreläsning 7 Repetition Sammansatta datatyper –vektor (hakvektor, array) –matris.
OOP - teori1 OOP del II– Föreläsning 5 vecka 6. OOP - teori2 Klasser Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle.
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
1 Föreläsning 4 Metoder & parametrar Array API och klassen ArrayList.
OOP&M - teori1 OOP del II– Föreläsning 2 vecka 46 Konstruktorer Instansmetoder Kapitel 14 i kursboken.
OOP&M - teori1 OOP&M del II– Föreläsning 5 vecka 50 OBJEKT Substantiv i singularis stavat med stor bokstav till exempel Human Dog Account Circle Book String.
Malmö högskola Rolf Axelsson 2003/2004 DA7231, 4 poäng Referensvariabel Klass och konstruktorer Klass med set- och get-metoder Klass och fält Fler metoder.
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
Objektorienterad programmering sid. 1 7/15/2015 CD5250 OOP med C++ Mats Medin MDH/IDT Objektorienterad programmering OOP = objektbaserad programmering.
1 Mer om metoder, variabler, klasser och objekt. Kursboken: - Kapitel 6 - Kapitel 8.
Objektorienterad programmering forts
Presentationens avskrift:

Inkapsling

OOPs tre grundstenar Det finns följande fundamentala koncept som varje OOP- språk stödjer: Inkapsling eller datagömning (Encapsulation) Arv (Inheritance) Polymorfism (Polymorphism)

Inkapsling (Encapsulation) Inkapsling är en grundprincip inom objektorienterad programmering. Man döljer ett objekts innehåll genom att skapa ett gränssnitt mot andra objekt. Objekt kommunicerar genom att skicka meddelanden till varandra. De erbjuder och ber varandra att exekvera metoder. Programmeraren behöver därför inte veta hur ett objekt är skrivet, bara hur man skriver meddelanden till det. En annan fördel är att objektet kan skyddas mot fel i andra objekt.

Inkapsling Dölja Skydda mot ”felaktig” manipulering av klassens data. ”viktiga” saker som behöver skyddas, ”oviktiga” saker som inte behöver disponeras för andra. Bilisten behöver inte veta hur motorn arbetar för att köra bilen. Skydda mot ”felaktig” manipulering av klassens data. Förhindra t ex beräkning av en cirkel mot negativt värde på radien. Kolla så en array inte indexeras utanför gränserna.

Inkapsling I .Net kan man tillämpa inkapsling på olika sätt. properties är ett exempel på inkapslingstekniker i .Net. Obs. inga pareneser reserverat ord i properties, och här en string. Passar i alla data typer (även egna objekt)

Inkapsling - synlighetsmodifierare Datagömning innebär att access till data kan kontrolleras med hjälp av synlighetsmodifierare. Fem nivåer: public, åtkomlig utan begränsning private, åtkomlig endast från klassens medlemmar protected, som private men också åtkomlig från subklasser internal, åtkomlig från assemblyn (medlemmar i samma exe, eller dll) protected internal, som internal men också åtkomlig från subklasser (i andra assemblyer)

Datagömning - Tumregeler Instansvariabler private – skall väljas i första hand på alla variabler Variabler som sparar mellandata skall alltid vara privata. Nästa val bör vara protected och sista public. Man skall helst inte ha någon instansvariabel som är publik. Varför privat instansvariabel? för att kontrollera om man vill ge andra objekt rättighet att endast uppdatera (ändra) variabelns värde, endast läsa, eller både läsa och uppdatera. Kontrollera att riktiga (kontrollerade) värden sätts in i eller läses från variabeln.

Datagömning – tumregler forts Undvik helst att ha instansvariabler som är publika. ”protected” fält och metoder blir åtkomlig för subklasser. Men även subklasser bör använda sig av gränssnitt för att minimera underhållsarbete. Samma regler gäller även metoder, dvs. de metoder som är tänkt att ingå i gränssnittet måste vara nåbara för att objektet skall kunna kommunicera med andra objekt. Sådana metoder behöver vara publika (använder public modifierare).

Synlighet - Metoder Metoder som är hjälpfunktioner dvs. de som utför t ex mellanoperationer bör vara private som första val, protected som andra. Metoden Main måste vara public . Konstruktorer skall också vara public .