Programmering02 [prrprr02]

Moment04 - Avancerad objektorientering

Introduktion

I bokens kapitel 7 så skall vi skapa fler klasser och en klasstruktur med arv skall skapas. För att förstå detta krävs kunskaper i lite mer avancerad objektorientering.

Momentets mål

I varje moment så jobbar vi mot ett eller flera mål som skolverket har satt upp i varje kurs.

Centralt innehåll

  • Grunderna för klasserna, objekt, egenskaper och metoder.
  • Arv, inkapsling och polymorfism.
  • Skapande av klasser och objekt i ett objektorienterat programspråk utifrån tidigare analys och design.
  • Användning av klasser och att genom arv förändra beteende hos klasser som ingår i egna och andras klasshierarkier och standardbibliotek.
  • Generiska klasser och metoder.
  • Variablers och metoders synlighet och livslängd.
  • Stark och svag samt statisk och dynamisk typning.
  • Identifierares synlighet och livslängd.
  • Det valda programspråkets kontrollstrukturer.
  • Skapande av användarvänliga gränssnitt.

Momentets upplägg

I detta moment skall vi fortsätta arbeta med objektorientering och nu skall vi gå djupare in på arv.

Momentet börjar med en teorigenomgång frikopplad från något specifikt programmeringsspråk innan vi kikar på hur OOP fungerar i programmeringsspråket C#. Detta gör vi genom att jobba vidare med våra tidigare tutorials, först kikar vi på arvsstrukturen och sedan bygger vi in detta i en applikation. Slutligen så fortsätter vi med speltutorialen som finns i boken.

Del 1 - Teori

Här finns en serie bilder som går igenom grunderna i arv.

Videotutorials

Mr1Buyings kanal är nedlagd men någon har lagt upp vissa av hans klipp, som tur är så finns det klipp på avancerad objektorientering i c#. Det finns godbitar i klippen men också saker som inte alltid visar det på något enkelt sätt. Du använder detta material om du vill.

Del 2 - OOP & C# i två tutorials

Jag har byggt upp två tutorials som jobbar vidare med Car-klassen som byggdes upp i mina tidigare tutorials.

OOP Arv

I denna tutorial så gör vi om klassen Car så att det blir en subklass till Vehicle. Vi passar också på att skapa en ny subklass som heter Lorry och som lagrar information om lastbilar.

Klicka här för att jobba med tutorialen.

Uppgift

Genomför tutorial ovan och redovisa sedan ditt arbete enligt instruktionerna under punkten Redovisning nedan.

OOP Generiska klasser

I denna tutorial tar vi vår gamla applikation där vi kunde lagra bilar och bygger om den enligt de klasser som vi byggde ovan när vi implementerade vårt arv.

Så fort denna tutorial är på plats så kommer det finnas en länk här.

Uppgift

Genomför tutorial ovan och redovisa sedan ditt arbete enligt instruktionerna under punkten Redovisning nedan.

Redovisning

När du är klar med tutorial så skapa ett inlägg på WordPress och skriv lite om hur arbetet har gått, vad du tyckte om dessa två tutorial (du kan redovisa en i taget om du vill) och slutligen skall du visa upp koder eller applikation på något lämpligt sätt. Varför inte göra en skärminspelning när du demonstrerar applikationen.

Del 3 - Bokens speltutorial

Det har blivit dags att fortsätta jobba med bokens speltutorial. Det sista som gjordes förra gången är att kapitel 6 blev helt färdigt. Ta en säkerhetskopia på detta projekt, om det inte redan är gjort, och jobba sedan vidare med kapitel 7.

Stöd och hjälp till tutorial

De flesta tutorials som skapas för IT kommer förr eller senare innehålla delar som inte ser ut som det förväntas eller fungerar som förväntat. De saker som behöver stöd/hjälp/förtydligande/ändringar samlar jag i en egen sida. Hittar du fler saker som inte riktigt fungerar så säg till så kompletterar vi hjälpsidan.

Uppgift

När du är klar med kapitel 7 så har du säkerligen en ganska så rörig kod, gå igenom koden, snygga till, kommentera de saker du har gjort medan du kommer ihåg vad du har gjort. Spara en kopia som innehåller allt som fungerar så här långt så kan du jobba vidare med en kopia i nästa kapitel. Skulle något bli väldigt fel i nästa del så kan du enkelt börja om från ett fungerande projekt istället för att behöva felsöka allt för länge. Skriv ett inlägg på din dokumentationssida.

Mitt önskemål är att din dokumentationssida, MINST, skall uppdateras när du är klar med varje moment. Vissa moment är stora så det kan vara mening att dokumentera oftare.