OOP&M - teori1 OOPM del II – Föreläsning vecka 6 2004 Sista föreläsning del II Kapitel 21 plus paket Abstrakta klasser/metoder igen Gränssnitt/Interface.

Slides:



Advertisements
Liknande presentationer
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.
Advertisements

1 Windows programmering (2) Borland C++ Builder 4/5 Modsoft Ab Kent Westerholm.
Klasser och objekt.
2I1049 Föreläsning 11 Modularisering, återanvändning och JavaBeans
Next previous Internetprogrammering 2000 Internetprogrammering 2000 Föreläsning 10 Distribuerad programmering med Javas RMI, Remote Method Invocation.
Klassarv och inkapsling
OOP Objekt-orienterad programmering
Lennart Edblom, Frank Drewes, Inst. f. datavetenskap 1 Föreläsning 10: Objektorientering Objektorientering och abstrakta datatyper Dynamisk bindning.
ObjektOrienterad analys och design. SVP Vt2009 Föreläsning nr 2, måndag 8 april kl Diskussion (kurshemsida): Om designuppgiften Om projektuppgiften.
Arv.
Abstract & sealed.
Inkapsling.
Objektorienterad tänkande
Polymorfism.
Programmeringsteknik för K och Media
Programkodens uppbyggnad
Strömmar Vid läsning och skrivning används något som kallas strömmar.
Modellering med UML
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.
Föreläsning 2, Kapitel 2 Att förstå klassdefinitioner Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael.
Klasser och objekt Klasser, objekt och instansvariabler
Sid 1 CD5250 OOP med C++ Daniel Flemström MDH/IDT Lite OOA/OOD.
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.
Föreläsning 4. Arv – bakgrund (kap. 9) Hund pälsfärg favoritben smutsa_ned() ät_katt() Katt pälsfärg smutsa_ned() klös_soffa() Kanin pälsfärg slaktvikt.
Mer om arv - Polymorfism Kursbok: “Objects First with Java - A Practical Introduction using BlueJ”, David J. Barnes & Michael Kölling Fredric Ragnar
Arv.
Programmeringsteknik för Media1 & K1
Mitt första Java program Mahmud Al Hakim Copyright, Mahmud Al Hakim, 1.
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 1 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
Java paket och jar-filer
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 4 Klasser Och Objekt.
1. Ett problem/uppgift.
ITK:P1 Föreläsning 2 Introduktion till objektorientering DSV Marie Olsson.
Föreläsning 13 Appletprogram/fristående grafiska program Arv Rita linjer, rektanglar mm Skriva text, byta färg Appletprogram & HTML Grafiska användargränssnitt.
Föreläsning 9 Arv kap 8.1 Interface kap 9.2 Grafiska användargränssnitt (GUI) kap 10.
Arv repetition Arv = Är relation Tillgänglighet public, protected och private. Överklass ös Direkt härledd underklass dhu: Class dhu : public ös{} Indirekt.
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.
Föreläsning 5 Klasser och instanser
Föreläsning 9 Inläsning och utskrift på fil –SimpleTextFileReader –SimpleTextFileWriter Felsökning Java API.
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 2 Reserverade ord Javas API Identifierare Litteraler Variabler Kompilering och interpretering.
OOP&M - teori1 OOP del III–vecka 15 Mer NetBeans MouseEvent Graphics Threads TIJ Chapter 14 Menus sid Drawing File Dialogs
OOP&M - teori1 OOP&M – Föreläsning 5 kap 8-13 Operatorer,typkonvertering, booleska operatorer, if och else.
OOP&M - teori1 OOP– Föreläsning vecka Genomgång uppgifter Arbetsmetoder Repetition Kapitel 14 Metoder.
OOP&M - teori1 OOP del III– Föreläsning vecka 9 GUI Containers och LayoutManagers (Inner classes)
1 Föreläsning 6 Repetition på metoder Referenser Objekt som parametrar public/private Klassvariabler och klassmetoder.
OOP&M - teori1 OOP – Föreläsning 7 (Sista oop I) Konstruktioner för att hantera upprepningar Kapitel 11.
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.
Arv, abstrakta klasser och gränssnitt
OOP&M - teori1 OOPM del II– Föreläsning vecka Mer om ärvning.. Abstrakta klasser/metoder Gränssnitt/Interface klasser.
OOP&M - teori1 OOPM del II – Föreläsning vecka Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen tillämpat.
Objektorienterad programmering sid. 1 7/15/2015 CD5250 OOP med C++ Mats Medin MDH/IDT Objektorienterad programmering OOP = objektbaserad programmering.
OOP&M - teori1 OOP2– Föreläsning vecka 0507 OBJEKT Mer om ärvning... Paket...
Föreläsning 3 Väsentliga delar i ett Javaprogram Input i paketet extra
TDP004 Objektorienterad Programmering Fö 6 Objektorientering forts.
Presentationens avskrift:

