Hvad er klasser?

Tags:    c#

<< < 12 > >>
Hej.

Jeg er i gang med: "Grundlæggende programmering i C#", af Henrik Tange.
Han har vist nok forklaret hvad klasser(class) er, men forstod ikke noget af det :S

Så hvad er klasser?
Gerne et svar der er på rigtig "dansk":D




Hej Andreas,

http://da.wikipedia.org/wiki/Klasse_(datalogi)

Med venlig hilsen
Ieet





Har læst det igennem, og forstod det nogenlunde.
Er det er ikke en der er rigtig flink og lave en simpel kode, hvor man tydeligt kan se hvad en klasse gør.
Også gerne en forklaring der skåret ud i pap.



En klasse er basalt bare en repræsentation af et objekt. En slags "blueprint" for et objekt, som beskriver dens handlinger og egenskaber. Et objekt er jo så en abstaktion af et eller andet, typisk fra den virkelige verden.

Fold kodeboks ind/udCSharp kode 


Her er Kør og Stop to handlinger (eller med den rette terminologi, metoder/methods) og Hjul er en egenskab (kaldet en property). _hjul derimod er et felt (eller field), som bare agerer datalager for vores egenskab, Hjul.
Det her er så vores "blueprint" for eventuelle Bil objekter vi har lyst til at skabe:

Fold kodeboks ind/udCSharp kode 




Hej igen.

Så class er "navnet" på det man arbejder med.

F.eks en lommeeregner kunne se sådan ud:

Fold kodeboks ind/udCSharp kode 


Har lige skrevet en kode hvor den meldte en fejl(kan ikke lige huske hvad det var for en fejl).
Da jeg så sammenlignede min kode med den i bogen, kunne jeg se at den eneste fejl var, at class navnet skulle ændres, så det passede sammen med alt det andet i koden.

Så hvornår har klassen virkning på det andet af en kode?
Og kan man godt have flere klasser i én kode?



Lavede koden forkert.
Jeg ville have den til at se sådan ud:
Fold kodeboks ind/udCSharp kode 




Du kan have ligeså mange klasser du gider.
Dit eksempel er faktisk en smule atypisk, fordi den kun har en metode, som er statisk. Det vil sige at den ikke kommer til at tilhøre et eventuelt objekt som man instantierer fra den, men kun klassen. Derfor kaldes de også "class methods" eller "class functions".

Hvad angår "virkning på anden kode" (jeg antager du snakker om hvordan du får den til at manipulere/rette/ændre/whatever data), så skal klassen kende til det den skal redigere på en eller anden måde. Der er flere måder at gøre det på, men den mest simple er en metode.

Fold kodeboks ind/udCSharp kode 


Eksemplet er oversimplificeret, men og totalt nytteløst, men ikke desto mindre viser den hvordan du kan give en metode noget data, manipulere det og returnere noget andet.



Tusind tak for svarene!

Der er bare én ting jeg ikke kan forstå...
Det er ikke for at være på tværs, men jeg forstår stad ikke hvordan en klasse kan påvirke en ting i koden.
Hvis du kunne lave et (idiotsikret(så det passer til mine egenskaber med programmering)) eksempel.
Mener at skrive /* Denne funktion gør det, det og det... /*

På forhånd tusind tak;)



Er ikke særlig stærk i det med klasser.. Men lad os sige du skal hente noget fra en database.

Så kan du have en klasse, der indeholder selve din command, men ikke den info den skal hente.. Derfor kan du så fra en hveilken somhelst side fortælle du gerne vil have X ud fra tabellen ved navn Y.

På en anden side kan du så vælge at sige du gerne vil have Q ud fra tabellen ved navn Z. På den måde genbruger du din klasse med forskellige indput.

Det kan være en måde en klasse kan påvirke noget på en anden side.







Tror squ jeg forstår det! :D

Der er lige et eksempel her:
Fold kodeboks ind/udCSharp kode 


Det er det strengene: "fornavn" & "efternavn" der påvirker den anden del af koden.
Er det rigtigt?



<< < 12 > >>
t