Oprettet ons. d. 25. februar 2004 kl. 14:22:13

mikkeljans
mikkeljans (14.533 point. Point ude: 1.795)

Hvorfor Private?

Hvorfor laver man variabler i en klasse private??
Er det ikke spild af kode?

Hvis man laver en private variable er jeg tvunget til at også lave en function der henter værdien og en der indsætter værdien...
Man kunne jo ligeså godt bare lave dem public og så slippe for Hent og Tildel functionerne?

Nogen der kan forklarer mig menningen med det?

Skrevet ons. d. 25. februar 2004 kl. 14:25:14| #1

chries
chries (30.169 point)
Hvorfor låser du døren når du går hjemme fra? Så ingen fucker din lejlighed uden de skal forbi dig =)

Skrevet ons. d. 25. februar 2004 kl. 14:26:46| #2

arne_v
arne_v (1.016.169 point)
Ved at lave den private skjuler du implementationen.

Derfor skal du *altid* bruge private for variable der kun er relevante
for implementationen.

Det anses for pænest at bruge public get og set metoder fremfor public
variable til noget der er relevant udenfor implementationen. Formålet
er at afkoble interfacet fra implementationen. En dag skulle de get
og set måske gøre noget andet. Man kan override metoder i afledte  klasser
men ikke variable etc.etc..

Personligt går jeg ikke amok over en public variabel. Men ...

Skrevet ons. d. 25. februar 2004 kl. 14:44:21| #3

mikkeljans
mikkeljans (14.533 point)
Hvad præcis er implementationen?
Kan du give nogen eksempler på kode hvor public variabler ville være okay?

Skrevet ons. d. 25. februar 2004 kl. 15:06:30| #4

arne_v
arne_v (1.016.169 point)
interface = hvad klassen gør

implementation = hvordan den gør det

hele pointen i meget OO teori er at man skal kunne skifte implementation
uden at påvirke interface

Skrevet ons. d. 25. februar 2004 kl. 15:08:43| #5

arne_v
arne_v (1.016.169 point)
Hvis der aldrig skal arves fra klassen og det er meget svært at
forestille sig at get og set nogensinde vil lave andet en simpel
assignment, så er det stadig gris ifølge OO teori at lave den
public. Men den praktiske betydning er måske ikke helt så stor.

Skrevet ons. d. 25. februar 2004 kl. 15:27:13| #6

mikkeljans
mikkeljans (14.533 point)
Okay tak for hjælpen

Skrevet ons. d. 25. februar 2004 kl. 15:38:56| #7

segmose
segmose (27.030 point)
Det er også godt at have copy constructor og assignemet operator som privat så der ikke sker noget "spændende".

Skriv et indlæg




Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] [img]link til billede[/img]
Web- og emailadresser omdannes automatisk til links

Log ind

   

   

Seneste spørgsmål

Updater Hybrid App

Oprettet den 18. april 2012 kl. 13.29
sir_madsen giver 100 point for svar | Giv et svar »

Ansi-c win32API - kan ikke oprette Richedit4.1 kontrol

Oprettet den 16. april 2012 kl. 22.13
cblcbl giver 60 point for svar | Giv et svar »

Iphone Objective C - Sætte image på et imageview.

Oprettet den 7. april 2012 kl. 11.36
lasserasch giver 30 point for svar | Giv et svar »



   




Tips & Tricks fra PC World

Teaser billede

Læserne: Her er vores værste it-indkøb

Det er ikke al it-udstyr, som er det rene guld. Her er nogle af læsernes skrækhistorier.


Anmeldelser fra PC World

Teaser billede

Test: Mobil med Ferrari-design - og en Trabant-motor

Motorola har begået endnu en smartphone med lækkert design og potentiale til at være blandt de bedste. Men den når ikke i mål. Se her hvorfor.


Seneste blogindlæg

Teaser billede

Tvangslukke spørgsmål: Hvad er den bedste løsning?

Hej Vi har mange åbne spørgsmål på Eksperten. Vi ville gerne tvangslukke dem - så et spørgsmål efter f.eks. 6 måneder lukkes. Men der er et par uklarheder som ville være gode at få lidt input til:...


Nyheder fra PC World

Teaser billede

Sådan siger du farvel til Facebook

Læs her, hvordan du dropper Facebook og i stedet anvender nogle brugervenlige alternativer, så du stadig kan være social på nettet.


Nyheder fra Computerworld

Teaser billede

Galleri: De fedeste håndholdte gennem 40 år

Her har du de mest banebrydende håndholdte computere gennem alle tider.


Kurser
Samarbejdspartnere

Udgiver · © 2012 IDG Danmark A/S · Hørkær 18 · 2730 Herlev · Tlf.: 77 300 300 · Fax: 77 300 301 · Brug af personoplysninger