OOP&M - teori1 OOPM del II – Föreläsning vecka Sista föreläsning del II Kapitel 21 plus paket Abstrakta klasser/metoder igen Gränssnitt/Interface klasser igen

OOP&M - teori2 Ärvning Används vid relationer av typen är en/ett ! exempel: en människa är ett däggdjur. en hund är ett däggdjur. en tax är en hund. en hund är ett däggdjur osv

OOP&M - teori3 Skydd private: Endast tillgängligt inom klassen public: Generellt tillgänglig protected: Tillgänglig inom klassen och i alla subklasser och inom aktuellt paket

OOP&M - teori4 Abstrakt klass Används på en klass för att förhindra att klassen instansieras. En subklass kan instansieras om den implementerar samtliga abstrakta metoder i superklassen Används på en metod i en superklass för att styra så att en metod måste implementeras i subklassen. Syntax för metod //se ut som vanlig metod utan implementation public abstract void myMetod(); Medför som tidigare att en objekt-variabel kan deklareras med superklassens typ men ändå använda metoder från subklass.

OOP&M - teori5 Interface Gränsnitt Används på en klass för att styra så att vissa metoder måste implementeras i den klass som använder gränssnittet. Syntax för interfaceklass //se ut som vanlig metod utan implementation public interface myName{ public void mymethod(parameters); } Medför att en objekt av helt olika typ kan använda samma metoder genom att en variabel deklareras av intrefacetypen. Kan ej instansieras och har ingen konstruktor Kan endast ha variabler av typen static final.

OOP&M - teori6 UML (Unified Modeling Language) Grundnotation för en klass Klassnamn variabler konstruktorer metoder

OOP&M - teori7 UML (Association) Associationsstruktur Relation mellan två olika typer av objekt BilPerson 0..* 1..* En relation mellan två klasser som modellerar ett ägarskap- Relationen utläses som: -En bil har 1 eller flera ägare. -En person äger 0 eller flera bilar.

OOP&M - teori8 Aggregatstruktur Starkare koppling än en association. Objekten är fundamentala beståndsdelar i en större helhet. UML (Aggregat) Bil Kaross MotorHjul KamaxelCylinder * * 1 2..*

OOP&M - teori9 Arv Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Ärvning) Fordon Passagerarfordon BilBuss MC Lastmaskiner

OOP&M - teori10 Arv Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Abstrakta klasser) > Fordon > Passagerarfordon BilBuss MC Lastmaskiner

OOP&M - teori11 Interface Vid ärvning beskriver en generell klass (superklassen) egenskaper gemensamma för en grupp specialiserade klasser (subklasser). UML (Interface/Gränssnitts klasser) > Shape CircleRectangle > Citizen PlummerGardener > Drawable _______________ +draw

OOP&M - teori12 Kluster är en samling klasser UML (Kluster) Fordon Passagerarford on BilBuss MC Lastmaskine r KarossMotorHjul Kamaxel Cylinder * * 1 2..* Fordon

OOP&M - teori13 Skydd private: Endast tillgängligt inom klassen public: Generellt tillgänglig protected: Tillgänglig inom klassen och i alla subklasser package: Standard om inget annat anges motsvarar kompileringsenhet

OOP&M - teori14 Skydd Skyddsnivå Tillgänglig: publicprotectedpackageprivate Inom samma klassJa Klass i samma paket Ja Nej Subklass i annat paket Ja Nej Annat paketJaNejNajNej

