Difference between revisions of "Objektorienteret Programmering"
From Teknologisk videncenter
(Blanked the page) |
(→Projektuge) |
||
(30 intermediate revisions by the same user not shown) | |||
Line 1: | Line 1: | ||
+ | ==Mandag== | ||
+ | <h3><i>Opsummering</i></h3> | ||
+ | - Lav en class med 3 methods og 3 properties og 1 constructor. Vælg selv typer. | ||
+ | - Lav en class som nedarver fra den første class og overrider en af dens funktioner. | ||
+ | - Sørg for at begge classes bruger getters og setters | ||
+ | <h3><i>Overloading</i></h3> | ||
+ | |||
+ | Lav din egen Math class | ||
+ | Lav en plus funktion der tager imod to tal og returnerer summen af dem. | ||
+ | Lav 2 overloads, en der tager imod to float værdier og en der tager imod to int værdier | ||
+ | Gør det samme for de andre regnearter (minus, gange, dividere) | ||
+ | til sidst, lav en overload som tager imod to strings og outputter summen af tallet i dem. | ||
+ | |||
+ | <h3><i>Delegates</i></h3> | ||
+ | [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/delegates/ Mere info] | ||
+ | - Lav en delegate som returnerer void og tager imod ingen parametre. Kald denne. | ||
+ | - Lav en anden delegate som returnerer float og tager imod ingen parametre. Kald denne. | ||
+ | - Lav en anden delegate som returnerer void og tager imod 3 parametere. Kald denne. | ||
+ | - Udfordring: Lav et program som kan bruge de forskellige metoder i den Math class i lavede i Overloading. Den må IKKE kalde nogen af metoderne direkte, kun igennem delegates. | ||
+ | |||
+ | Eksempel fra formidlingen: | ||
+ | <source lang="CSharp">class Program | ||
+ | { | ||
+ | delegate string GreetingDelegate(string s); | ||
+ | static void Main(string[] args) | ||
+ | { | ||
+ | GreetingDelegate del = sayIt; | ||
+ | Console.WriteLine(del("I'd like a soda")); | ||
+ | del = sayItPolitely; | ||
+ | Console.WriteLine(del("I'd like a soda")); | ||
+ | } | ||
+ | |||
+ | static string sayIt(string s) | ||
+ | { | ||
+ | return s; | ||
+ | } | ||
+ | |||
+ | static string sayItPolitely(string s) | ||
+ | { | ||
+ | return s + " please."; | ||
+ | } | ||
+ | |||
+ | static void callbackExample(GreetingDelegate callback) | ||
+ | { | ||
+ | //some code | ||
+ | callback("I'm done!"); | ||
+ | } | ||
+ | }</source> | ||
+ | |||
+ | ==Tirsdag== | ||
+ | <h3><i>Access Modifiers</i></h3> | ||
+ | [https://docs.microsoft.com/en-us/dotnet/csharp/language-reference/keywords/access-modifiers Mere Info] | ||
+ | |||
+ | <h3><i>Lambda Expressions</i></h3> | ||
+ | [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/lambda-expressions mere info] | ||
+ | - Lav en Lambda Expression der tager imod en int og returnerer tallet fordoblet. Gem i en passende delegate og kør. | ||
+ | - Lav en Lambda Expression der tager imod en 3 floats og returnerer summen. Gem i en passende delegate og kør. | ||
+ | - Lav en Lambda Expression der ikke tager imod noget og returnerer "Hello World". Gem i en passende delegate og kør. | ||
+ | |||
+ | <h3><i>Anonymous Methods</i></h3> | ||
+ | [https://docs.microsoft.com/en-us/dotnet/csharp/programming-guide/statements-expressions-operators/anonymous-methods mere info] | ||
+ | |||
+ | |||
+ | [https://goo.gl/forms/fKMoartsN6OvJbwB3 Link til Test] | ||
+ | |||
+ | ==Onsdag== | ||
+ | <h3><i>Multithreaded</i></h3> | ||
+ | [https://www.tutorialspoint.com/csharp/csharp_multithreading.htm Mere Info] | ||
+ | - Start med at prøve at lave en Thread og starte den. Print til Console.Writeline for at teste | ||
+ | - Lav et program der starter 10 forskellige tråde. Lad hver tråd outputte noget forskelligt, og se hvilken rækkefølge de bliver skrevet i. | ||
+ | - Lav din egen Thread class, som demonstreret i klassen. | ||
+ | - Ekstra Opgave: Lav et gæt et tal spil, men med en tidsgrænse! Brug en tråd til at holde styr på tiden. | ||
+ | |||
+ | <h3><i>Tasks</i></h3> | ||
+ | [https://docs.microsoft.com/en-us/dotnet/standard/parallel-programming/task-based-asynchronous-programming Mere Info] | ||
+ | - Lav en Task og få den til at køre. | ||
+ | - Lav en Task med en returnværdi og få den til at køre, skriv returværdien til konsollen. | ||
+ | |||
+ | ==Torsdag== | ||
+ | <h3><i>UML Class Diagrams</i></h3> | ||
+ | [https://www.ibm.com/developerworks/rational/library/content/RationalEdge/sep04/bell/index.html Mere info] | ||
+ | - Tegn et UML Class Diagram der beskriver et objekt du har på dit værelse. Giv det passende metoder og properties. | ||
+ | - Giv en klassekammerat dit diagram. Ud fra det alene skal personen forsøge at implementere din klasse så godt som muligt. | ||
+ | - Find et tidligere projekt du har lavet på studiet eller på arbejdet. Forsøg at beskrive dit projekt med et UML Class Diagram. | ||
+ | |||
+ | Derefter, prøv om i kan implementere [https://www.dropbox.com/s/qbqqaimv86h64s7/download.png?dl=0 denne] | ||
+ | |||
+ | [https://goo.gl/forms/RzFe1DnYDlSCC1LP2 Link til Test] | ||
+ | |||
+ | ==Fredag== | ||
+ | <h3><i>Getting started programming</i></h3> | ||
+ | - Find på et teoretisk produkt, og definer derefter en liste af klasser og metoder på baggrund af beskrivelsesmetoden. | ||
+ | |||
+ | ==Projektuge== | ||
+ | Husk at tilføje @adamdanyx som collaborator på dit repo (hvis du bruger GitHub) | ||
+ | - Solo-Grupper | ||
+ | - Afleveres senest fredag klokken 11 | ||
+ | - Evalueres som skriftlig eksamen | ||
+ | |||
+ | Formelle Krav til Aflevering: | ||
+ | - Et GIT Repo med et kodeprojekt. | ||
+ | - Et Før- og Efter UML Class Diagram | ||
+ | - En udførlig Readme.md | ||
+ | - Kommentering der forklarer jeres løsning | ||
+ | |||
+ | Formelle Krav til Project Proposal: | ||
+ | - 3 siders dokument indeholdende | ||
+ | - - Produktbeskrivelse | ||
+ | - - Motivation | ||
+ | - - UML Class Diagram | ||
+ | - 4 emner vi har gennemgået i kurset (mindst 2 fra uge 2) | ||
+ | |||
+ | Uge 1 | ||
+ | - Inheritance | ||
+ | - Abstract Classes | ||
+ | - Interfaces | ||
+ | - Incapsulation | ||
+ | |||
+ | Uge 2 | ||
+ | - Overloading | ||
+ | - Overriding | ||
+ | - Delegates | ||
+ | - Anonymous Methods ( evt. incl. Lambda) | ||
+ | - Multithreading |
Latest revision as of 12:59, 15 January 2018
Contents
Mandag
Opsummering
- Lav en class med 3 methods og 3 properties og 1 constructor. Vælg selv typer. - Lav en class som nedarver fra den første class og overrider en af dens funktioner. - Sørg for at begge classes bruger getters og setters
Overloading
Lav din egen Math class Lav en plus funktion der tager imod to tal og returnerer summen af dem. Lav 2 overloads, en der tager imod to float værdier og en der tager imod to int værdier Gør det samme for de andre regnearter (minus, gange, dividere) til sidst, lav en overload som tager imod to strings og outputter summen af tallet i dem.
Delegates
- Lav en delegate som returnerer void og tager imod ingen parametre. Kald denne. - Lav en anden delegate som returnerer float og tager imod ingen parametre. Kald denne. - Lav en anden delegate som returnerer void og tager imod 3 parametere. Kald denne. - Udfordring: Lav et program som kan bruge de forskellige metoder i den Math class i lavede i Overloading. Den må IKKE kalde nogen af metoderne direkte, kun igennem delegates.
Eksempel fra formidlingen:
class Program
{
delegate string GreetingDelegate(string s);
static void Main(string[] args)
{
GreetingDelegate del = sayIt;
Console.WriteLine(del("I'd like a soda"));
del = sayItPolitely;
Console.WriteLine(del("I'd like a soda"));
}
static string sayIt(string s)
{
return s;
}
static string sayItPolitely(string s)
{
return s + " please.";
}
static void callbackExample(GreetingDelegate callback)
{
//some code
callback("I'm done!");
}
}
Tirsdag
Access Modifiers
Lambda Expressions
- Lav en Lambda Expression der tager imod en int og returnerer tallet fordoblet. Gem i en passende delegate og kør. - Lav en Lambda Expression der tager imod en 3 floats og returnerer summen. Gem i en passende delegate og kør. - Lav en Lambda Expression der ikke tager imod noget og returnerer "Hello World". Gem i en passende delegate og kør.
Anonymous Methods
Onsdag
Multithreaded
- Start med at prøve at lave en Thread og starte den. Print til Console.Writeline for at teste - Lav et program der starter 10 forskellige tråde. Lad hver tråd outputte noget forskelligt, og se hvilken rækkefølge de bliver skrevet i. - Lav din egen Thread class, som demonstreret i klassen. - Ekstra Opgave: Lav et gæt et tal spil, men med en tidsgrænse! Brug en tråd til at holde styr på tiden.
Tasks
- Lav en Task og få den til at køre. - Lav en Task med en returnværdi og få den til at køre, skriv returværdien til konsollen.
Torsdag
UML Class Diagrams
- Tegn et UML Class Diagram der beskriver et objekt du har på dit værelse. Giv det passende metoder og properties. - Giv en klassekammerat dit diagram. Ud fra det alene skal personen forsøge at implementere din klasse så godt som muligt. - Find et tidligere projekt du har lavet på studiet eller på arbejdet. Forsøg at beskrive dit projekt med et UML Class Diagram.
Derefter, prøv om i kan implementere denne
Fredag
Getting started programming
- Find på et teoretisk produkt, og definer derefter en liste af klasser og metoder på baggrund af beskrivelsesmetoden.
Projektuge
Husk at tilføje @adamdanyx som collaborator på dit repo (hvis du bruger GitHub)
- Solo-Grupper - Afleveres senest fredag klokken 11 - Evalueres som skriftlig eksamen
Formelle Krav til Aflevering:
- Et GIT Repo med et kodeprojekt. - Et Før- og Efter UML Class Diagram - En udførlig Readme.md - Kommentering der forklarer jeres løsning
Formelle Krav til Project Proposal:
- 3 siders dokument indeholdende - - Produktbeskrivelse - - Motivation - - UML Class Diagram - 4 emner vi har gennemgået i kurset (mindst 2 fra uge 2)
Uge 1
- Inheritance - Abstract Classes - Interfaces - Incapsulation
Uge 2
- Overloading - Overriding - Delegates - Anonymous Methods ( evt. incl. Lambda) - Multithreading