22
Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C# 1 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 Tal af typen floating-point & decimal Simple typer i C# Steen Jensen, efterår 2013

Arkitekturen i computere & historisk udvikling + grundlæggende begreber i C#

  • 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