Objektorienterad programmering (OOP)
Ett program utan struktur är en hög lösa variabler och funktioner som råkar höra ihop, bara därför att de ligger nära varandra i filen. Objektorienterad programmering ger dig ett annat sätt att organisera det: bunta ihop data och de metoder som hör till den datan i en enda enhet — en klass — och låt klassen själv bestämma vad som får hända med sitt innehåll.
Det löser ett konkret problem, inte ett abstrakt ett. Klasser och objekt bygger ett BankAccount steg för steg för att visa exakt varför: utan struktur blandas kontonas data ihop så snart du har fler än ett par konton. Med en klass äger varje konto sin egen data, och vet själv hur den får ändras.
Grunderna — bygg din första klass
- Klasskomposition — en klass byggd av andra klassers objekt, innan vi går in på arv
- Struct — värdetyper, och varför
integentligen är en liten struct - Konstruktorer och Konstruktoröverlagring — hur ett objekt startar i ett giltigt tillstånd
- Properties — kontrollerade fönster in till ett objekts data
- Klasser och objekt — allt ovan satt ihop i ett komplett exempel
- Åtkomstmoderator —
private,public,protected,internal
Skydda och visa data
- Inkapsling — varför data är privat och beteende är publikt
- ToString-override — hur ett objekt beskriver sig själv som text
Bygga vidare på klasser
- Arv — återanvänd kod genom en basklass, utan att kopiera den
- Komposition över arv — när “har en” är ett bättre val än “är en”
- Polymorfism, Interfaces, Abstrakta klasser — olika objekt, samma gränssnitt
- Delegater och Events — metoder som data
- Sealed — stänga en klasshierarki medvetet
- Static-klasser och metoder — när något tillhör typen, inte ett objekt
- Partial class — dela en klassdefinition över flera filer
Data, värden och när du väljer vad
- Records — värdelikhet och oföränderlighet, gratis
- Class, struct eller record — vilken? — beslutstabellen som samlar alla fyra
- POCO och DTO — enkla dataklasser i praktiken, t.ex. i EF Core och API:er
- Egna datatyper — operator-överlagring, när din typ ska bete sig som en inbyggd
Under huven
- Garbage Collector — hur .NET faktiskt frigör minne
- Destruktor och Finalizer — och varför du sällan behöver skriva en
- Attribut och Reflection — mekaniken bakom
[Required], EF Core och System.Text.Json - OOP — en kort historik — Simula, Smalltalk, C++, Java — vägen hit
Testa dig själv
- Testa dig själv — kontrollera att det satt sig innan du går vidare