Upload
trevet
View
34
Download
1
Embed Size (px)
DESCRIPTION
Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C#. Arkitekturen i computere & historisk udvikling UML-klassediagram & C# Erklæring af metode m. parameter Værdityper vs. reference typer Initialisering af objekter m. konstruktører - PowerPoint PPT Presentation
Citation preview
Intro til C# apps
Arkitekturen i computere & historisk udvikling + grundlggende begreber i C#1Arkitekturen i computere & historisk udvikling
UML-klassediagram & C#Erklring af metode m. parameterVrdityper vs. reference typer Initialisering af objekter m. konstruktrerTal af typen floating-point & decimalSimple typer i C#
Steen Jensen, efterr 2013
Fra mainframes til personlige computere (PC)Computere startede med mainframes - store maskiner, som fyldte et stort rum og kostede i hundredtusindvis af dollars
Gradvist kom minicomputere mindre, masseproducerede computere til titusindvis af dollars
I 1971 producerede Intel den frste microprocessor (computerchip):Frte frst til hobbycomputere (Sinclair, Commodore 64 .)I 1980erne:De frste PCere dukkede op (IBM kloner)Man skelnede dengang mellem workstations (srligt kraftige til typisk videnskabelige forml) og almindelige PCere
Nu ogs embeddede processorer sm computere med simple microprocessorer indbygget i husholdningsmaskiner, biler etc.
2Computerens elementerEn computer kan opdeles i forskellige fysiske elementer:CPU (udfrer instruktioner i en cyklus styret af clockfrekvens)Hovedhukommelse / indre lager: computerchips udgr RAMSekundr lager: harddisk, CD/DVD-drevYdre enheder (tastatur, mus, skrm, printer )
Download ProcessorSim fra http://jamesgart.com/procsim/
Tryk p Start Simulation
I vinduet Control Panel kan du nu trykke p Start Execution
Prv ogs at trykke p Step og flg afviklingen stepvist
Prv ogs at se de lbende ndringer i vinduerne Registers samt Instruction Memory
3Udviklingen i computerchipsComputerchips bestr af elektroniske kredslb formindsket og tset ned i plader fremstillet af silicium
Nye teknikker bliver stadig fremstillet for at kunne presse stadig flere kredslb ned p samme plade
Kredslb udvikler meget varme kling ndvendig
Fremtiden byder p quantum og molecular computing, hvor man bevger sig ned i elektron- / molekylestrrelse
4Udviklingen i operativsystemerFra kommandostyrede (DOS) til grafiske brugergrnseflader
Fra ekspertstyret til allemandseje
Proprietre OS (Microsoft Windows, Mac OS ) vs. open source (Linux etc.)
5Netvrk Lokale netvrk LAN = local area network
WAN = Wide area network
Internettet = netvrk af mange WANs
Trdlse netvrk: Wi-Fi
6Computer softwareComputersoftware er en fllesbetegnelse for programmer, der kan afvikles p en computer
Forskellige kategorier:Forretning & personligt: tekstbehandling, regneark
Videnskab & ingenirarbejde: simulering af vejr, CAD
Internet & samarbejde: browsere, email, Facebook, udnyttelse af uudnyttede computerressourcer hos brugere (fx SETI@home projektet, hvor der analyseres kmpe mngder af data fra radioteleskoper for at finde tegn p liv i rummet)
Spil & underholdning: casual games, 3D-spil
7Historisk udviklingFra EDB (elektronisk databehandling) til IT
Databaser fra hierarkiske til netvrksdatabaser til relationsdatabaser. Nu ogs objektorienterede databaser
Fra procedural programmering til eventstyret programmering til objektorienteret programmering
En sammenhrende verden: internettet, e-handel (e-commerce), sociale netvrk, ubiquitous computing
8Erklring (eng.: declaration) af klasse & oprettelse (eng.: instantiation) af objekt af klasseEksemplet kan ses i fig. 4.1 + 4.2 s. 147+149 i bogen og findes ogs i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_01_02
Nr en klasse erklres, skal der angives en skaldt access modifier, der angiver egenskabers (properties) og metoders tilgngelighed for andre metoder i appen her angives normalt public
Hvis en metode ikke returnerer nogen information, angives void
Metodenavne navngives normalt som udsagnsord, og klasser som navneord
En statisk metode (i Main) er speciel, da den kan kaldes uden frst at skabe et objekt af klassen
For at skabe et objekt af en klasse benyttes new
9Generel opbygning af UML-klassediagramDiagrammet er opbygget af tre dele
Den verste del bestr af klassens navn
Den midterste del bestr af klassens attributter, hvilket svarer til instansvariable og egenskaber i C#
Den sidste del bestr af klassens operationer, hvilket svarer til metoder i C#
10
Erklring (eng.: declaration) af metode m. parameterEksemplet kan ses i fig. 4.4 + 4.5 s. 151+152 i bogen og findes ogs i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_04_05
En metode kan benytte en eller flere parametre for at kunne udfre sin opgave
Et metodekald giver vrdier (ogs kaldet argumenter) til hver af metodens parametre
Nr en metode benytter parametre, angives en type og et navn for hver parameter
11
NB! omvendt rkkeflge i forhold til C#Instansvariable (eng.: instance variables) og egenskaber (eng.: properties)Eksemplet kan ses i fig. 4.7 + 4.8 s. 155+158 i bogen og findes ogs i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_07_08
Variable knyttet til en klasse kaldes instansvariable (eng.: instance variables) og erklres indenfor klassen, men udenfor klassens metoder
Hvert objekt har sin separate instans af disse variable
En klasse har normalt en eller flere egenskaber (eng.: properties), der kan manipulere disse instansvariable
Generelt defineres metoder og egenskaber som public, mens instansvariable defineres som private
At erklre instansvariable som private kaldes ogs for information hiding eller encapsulation
Egenskaber (properties) indeholder skaldte accessors, som hndterer at lse og ndre klassens instansvariable
12UML-klassediagram med en egenskab (property)Da en instansvariabel opfattes som en implementationsdetalje, medtages normalt instansvariable ikke i et UML-klassediagram13
Automatisk implementerede egenskaber (eng.: auto-implemented properties)Eksemplet findes i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_07_08_auto-impl-properties
C# giver mulighed for at benytte automatisk implementerede egenskaber (eng.: auto-implemented properties)
Dette betyder, at C# compileren skaber instansvariabel med tilhrende set/get accessors
For at f en liste over skaldte code snippets, trykkes Ctrl + k, Ctrl + x (alternativt kan man ogs hjreklikke i editorvinduet og vlge Insert snippet)
Auto-implemented properties findes i code snippets under prop
14Vrdityper (eng.: value types) vs. reference typer Typer i C# kan opdeles i to kategorier:Vrdityper (eng.: value types)Referencetyper (eng.: reference types)
Simple typer i C# er alle vrdityper (int, double etc.)
En variabel af vrditypen indeholder simpelthen en vrdi
En variabel af referencetypen indeholder derimod en adresse i hukommelsen p, hvor den refererede variabel er gemt f.eks.:GradeBook myGradeBook = new GradeBook();15Initialisering af objekter m. konstruktrer (eng.: constructors)Eksemplet kan ses i fig. 4.12 + 4.13 s. 163+164+165 i bogen og findes ogs i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_12_13
En klasse kan angive en konstruktr (eng.: constructor), som kan bruges til at initialisere et objekt af en klasse, nr objektet oprettes
C# krver et kald til en konstruktr, nr et objekt oprettes
Den tomme parentes efter f.eks. new GradeBook() indikerer et kald uden argumenter til klassens konstruktr p denne mde giver compileren en default konstruktr til alle klasser, ogs selv om der ikke eksplicit er angivet nogen konstruktr
Hvis man nsker selv at anvende en konstruktr, skal denne have samme navn som klassen
En konstruktr skal ikke angive nogen return type
16UML-klassediagram med en konstruktr (constructor)Konstruktrer angives normalt fr de almindelige metoder i et UML-klassediagram17
velse modificering af fig. 4.12Lav velse 4.10 s. 178 i VC#2012 bogen
Du/I m meget gerne lave velsen som pair programming, hvor I hjlpes ad I kan f.eks. skiftes til at vre leder og sekretr
Hvis du/I har problemer, s prv frst at vende det med det andet par i jeres gruppe, fr I rkker hnden op og beder mig om hjlp18Tal af typen floating-point & decimalEksemplet kan ses i fig. 4.15 + 4.16 s. 167+169+170 i bogen og findes ogs i de downloadede kodeeksempler i mappen ch04 og undermappen fig04_15_16
C# benytter tre typer af decimaltal:floatdoubledecimal
Float og double kaldes for floating-point typer gemmer tilnrmede vrdier, mens decimal prcise vrdier
Decimal bruges som regel til belb
Decimaltal (f.eks. 7.33) behandles som double som udgangspunkt disse kaldes floating-point literals
En decimal literal: f.eks. 7.33m eller 7.33M (m/M = money)
19Oversigt over simple typer i C#20
Self-review velser i grundlggende C#-begreberPrv at besvare velse 4.1-4.4 p s. 176 177 uden at se svarene
Check derefter dine svar op imod svarene s. 177n 178
21velse i C# apps med brug af grundlggende begreberResten af dagen + torsdag: Lav velse 4.11-4.16 s. 178-179 i VC#2012 bogen
Implementer use case(s) fra Spejder system
Du/I m meget gerne lave velsen som pair programming, hvor I hjlpes ad I kan f.eks. skiftes til at vre leder og sekretr
Hvis du/I har problemer, s prv frst at vende det med det andet par i jeres gruppe, fr I rkker hnden op og beder mig om hjlp22