2. Moment02 - Objektorientering

I detta moment skall vi kika på objektorientering, OOP (object-oriented programming), och hur vi kan använda denna teknik för att bygga tydligare och mer generella applikationer. Vi kommer lära oss att bygga klasser och skapa objekt vilket är grunden inom den objektorienterade programmeringen.

Objektorientering är en viktig del av de objektorienterade programmeringsspråken. Det är ett sätt att försöka anpassa programmeringen mot den riktiga världen där helt andra datatyper finns än just de datatyper som finns inbyggt i programmeringsspråket. När vi skall sätta samman information om någon person eller en bil så räcker det inte att bara förlita sig på bara de enkla variabler som finns i en applikation. Det är då vi vill använda oss av objekt.

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 följa en tutorial och bygga en klass och lär oss använda denna i en applikation. Slutligen så börjar vi med den tutorial som vi skall jobba med i stora delar av kursen. Den tutorial som bygger oss ett spel i C#.

2.1 Teori

Vi börjar med en allmän genomgång av OOP. Denna presentation är bortkopplad från något specifikt programmeringsspråk. Senare i momentet kommer vi kika på hur vi jobbar med objektorientering specifikt i C#.

2.2 OOP & C# genom två tutorials

2.2.1 Objektorienteringens grunder

För att lära dig objektorientering i C# så har jag byggt en tutorial där du skall skapa klassen Car och sedan jobba med denna klass genom objektorienteringen grunder.

Uppgift

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

2.2.2 Att lagra objekt i en samling

Dags för nästa tutorial, denna gången bygger vi vidare med klassen Car och nu skall vi bygga en applikation kring våra bilar så att de går att lagra i en lista, lägga till, ta bort och tömma listan. 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.

2.2.3 Redovisning

När du är klar med bägge tutorials så skapa ett inlägg på WordPress (om kravet är ställt att du skall ha en) 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 dina koder. Antingen så visar du upp koden på ett lämpligt sätt eller så gör du dina filer med källkod tillgängliga för mig att kika på.

2.3 Uppstart av speltutorial

Vi kommer arbeta med ett läromedel, skriven av Krister Trangius, som har en bra tutorial för hur spel tillverkas. Även om boken är skriven till en tidigare kursplan, före HT-17, så finns det många saker som är bra och som vi kan dra nytta av.

I boken läser du igenom kapitel 4, där gås grunderna igenom hur spelutveckling går till och hur boken är uppbyggd.
I kapitel 5 går författaren igenom hur XNA och MonoGame fungerar. Detta kapitel börjar få några år på nacken men grunderna stämmer fortfarande. Installationsanvisningarna har för många år på nacken så jag har skapat ett hjälpdokument för att kunna få igång en fungerande miljö.

2.3.1 Arbete

Jobba dig igenom bokens kapitel 6.

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 6 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.