OOP&M - teori15 Skydd Riktlinjer för användning: public: för metoder som skall vara publika (setters, getters) protected: används för metoder och variabler som kan vara av intresse för någon som subklassar metoden private: används för variabler och metoder som endast skall vara tillgängliga i klassen och dolda för övrigt package: används för variabler och metoder som används av andra klasser i samma paket

OOP&M - teori16 Javadoc Används för att automatiskt skapa dokumentation. /**kommentarer placerade här kommer med*/ Kommentarerna kan innehålla enkla HTML-taggar fet Kommentarer placeras före klass och metod (men efter import) och variabelbeklarationer och skall var kortfattade. Mer info på

OOP&M - teori17 Javadoc i JCreator Så här kopplar du en verktygsknapp till javadoc i JCreator. I detta exempel hamnar resultatet i en katalog c:\doc. Ändra så det passar dig. 1.Välj Configure/Options/Tools 2.Tryck New/Program 3.Leta upp javadoc.exe tryck Apply 4.Välj ditt ”tool” i vänstermenyn 5.skriv tex *.java -d c:\doc 6.Välj project directory ($[PrjDir]) som initial directory. 7.Sen skall det fungera se till att alla klasser du vill ha med har angiven skyddsklass. Endast klasser som är angivna public kommer med.

OOP&M - teori18 Package Paket Används för att samla ett antal klasser så att de kan importeras av en annan klass. Skall ha unikt namn ofta används domännamn baklänges Klassfilerna placeras i en mappstruktur som motsvarar paketnamnet. Syntax för paket //måste stå på första raden package se.mah.k3.mypackage; /*importeras sen med (classpath till biblioteket där klasserna finns måste anges)*/ import se.mah.k3.mypackage.*; Medför att det är enklare att använda färdiga klasser i nya program

OOP&M - teori19 Package Paket se mah k3 shapes lut mypackage Klassfilerna ligger för paketet se.mah.k3.mypackage i mappen mypackage Javafilerna ligger för paketet se.mah.k3.mypackage i mappen mymapp mymapp

OOP&M - teori20 Classpath Anger var kompilatorn söker efter klasser. Rotkatalogen för klassfilerna skall anges Kan skrivas ut och anges på PC med vid DOS- prompt På PC skriver man till exempel set CLASSPATH = %CLASSPATH%;c:\myfolder antingen vid kommandoprompt eller via inställningar i My Computer Kan anges i Jcreator via project settings Antingen anges rotmappen för klassfilerna eller en JAR- fil (packade javafiler)

OOP&M - teori21 Paketera paket till arkiv Java Archive files JAR Kompilerade klasser kan packas till.jar filer Medför att det är enklare att använda färdiga klasser i nya program Gör det enklare att distribuera och snabbare att exekvera jar som innehåller applikationer kan göras körbara mha en manifestfil som innehåller information om var main-metoden finns Det går enkelt i BlueJ men är lite klyddigere annars

OOP&M - teori22 Paketera paket till arkiv (commandoprompt) Exempel på manifestfil för ett paket som heter se.mah.k3.game1 som har en klassfil Game1.class i mappen game1 Main-Class: se.mah.k3.game1.Game1 Name: se/mah/k3/game1/Game1.class Skapa jarfilen från projektets rotkatalog med kommandot (obs punkt) Därefter kan jar-filen köras med java –jar my.jar på alla datorer med korrekt JVM. Ofta kan filen köras genom att man dubbelklickar på den.

OOP&M - teori23 Arkiv (jar) i JCreator 1.Skapa en fil Manifest.mf i samma katalog som klassfilerna. Eller om du använder packet i samma katalog som se-mappen. 2.Filen Manifest.mf skall se ut exakt så här förutom att du skall ha dina egna klassnamn. I mitt fall heter paketet se.mah.k3.Game1 och mainmetoden ligger i Game1.class Main-Class: se.mah.k3.game1.Game1 Name: se/mah/k3/game1/Game1.class Obs case sensitive. 3.Skapa ett tool i JCreator som med javadoc där du pekar på programmet jar.exe med dessa parametrar: Arguments: cvfm $[PrjName].jar MAN.txt *.class Initial directory: $[PrjDir] 4.Sen kan det fungera. Om JCreator lagt filerna i en mapp som heter classes så skall Manifestfilen även läggs där och initial directory vara $[PrjDir]/classes

OOP&M - teori24 ?