METODER ARV KLASSER. Grundlæggende programmering Lektion 5
|
|
- Sandra Frank
- 6 år siden
- Visninger:
Transkript
1 METODER KLASSER ARV Grundlæggende programmering Lektion 5 1
2 METODER Sekvenser af kode om samme emne 2
3 REPETITION Række af statements der udfører en handling Mindst én metode der hedder main Forskellen på en funktion og en metode Funktion er det proces-orienterede navn, metode er OO navnet. Da C # (og VB.NET) er objektorienterede sprog skal du bruge metode betegnelsen. I C # er er de indbyrdes udskiftelige (selvom metode er den korrekte betegnelse), fordi du ikke kan skrive en metode uden inkorporere det i en klasse. Hvis den var uafhængig af en klasse, så ville den være en funktion. Metoder er funktioner, der opererer gennem en udpeget klasse. 3
4 METODER Rekursive metode kald En metode kan kalde sig selv. Dette er kendt som rekursion. Følgende er et eksempel, som beregner fakultetet for et givet tal ved hjælp af en rekursiv funktion: 4
5 METODER USING using direktivet giver også mulighed for aliasing af et namespace eller type. Et alias er et alternativt navn, som man kan bruge i teksten som direktivet påvirker. De to mest almindelige årsager til aliasing er til at kende forskel på to typer, der har det samme navn og til at forkorte et langt navn. 5
6 METODER USING 6
7 METODER MAIN Main metode er indgangen til en C # konsol applikation eller et Windows-program. (Biblioteker og tjenester kræver ikke en Main metode som indgang.). Når programmet startes er Main metoden den første metode, der invokes. Main metode er indgangen i et.exe program; det er hvor program styring starter og slutter. Main erklæres inde i en klasse eller struct. Main skal være static, og den bør ikke være offentlig. Den omsluttende klasse eller struct er ikke forpligtet til at være statisk. Main kan enten have en void eller int return type. Main metoden kan erklæres med eller uden en string [] parameter, der indeholder kommandolinjeargumenter. Når du bruger Visual Studio til at oprette Windows Forms applikationer, kan du tilføje parameteren manuelt eller andre bruge Environment klassen til at få fat i kommandolinjeargumenter. Parametre læses som nul-indekserede kommandolinjeargumenter. I modsætning til C og C ++, er navnet på programmet ikke behandlet som det første kommando-line argument. 7
8 METODER MAIN Main metode er indgangen til en C # konsol applikation eller et Windows-program. (Biblioteker og tjenester kræver ikke en Main metode som indgang.). Når programmet startes er Main metoden den første metode, der invokes. Main metode er indgangen i et.exe program; det er hvor program styring starter og slutter. Main erklæres inde i en klasse eller struct. Main skal være static, og den bør ikke være offentlig. Den omsluttende klasse eller struct er ikke forpligtet til at være statisk. Main kan enten have en void eller int return type. Main metoden kan erklæres med eller uden en string [] parameter, der indeholder kommandolinjeargumenter. Når du bruger Visual Studio til at oprette Windows Forms applikationer, kan du tilføje parameteren manuelt eller andre bruge Environment klassen til at få fat i kommandolinjeargumenter. Parametre læses som nul-indekserede kommandolinjeargumenter. I modsætning til C og C ++, er navnet på programmet ikke behandlet som det første kommando-line argument. 8
9 METODER MAIN 9
10 METODER 10
11 KLASSER Kode der gør ting 11
12 KLASSER Klasser og objekter og objekter lavet ud fra dem er hvad der gør C# til et objekt orienteret programmerings sprog. Når man definerer en klasse definere en man en plan for en datatype. Dette definerer faktisk ikke nogen data, men det definerer, hvad klasse navnet betyder. Det vil sige, hvilket objekt klassen består af og hvilke operationer der kan udføres på det pågældende objekt. Objekter er instanser af en klasse. De metoder og variabler, der udgør en klasse, kaldes medlemmer af klassen. En klasse er en skabelon for hvordan et objekt vil se ud på instantiering tidspunktet. Et objekt er derfor en instans af en klasse. Det at lave et objekt fra en klasse kaldes derfor instantiation. 12
13 KLASSER En klasse definition starter med keyword class efterfulgt af navnet på klassen og klassens krop indesluttet af et par krøllede parenteser. <access specifier> class class_name { // member variables <access specifier> <data type> variable1; <access specifier> <data type> variable2;... <access specifier> <data type> variablen; // member methods <access specifier> <return type> method1(parameter_list) { // method body } <access specifier> <return type> method2(parameter_list) { // method body }... <access specifier> <return type> methodn(parameter_list) { // method body } } 13
14 KLASSER Noter: Access specifiers angiver adgangs-reglerne for medlemmerne såvel som klassen selv. Hvis den ikke er angivet er standard access specifier for klasse typen internal. Standard adgang for members er private. Data type angiver variabel typen, og return type angiver typen af data som metoden sender tilbage, hvis nogen. For at tilgå klasse medlemmer bruger man punktum (.) operatoren. Punktum operatoren forbinder navnet på et objekt med navnet på et medlem. 14
15 KLASSER ENCAPSULATION Medlems variabler, funktioner og indkapsling Et af de vigtigste aspekter af objektorienteret design er den gruppering af data der giver struktur. Det generelle objektorienteret betegnelse for en variabel, der gemmer data inden en klasse er medlems variabel (member variable). Dette udtryk er velkendt i C #, men en mere standard betegnelse er felt (field), som er en navngivet lagerenhed tilknyttet indeholdende type. Et medlems funktion af en klasse er en funktion, der har sin definition eller dets prototype af definitionen i klassen ligesom enhver anden variabel. Det fungerer på ethvert objekt af klassen, som den er medlem af, og har adgang til alle medlemmer af en klasse for dette objekt. Medlems variablerne variabler er attributter af et objekt (fra et design perspektiv), og de holdes private for at implementere indkapsling. Disse variabler kan kun tilgås ved hjælp af de offentlige medlem funktioner (public member functions). 15
16 KLASSER 16
17 KLASSER CONSTRUCTORS En klasse constructor er en særlig member function af en klasse der udføres hver gang vi laver ny objekter af klassen. En constructor har det præcist same navn som klassen og ingen return type. 17
18 KLASSER CONSTRUCTORS En default constructor har ikke nogen parameter, men hvis man ønsker det kan en constructor have det. Sådanne constructors kaldes parameterized constructors. Denne teknik hjælper dig med at tildele oprindelige værdier til et objekt ved tidspunktet for dets oprettelse. 18
19 KLASSER ACCESS MODIFIERS Indkapsling Access modifiers identificerer niveauet for indkapsling forbundet med medlemmet (member) de hører til. De findes fem access modifiers: Public Protected Internal Protected internal Private 19
20 KLASSER ACCESS MODIFIERS Public Hvis et member eller en type har public access modifier har det det mest eftergivende adgangsniveau. Der er ingen restriktioner på adgang til public members. Protected En beskyttet medlem er tilgængeligt inden for sin klasse og ved afledte klasse instanser. Internal Adgangen er begrænset til det aktuelle assembly (f.eks. samme fil). 20
21 KLASSER ACCESS MODIFIERS Protected internal Adgangen er begrænset til det aktuelle assembly eller typer afledt af den indeholdende klasse. Private Private access er det mindst eftergivende adgangsniveau. Private medlemmer er kun tilgængelige i kroppen af klassen eller struct, hvor de er blevet erklæret. 21
22 KLASSER DESTRUCTORS En destructor er en særlig medlems funktion af en klasse, der udføres, når en genstand i sin klasse går ud af scope. En destructor har nøjagtig samme navn som klassen med en foranstillet tilde (~). Destructor kan være meget nyttig for at frigive hukommelses ressourcer før du afslutter programmet Destructors kan ikke defineres i structs. De anvendes kun med klasser. En klasse kan kun have én destructor. Destructors kan ikke arves eller overbelastet. Destructors kan ikke kaldes. De bliver automatisk kaldt Destructor har ikke nogen værdi. En destructor tager ikke imod modifikatorer eller har parametre. 22
23 KLASSER DESTRUCTORS 23
24 KLASSER STATIC Vi kan definere klasse members som statiske ved hjælp af static nøgleordet. Når vi erklærer et medlem af en klasse som statisk, betyder det ligegyldigt hvor mange objekter af klassen der er lavet, der er kun én kopi af det statiske element. Statiske variabler anvendes til at definere konstanter, fordi deres værdier kan hentes ved at påberåbe klassen uden at oprette en instans af det. Statiske variabler kan initialiseres udenfor medlems funktioner eller klasse definitioner. Man kan også initialisere statiske variabler inde i klassen definitionen. 24
25 KLASSER STATIC 25
26 KLASSER STRUCTS Structs er defineret af struct nøgleordet, for eksempel: public struct PostalAddress { // Fields, properties, methods and events go here... } Structs deler det meste af syntaks med klasser, selv om structs er mere begrænset end klasser: Inden for en struct erklæring, kan felterne ikke initialiseres, medmindre de angives som const eller static. En struct kan ikke erklære en standard-constructor (en konstruktør uden parametre) eller en destructor. Structs kopieres ved assignment. Når en struct tildeles en ny variabel bliver al data kopieret, og enhver ændring til den nye kopi ændrer ikke data for den originale kopi. Det er vigtigt at huske, når du arbejder med samlinger af værdi typer såsom Dictionary <string, mystruct>. Structs er værdi typer og klasser er referencetyper. 26
27 KLASSER STRUCTS I modsætning til klasser kan structs instantieres uden brug af en ny operator. Structs kan erklære konstruktører, der har parametre. En struct kan ikke arve fra en anden struct eller klasse, og den kan ikke danne basis for en klasse. Alle structs arver direkte fra System.ValueType, som arver fra System.Object. En struct kan implementere grænseflader. En struct kan bruges som en nullable type og kan tildeles en null-værdi. 27
28 KLASSER STRUCTS 28
29 KLASSER 29
30 ARV Et program der benytter Unity til at lave et 3D spil 30
31 ARV En af de vigtigste begreber i objektorienteret programmering er arv. Arv giver os mulighed for at definere en klasse i form af en anden klasse, hvilket gør det lettere at oprette og vedligeholde en applikation. Dette giver også mulighed for at genbruge kodens funktionalitet og fremskynder dermed implementeringstid. Når man opretter en klasse, i stedet for at skrive helt nye data medlemmer og medlems funktioner, kan man udpege, at den nye klasse skal arve medlemmerne fra en eksisterende klasse. Denne eksisterende klasse kaldes base klasse eller forælder, og den nye klasse betegnes som den afledte klasse eller barn. Ideen om arv implementerer IS-A relationer. F.eks er pattedyret IS-A dyr, hund IS-A pattedyr dermed er hund IS-A dyr også, og så videre. 31
32 ARV En klasse kan være afledt af mere end én klasse eller grænseflade, hvilket betyder, at det kan arve data og funktioner fra flere base klasser eller interfaces. En normal forælder-barn / base-afledt struktur kan illustreres sådan: <acess-specifier> class <base_class> {... } class <derived_class> : <base_class> {... } 32
33 ARV 33
34 ARV Den afledte klasse arver basisklassens medlemsvariabler og medlems metoder. Derfor bør super klasse objektet laves før underklassen oprettes. Du kan give instruktioner til superklassens initialisering i medlemmets initialiserings liste. 34
35 ARV ABSTRAKTE KLASSER Abstrakte klasser er kun designet til afledning. Det er ikke muligt at instantiere en abstrakt klasse, undtagen i forbindelse med at instantiere en klasse, der stammer fra den. Klasser, der ikke er abstrakte og i stedet kan instantieres direkte er konkrete klasser. Abstrakte klasser repræsenterer abstrakte entities. Deres abstrakte medlemmer definerer hvad en genstand afledt af en abstrakt enhed skal indeholde, men de omfatter ikke implementeringen. Abstrakte klasser har følgende egenskaber: En abstrakt klasse kan ikke instantieres. En abstrakt klasse kan indeholde abstrakte metoder og adgangsmetoder (accessors). Det er ikke muligt at ændre en abstrakt klasse med det sealed modifier, fordi de to modifers har modsatte betydninger. Sealed modifieren forhindrer en klasse i at blive arvet og den abstrakte modifier kræver at en klasse skal være nedarvet. En ikke-abstrakte klasse afledt fra en abstrakt klasse skal indeholde konkrete implementeringer af alle nedarvede abstrakte metoder og accessors. 35
36 ARV ABSTRAKTE KLASSER 36
37 ARV POLYMORFISME Ordet polymorfisme betyder at have mange former. I objektorienteret programmering paradigme, er polymorfi ofte udtrykt som 'en grænseflade, flere funktioner'. Polymorfi kan være statisk eller dynamisk. I statisk polymorfi fastsættes reaktionen på en funktion ved kompilerings tidspunktet. I dynamisk polymorfi bliver den besluttet ved runtime. 37
38 ARV POLYMORFISME Statisk polymofisme Mekanismen med at koble en funktion med en genstand under kompileringen kaldes tidlig binding (early binding). Det kaldes også statisk binding. C# har to teknikker til at gennemføre statisk polymorfi. De er: Funktions overbelastning (function overloading) Operat0r overbelastning (operator overloading) 38
39 ARV POLYMORFISME Statisk polymofisme- Funktions overbelastning Man kan have flere definitioner for det samme funktions navn i samme scope. Definitionen af funktionen skal afvige fra hinanden gennem typer og/eller antallet af argumenter i argument listen. Du kan ikke overbelaste funktionserklæringer som kun adskiller sig ved return type. Det følgende eksempel bruger funktionen print() til at vise forskellige data typer. 39
40 Statisk polymofisme- Funktions overbelastning ARV POLYMORFISME 40
41 ARV POLYMORFISME Statisk polymorfisme- Operator overbelastning Du kan omdefinere eller overbelaste de fleste af de indbyggede operatorer til rådighed i C#. Således kan man også bruge operatorer med brugerdefinerede typer. Overbelastede operatører er funktioner med særlige navne: nøgleordet operator efterfulgt af symbolet for operatoren der defineres. Ligesom andre funktioner har en overbelastet operatør en return type og en parameter liste. public static Box operator+ (Box b, Box c) { Box box = new Box(); box.length = b.length + c.length; box.breadth = b.breadth + c.breadth; box.height = b.height + c.height; return box; } Ovenstående funktion implementerer additions operat0ren (+) til en brugerdefineret klasse Box. Det tilføjer attributterne for to Box objekter og returnerer det resulterende Box objekt. 41
42 ARV POLYMORFISME Dynamisk polymorfisme Dynamisk polymorfi implementeres af abstrakte klasser og virtuelle funktioner. Når du har en funktion defineret i en klasse, som du ønsker skal gennemføres i en nedarvet klasse(r), benytter man virtuelle funktioner. De virtuelle funktioner kan gennemføres forskelligt i de forskellige nedarvede klasser, og kald til disse funktioner vil blive afgjort ved runtime. 42
43 Dynamisk polymorfisme ARV POLYMORFISME 43
44 Dynamisk polymorfisme ARV POLYMORFISME 44
45 ARV 45
46 LEKTIE Kig på dette til næste gang 46
47 LEKTIE Se og løs opgaverne til Læs: og 47
48 KILDER Materiale benyttet i denne lektion Noget af det er udover pensumlisten! 48
49 KILDER Klasser
50 KILDER Arv ding.htm 50
Metoder Klasser Arv. Operatorer Løkker. Praksis eksempel. Grundlæggende programmering Lektion 3
Praksis eksempel Operatorer Løkker Metoder Klasser Arv Grundlæggende programmering Lektion 3 Praksis eksempel Et program der benytter Unity til at lave et 3D spil Praksis eksempel Spil der benytter Unity
Læs mereLØKKER METODER C S HISTORIE. Grundlæggende programmering Lektion 4
LØKKER METODER C S HISTORIE Grundlæggende programmering Lektion 4 1 LEKTIER UML struktur diagrammer om biler 2 OPERATORER Syntaks til at udføre forskellige beregninger og handlinger Booleans og hvorfor
Læs mereUgeseddel 4 1. marts - 8. marts
Ugeseddel 4 1. marts - 8. marts Læs følgende sider i kapitel 6 i lærebogen: s. 233 258 og s. 291 317 (afsnit 6.3 overspringes). Begynd at overveje, hvad afleveringsopgaven skal omhandle. Læs vejledningen,
Læs mereUsikker kode. Windows Forms. Grundlæggende programmering Lektion 7
Eksempel Sikker kode Opgaver Usikker kode Windows Forms Grundlæggende programmering Lektion 7 Eksempel Hent lesson7example.cs fra Fronter Eksempel Joins er en af de essentielle database operationer, hvor
Læs mereLektion 4. Grundlæggende programmering i VR
Lektion 4 Grundlæggende programmering i VR Plan for i dag Simpelt FPS C# og objekt orienteret programmering Metoder Loops / løkker Random Vi koder 3D uden modeller Simpelt FPS Træk kuglen fra hierarkiet
Læs mereKlasser og objekter. (Afsnit i manualen)
Klasser og objekter (Afsnit 4 + 5 i manualen) Grundbegreber Klasser og objekter beskrivelse oprettelse Attributter og metoder tilstand opførsel Indkapsling afskærmning datarepræsentationsuafhængighed Klasser
Læs mereSoftware Construction 1 semester (SWC) Spørgsmål 1
Spørgsmål 1 Objekter #1 Giv en kort præsentation af begrebet objekt, samt hvorledes du erklærer(declare), opretter(create) og bruger objekter Du kan beskrive o Datatyper o Variable / Instans variable /
Læs mere30 Objekt-orienteret Programmering i Andre Sprog.
30 Objekt-orienteret Programmering i Andre Sprog. Abstrakte datatyper i Pascal. Abstrakte datatyper i Modula og Ada. C++ Overordnet organisering Instantiering og initialisering. Interfaces. Nedarvning.
Læs mereSWC eksamens-spørgsmål. Oversigt
SWC eksamens-spørgsmål Oversigt #1 Typer og variable #2 Aritmetik og logik #3 Klasser (definition, objekter) #4 Klasser (metoder) #5 Klasser (nedarvning, polymorfi) #6 Conditional statements #7 Repetition
Læs mereSoftware Construction 1. semester (SWC) januar 2014 Spørgsmål 1
Spørgsmål 1 Grundlæggende objektorienterede begreber o Klasse (class) o Objekt (object) o Metode (method), herunder return type og parametre o Instansvariable (instance variables) & egenskaber (properties),
Læs mereSWC Elementer i klassedefinition
SWC Elementer i klassedefinition Indhold Eksempel... 2 Karakteristika for en klasse... 3 Karakteristika for et instance field... 4 Karakteristika for en constructor... 5 Karakteristika for en property...
Læs mereVideregående Programmering for Diplom-E Noter
Videregående Programmering for Diplom-E Noter 1. Uddelegering Ét af de væsentlige principper i objektorienteret programmering er, at enhver klasse selv skal kunne "klare ærterne". Enhver klasse skal altså
Læs mereATTRIBUTES MULTITHREADING DYNAMIC PROGRAMMING. Grundlæggende programmering Lektion 11
ATTRIBUTES DYNAMIC PROGRAMMING MULTITHREADING Grundlæggende programmering Lektion 11 1 ATTRIBUTES Information om adfærd 2 ATTRIBUTES En attribut er en deklarativ tag, der bruges til at formidle information
Læs mereLektion 6. Grundlæggende programmering i VR
Lektion 6 Grundlæggende programmering i VR Plan for i dag Simpelt FPS Triggerzones og animationer C# og objekt orienteret programmering Interfaces Generics Google Cardboard Video om VRs fremtid App til
Læs mereWINDOWS FORMS EVENTS INTERAGEREN MED FIL SYSTEMET. Grundlæggende programmering Lektion 9
EVENTS INTERAGEREN MED FIL SYSTEMET WINDOWS FORMS Grundlæggende programmering Lektion 9 1 EVENTS Der sker ting når der sker ting 2 EVENTS Events er brugerhandlinger såsom tastetryk, klik, musebevægelser,
Læs mere4 Basal Objekt-orienteret Programmering I.
4 Basal Objekt-orienteret Programmering I. Klasser i forhold til abstrakte datatyper og record-typer. Variable og operationer. Klasse-interfaces. Klasser og typer. Klasse-instantiering og initialisering.
Læs mereAbstrakte datatyper C#-version
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Abstrakte datatyper C#-version Finn Nordbjerg 1/9 Abstrakte Datatyper Denne note introducerer kort begrebet abstrakt datatype
Læs mereKursus i OOP og Java. Kursus i Objektorienteret programmering i Java
Kursus i OOP og Java Kursus i Objektorienteret programmering i Java Åben Dokumentlicens Dette foredragsmateriale er under Åben Dokumentlicens (ÅDL) Du har derfor lov til frit at kopiere dette værk Bruger
Læs mereTree klassen fra sidste forelæsning
Programmering 1999 Forelæsning 12, fredag 8. oktober 1999 Oversigt Abstrakte klasser. Grænseflader. Programmering 1999 KVL Side 12-1 Tree klassen fra sidste forelæsning class Tree { int age; // in years
Læs mereObjektorienteret design med arv og polymorfi:
Note til Programmeringsteknologi Akademiuddannelsen i Informationsteknologi Objektorienteret design med arv og polymorfi: Substitutionsprincippet Composite Design Pattern Finn Nordbjerg Side 1 Objektorienteret
Læs mereObjektorienteret Programmering
Objektorienteret Programmering Struktureret Systemudvikling Jan Bendtsen Automation and Control Indhold Lidt om programmeringssprog Klasser i Java Klasser i C++ Oversættelse og kørsel af kode Et eksempel:
Læs mereDvs. at give dit program muligheden for at loade og bruge plugins som andre har lavet.
Denne guide er oprindeligt udgivet på Eksperten.dk Refleksion med.net Refleksion bruges til at undersøge klasser på runtime tidspunktet. Se hvordan du f.eks. loader en klasse fra en DLL, gennemkigger dens
Læs mereKlasser og Objekter i Python. Uge 46 Learning Python: kap 15-16, 19-22.
Klasser og Objekter i Python Uge 46 Learning Python: kap 15-16, 19-22. Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. En kage form Klassens
Læs mereclass Time { int hours, min; } } Time t1; // Erklær variabel af type Time class Time1 { public static void main(string[] args) { Time t1; t1.
Programmering 1999 Forelæsning 4, fredag 10. september 1999 Klasser og objekter Felter, konstruktorer, this Eksempler på klasser: Time, Appointment Eksempler på metoder i Time og Appointment Klassefelter:
Læs mereHvad er Objekter - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Hvad er Objekter - Programmering En rigtig god gennemgang af hvad objekter er! Hvordan de oprettes og anvendes! Det er helt klart til nybegyndere, som
Læs mereMapBasic &.NET interaktion. MapBasic.NET. Jakob Lanstorp IT konsulent COWI. Odense 23. Juni 2011. 1 8 jun 2011 MapBasic &.
MapBasic &.NET interaktion MapBasic.NET Jakob Lanstorp IT konsulent COWI Odense 23. Juni 2011 1 MapBasic &.NET interaktion Erfaring med MapBasic.NET / Visual Studio Anden programmering 2 Program Hurtig
Læs mereAAU, Programmering i Java Intern skriftlig prøve 18. maj 2007
AAU, Programmering i Java Intern skriftlig prøve 18. maj 2007 Opgavebesvarelsen skal afleveres som enten en printerudskrift eller som et passende dokument sendt via email til fjj@noea.dk. Besvarelsen skal
Læs mereLektion 2. Grundlæggende programmering i VR
Lektion 2 Grundlæggende programmering i VR Plan for i dag Introduktion til Unity Vi laver vores første programmer Introduktion til C# Vi koder vores første af meget få ting uden Unity Behandling af data
Læs mereclass subklasse-navn extends superklasse-navn { } NorwaySpruce har superklassen Spruce, som igen har superklassen Tree.
Programmering 1999 Forelæsning 11, tirsdag 5. oktober 1999 Oversigt Klasse-hierarkier: superklasser og subklasser Nedarvning Polymorfi Programmering 1999 KVL Side 11-1 Hierarkier En klasse repræsenterer
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 20. marts, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDebugging ivs. Praksis eksempel. Assemblies Attributes Dynamic programming. Github. Multithreading. Grundlæggende programmering Lektion 6
Praksis eksempel Assemblies Attributes Dynamic programming Multithreading Debugging ivs Github Grundlæggende programmering Lektion 6 Praksis eksempel ShareX, et skærm-optager program ShareX er et gratis
Læs merePolymorfi. Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type. Coercion
Polymorfi Arv (inheritance) Abstrakte klasser, substitutionsprincippet, overriding, statisk og dynamisk type Coercion Tvangskonvertering (forfremmelse og begrænsning) Oversigt Abstrakt klasse abstrakt
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2018 Projekt, del II Institut for matematik og datalogi Syddansk Universitet 13. marts, 2018 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSingleton pattern i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i Java Denne artikel beskriver Singleton pattern og implementation i Java. Den forudsætter kendskab til Java men ikke til Singleton.
Læs mereForelæsning Uge 1 Torsdag
Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige
Læs mereUdvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Abstrakte klasser.
10 Nedarvning I. Udvidelse og specialisering. Klassehierarkier. Nedarvningsterminologi. Interfaces. Statiske og dynamiske typer. Polymorfi. Dynamisk binding og virtuelle operationer. Decentraliseret/centraliseret
Læs mereBlogReader 1.0.0 Af Jonas F. Jensen.
BlogReader 1.0.0 Af Jonas F. Jensen. Indholdsfortegnelse Forord.....3 Hvad er BlogReader?......4 RSS, XML og sematic web......4 Klasse struktur i UML......4 Overordnet opbygning......5 UML diagram over
Læs mereIt og informationssøgning Forelæsning oktober 2006 Jakob Grue Simonsen. Klasser
It og informationssøgning Forelæsning 7 25. oktober 2006 Jakob Grue Simonsen Klasser Downey, Elkner & Meyers: Chapt. 12-14 Andersen & Simonsen: kap. 7 Vi har tidligere set, at Python tilbyder en række
Læs mereKlasser. Grundlæggende Programmering med Projekt. Peter Sestoft Tirsdag 2. september 2008. (Tak til Jakob Bardram for nogle slides) Dagens begreber
Klasser Grundlæggende Programmering med Projekt Peter Sestoft Tirsdag 2. september 2008 (Tak til Jakob Bardram for nogle slides) Dagens begreber Felt (field) Metode (method) Parameter (parameter) Sætning,
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter side 1 af 9 sider Skriftlig eksamen i Datalogi Modul 1 Vinter 1999/2000 Opgavesættet består af 6 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 5% Opgave 2
Læs mereRename og redefine. Abstrakte klasser. Dynamisk binding.
11 Nedarvning II. Enkeltnedarvning i Eiffel. Rename og redefine. Initialisering af superklasse-dele af et objekt. Interfaces til klienter og subklasser. Typesammenlignelighed og polymorfi. Abstrakte klasser.
Læs mereSingleton pattern i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Singleton pattern i C# Denne artikel beskriver Singleton pattern og implementation i C#. Den forudsætter kendskab til C# men ikke til Singleton. Der er
Læs mereAnvendelse af metoder - Programmering
Denne guide er oprindeligt udgivet på Eksperten.dk Anvendelse af metoder - Programmering En forhåbentlig rigtig god forklaring på hvad metoder er og hvordan de anvendes. Lidt om private og public, retur
Læs mereIntroduktion til ActionScript, fortsat
Introduktion til ActionScript, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net i n t e r a c t i v e s p a c e s. n e t Kaspar Nielsen, kaspar@interactivespaces.net 1 Dagens program Opsamling
Læs mereCodeDOM - Dynamisk generering og kompilering af kode
Denne guide er oprindeligt udgivet på Eksperten.dk CodeDOM - Dynamisk generering og kompilering af kode Med CodeDOM kan man på runtime generere kode, kompilere det og derefter afvikle det. I denne artikel
Læs mereForelæsning Uge 1 Torsdag
Forelæsning Uge 1 Torsdag Objekters tilstand og opførsel Java og BlueJ Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Java's for løkke Parametre i metoder Forskellige
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Objekters tilstand og opførsel BlueJ og Greenfoot Java Skabelse af objekter (via new-operatoren) Iteration (gentagelser) og parametrisering Forskellige slags variabler Afleveringsopgave:
Læs mereEksempel: Skat i år 2000
Kursus 02199: Programmering afsnit 2.1-2.7 Anne Haxthausen IMM, DTU 1. Værdier og typer (bl.a. char, boolean, int, double) (afsnit 2.4) 2. Variable og konstanter (afsnit 2.3) 3. Sætninger (bl.a. assignments)
Læs mereLær Python - Dag 4, modul 2 Objektorienteret programmering
Lær Python - Dag 4, modul 2 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Metoder Metoder Indtil videre har vi kun brugt objekter til at gemme værdier.
Læs mere29 Opsamling af Objekt-orienteret Programmering.
29 Opsamling af Objekt-orienteret Programmering. Bottom-up kontra top-down design. "The shopping list approach". Hvordan finder man på objekterne. Klasser og dataabstraktion. Klasse interface og interface-teknikker.
Læs mereScripting. Opslag til (Vol. D. Dahlerup. Bemærk. Anvendte bøger: "Sams. og proteiner.
Bioinformatisk C++ Scripting i Xubuntu Vol. 2 Opslag til Dybdegående Bioinformatisk Scripting i Xubuntu 12.10 (Vol. 2) Henrik D. Dahlerup, Maj 2015 kontakt: henrik@ddahlerup.com Anvendte bøger: "Sams Publishing"-books.
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2016 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 29. februar, 2016 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2019 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 27. februar, 2019 Dette projekt udleveres i tre dele. Hver del har sin deadline, således
Læs mereSpecifikation Abstrakt OO OS-API Rev. 1.7. Specifikation. Abstrakt, objektorienteret operativsystem-api
Specifikation Abstrakt, objektorienteret operativsystem-api Indhold 1 Indledning... 3 1.1 Introduktion... 3 1.2 Formål... 3 1.3 Overordnede krav... 3 2 Ressourcer i OS-API et... 4 2.1 Tråde... 4 2.2 Timere...
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (i mandags) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereIntroduction til.net remoting i C#
Denne guide er oprindeligt udgivet på Eksperten.dk Introduction til.net remoting i C# Denne artikel beskriver teorien bag.net remoting og viser nogle simple kode eksempler i C#. Den forudsætter kendskab
Læs merePython programmering. Per Tøfting. MacFest
Python programmering MacFest 2005 Per Tøfting http://pertoefting.dk/macfest/ Indhold Måder at afvikle Python program på Variabler Data typer Tal Sekvenser Strenge Tupler Lister Dictionaries Kontrolstrukturer
Læs mereLær Python - Dag 4, modul 1 Objektorienteret programmering
Lær Python - Dag 4, modul 1 Objektorienteret programmering Simon J. Larsen 28. oktober 2017 Institut for Matematik og Datalogi Objektorienteret programmering Hvad er objektorienteret programmering? Vi
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 10/ Klasser og nedarvning
Datalogi OB, Efterår 2002 OH er, forelæsning 10/9-2002 Klasser og nedarvning Hvad er formålet? Typer, generisk kode, typeparameterisering Kritisk kig på, hvordan man gør i Java. Eftermiddagens opgave:
Læs mereKlasser og Objekter i Python. Uge 11
Klasser og Objekter i Python Uge 11 Klasser og objekter En klasse beskriver en klump af samhørende funktioner og variable En klasse er en beskrivelse. Klassens objekter er instanser af klassen. En programudførelse
Læs mereReal-time programming safety in Java and Ada
Real-time programming safety in Java and Ada Bo Sandén Presenter: Thomas Bøgholm 25. oktober 2007 Forfatteren Artiklen Synkroniserings Begreber Bo Sandén Professor på Colorado Technical University Beskæftiger
Læs mereIntroduktion til funktioner, moduler og scopes i Python
Denne guide er oprindeligt udgivet på Eksperten.dk Introduktion til funktioner, moduler og scopes i Python Denne artikel er fortsættelsen af "I gang med Python", som blevet publiceret her på sitet for
Læs mereStudiepraktik. Thomas Bøgholm Mikkel Hansen Jacob Elefsen
Studiepraktik Thomas Bøgholm boegholm@cs.aau.dk Mikkel Hansen mhan@cs.aau.dk Jacob Elefsen jelefs12@student.aau.dk 1 Studiepraktik -- program Program onsdag 10.00 10.15 Registrering af fremmøde og gennemgang
Læs mereDatalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 - forstå datastrukturer og algoritmer (teoretisk forståelse og intuition)
Datalogi OB, Efterår 2002 OH er, forelæsning 3/9-2002 Datastrukturer og algoritmer Henning Christiansen henning@ruc.dk http://www.ruc.dk/~henning Formål: at kunne - forstå datastrukturer og algoritmer
Læs mereProgrammering i C. Lektion 4. 5. december 2008
Programmering i C Lektion 4 5. december 2008 Funktioner Eksempel Fra sidst 1 Funktioner 2 Eksempel Funktioner Eksempel Eksempel: 1 / f u n k t i o n s p r o t o t y p e r / i n t i n d l a e s ( void )
Læs meredintprog Manual Revision: 1241 August 24, 2010 I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 1241 August 24, 2010 Indhold I Introduktion 3 1 Notation 3 II Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering 4 III Sprogkonstruktioner 5 4 Klasser
Læs mereEksamens spørgsmål Software Construction. Objekter. Spørgsmål 1: Januar Giv en beskrivelse af Objekt-begrebet og deres brug
Spørgsmål 1: Objekter Giv en beskrivelse af Objekt-begrebet og deres brug Under eksaminationen forventes du at forklare: Hvad er en type og en variabel? Hvordan erklæres en variabel? Hvad forstås ved en
Læs mereIntroduktion til Flash, fortsat
Introduktion til Flash, fortsat Kaspar Rosengreen Nielsen kaspar@interactivespaces.net Dagens program Opsamling på sidste forelæsning. Vi vil beskæftige os med følgende emner i dagens forelæsning: Komponenter
Læs mereForelæsning Uge 12 Torsdag
Forelæsning Uge 12 Torsdag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Klassevariabler og klassemetoder Levetid for variabler og parametre Virkefeltsregler Projektopgave Kaninjagt Lommeregner (for MAT studerende) Klassevariabler og klassemetoder
Læs meredintprog Manual Revision: 731 September 30, 2009 1 Introduktion 3 1.1 Notation... 3 I Begreber 4 2 Grundbegreber om programmering 4
dintprog Manual Revision: 731 September 30, 2009 Indhold 1 Introduktion 3 1.1 Notation................................. 3 I Begreber 4 2 Grundbegreber om programmering 4 3 Grundbegreber om modellering
Læs mereDANMARKS TEKNISKE UNIVERSITET
DANMARKS TEKNISKE UNIVERSITET Skriftlig prøve, 14. december 2018, 4 timer Side 1 af 18 Kursus navn: 02101 Indledende Programmering Kursus : 02101 Tilladte hjælpemidler: Ikke-digitale skriftlige hjælpemidler
Læs mereTest af It-komponent
Test af It-komponent I programmeringssproget Java Programmet Login service Elev: Mads Funch Klasse 2.4 Mat, It, Programmering Skole: Roskilde Tekniske Gymnasium HTX Underviser: Karl Dato: 31-08-2016 Side
Læs mereForelæsning Uge 4 Torsdag
Forelæsning Uge 4 Torsdag Algoritmeskabeloner findone, findall, findnoof, findsumof (sidste mandag) findbest Levetid for variabler og parametre Virkefeltsregler Hvor kan man bruge de forskellige variabler?
Læs mereb) Udvid din implementation af forme til at understøtte.equals. To objekter af samme form er ens hvis de har samme værdier i felterne.
Exercise 1: Opgave 9.1 på CodeJudge. a) Lav klasserne Cirkel, Rektangel og Kvadrat, som implementerer vedhæftede interface From.java (se CodeJudge). Lav Rektangel før du laver Kvadrat. Kan du bruge nedarvning
Læs mereForelæsning Uge 12 Mandag
Forelæsning Uge 12 Mandag Protected access Alternativ til public og private Abstrakte klasser og interfaces En abstrakt klasse er en klasse, som man ikke kan lave instanser (objekter) af En abstrakt klasse
Læs mereForelæsning Uge 2 Mandag
Forelæsning Uge 2 Mandag Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Java syntax og style guide Afleveringsopgave:
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2013 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 5. marts, 2013 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereDesign by Contract Bertrand Meyer Design and Programming by Contract. Oversigt. Prædikater
Design by Contract Bertrand Meyer 1986 Design and Programming by Contract Michael R. Hansen & Anne Haxthausen mrh@imm.dtu.dk Informatics and Mathematical Modelling Technical University of Denmark Design
Læs mereI denne artikel vil vi bruge en User klasse som vi så vil gruppere på forskellige måder.
Denne guide er oprindeligt udgivet på Eksperten.dk Collections i.net Når du kigger i namespacet System.Collections finder du over 10 forskellige klasser. At vælge den rigtige til netop din applikations
Læs mereModuler i Standard ML
Moduler i Standard ML Hans Hüttel December 2001 I løbet af datalogikurset har vi haft glæde af en hel række forskellige standardmoduler som f.eks. Math, Int, Real og String. Disse moduler kan, har vi set,
Læs mereIntegrationsmanual. Anvendelse af webservice til kursusoversigt i Campus. Brugervejledning til udviklere
Integrationsmanual Anvendelse af webservice til kursusoversigt i Campus Brugervejledning til udviklere Moderniseringsstyrelsen Webservice manual til udviklere 2016 1 1. Indholdsfortegnelse Nyt kapitel
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM503 Forelæsning 11
DM503 Forelæsning 11 Generics Pakker Exceptions Indhold Generics Nedarvning og Generics Generics Nedarvning og Generics Husk Box fra sidst Generics public class Box {! private T object;! public void
Læs mereJacob Nordfalk. Ingeniørhøjskolen i København. Nykøbing F itvisioncenter 24. februar 2004
Genbrugelige komponenter og designmønstre i Java Jacob Nordfalk Ingeniørhøjskolen i København Nykøbing F itvisioncenter 24. februar 2004 Program Om Jacob Nordfalk introduktion (ikke-teknisk del) Komponentbaseret
Læs mereDatabase for udviklere. Jan Lund Madsen PBS10107
Database for udviklere Jan Lund Madsen PBS10107 Indhold LINQ... 3 LINQ to SQL og Arkitektur... 3 O/R designere... 5 LINQ Den store introduktion med.net 3.5 er uden tvivl LINQ(udtales link): Language-INtegrated
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Sommer 1999 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 15% Opgave 2 15% Opgave 3 8% Opgave
Læs mereForelæsning Uge 4 Mandag
Forelæsning Uge 4 Mandag Algoritmeskabeloner findone, findall, findnoof, findsumof Primitive typer (forfremmelse og begrænsning) Identitet versus lighed (for objekter, herunder strenge) Opfølgning på Skildpadde
Læs mereVirkefeltsregler i Java
Virkefeltsregler i Java int i; int k; Sequence s; int j; What s in a name? Brian spillede blændende i søndags! Skolen ligger i Viby Ring til Kirsten og sig at... Et navn fortolkes i en kontekst og konteksten
Læs mereSkriftlig eksamen i Datalogi
Roskilde Universitetscenter Skriftlig eksamen i Datalogi Modul 1 Vinter 1998/99 Opgavesættet består af 5 opgaver, der ved bedømmelsen tillægges følgende vægte: Opgave 1 16% Opgave 2 12% Opgave 3 10% Opgave
Læs mereKursusarbejde 3 Grundlæggende Programmering
Kursusarbejde 3 Grundlæggende Programmering Arne Jørgensen, 300473-2919 klasse dm032-1a 21. november 2003 Indhold 1. Kode 2 1.1. forestillinger.h............................................. 2 1.2. forestillinger.cc.............................................
Læs mereForelæsning Uge 2 Torsdag
Forelæsning Uge 2 Torsdag Java syntax og style guide Sætninger Simple sætninger (assignment, interne og eksterne metodekald) Sammensatte sætninger (blok, selektion, gentagelse) Udtryk og operatorer Brug
Læs mereProgrammering 1999 KVL Side 5-4. Klassen Time: metoder. Metoder i objektet giver mulighed for at ændre tilstanden, eller kigge på tilstanden.
Programmering 1999 Forelæsning 5, tirsdag 14. september 1999 Oversigt Mere om klasser og objekter Klassefelter: static Konstante felter: final Indkapsling og synlighed: private og public Overlæsning af
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 4
DM502 Forelæsning 4 Flere kontrolstrukturer for-løkke switch-case Metoder Indhold Arrays og sortering af arrays String-funktioner for-løkke Ofte har man brug for at udføre det samme kode, for en sekvens
Læs mereUniversity of Southern Denmark Syddansk Universitet. DM502 Forelæsning 6
DM502 Forelæsning 6 Klasser og objekter Introduktion Math-klassen Indhold Klasser vs. objekter Først et tænkt eksempel: Vi vil lave en bil i Java 1. spørgsmål: Hvad karakteriserer en bil? Model År Farve...
Læs mereDM507 Algoritmer og datastrukturer
DM507 Algoritmer og datastrukturer Forår 2015 Projekt, del I Institut for matematik og datalogi Syddansk Universitet 3. marts, 2015 Dette projekt udleveres i to dele. Hver del har sin deadline, således
Læs mereThreads i Java. Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java
Denne guide er oprindeligt udgivet på Eksperten.dk Threads i Java Denne artikel giver en introduktion til threads i Java. Den beskriver hvad tråde er og forklarer hvordan de bruges i Java Den forudsætter
Læs mereLær Python dag 1 - modul 1
Lær Python dag 1 - modul 1 Introduktion, basis python Steffen Berg Klenow Jonas Bamse Andersen Syddansk Universitet Indhold 1. Velkommen 2. Programmering i python 3. Typer, variabler og udtryk 1 Velkommen
Læs mereGrundlæggende Programmering ITU, Efterår 1999. Skriftlig eksamen i Grundlæggende Programmering
Skriftlig eksamen i Grundlæggende Programmering ITU, 20. januar 2000 Alle hjælpemidler tilladt, dog ikke datamat. Eksamen er skriftlig, fire timer, og bedømmes efter 13-skalaen. Opgavesættet består af
Læs mereProgrammering for begyndere Lektion 2. Opsamling mm
Lektion 2 Opsamling mm God tone Der er indlagt spørge sessioner Lektion 2 - Agenda Programmering for Lidt ændringer til teknikken, herunder hvordan du genser en lektion Lidt generelle tilbagemeldinger
Læs mereVideregående programmering i Java
Videregående programmering i Java Dag 6 Komponenter (og lidt Swing og MVC) Læsning: VP 4, evt. VP 6 Dette materiale er under Åben Dokumentlicens, se http://www.sslug.dk/linuxbog/licens.html Grafiske komponenter
Læs mere