|
| Static Fra : Dcasso |
Dato : 13-09-03 17:26 |
|
Hej
En der på god gammeldags dansk kan forklare mig, præcist hvad formålet
med static er, både i relation til metoder og klasser.
mvh
Dennis
| |
Lars M (13-09-2003)
| Kommentar Fra : Lars M |
Dato : 13-09-03 17:47 |
| | |
Lars M (13-09-2003)
| Kommentar Fra : Lars M |
Dato : 13-09-03 17:58 |
| | |
Anders K. Olsen (13-09-2003)
| Kommentar Fra : Anders K. Olsen |
Dato : 13-09-03 18:19 |
|
"Dcasso" <ikke@oplyst_pga_spam.dk> wrote in message
news:c8h6mvchg0jdeti9tn15igakucl05gv0cq@4ax.com...
> Hej
>
> En der på god gammeldags dansk kan forklare mig, præcist hvad formålet
> med static er, både i relation til metoder og klasser.
Specifikationen giver selvfølgelig den præcise definition, men jeg vil da
også godt prøve mig med en forklaring.
Tænk på forskellen mellem en klasse og en instans af klassen.
Static metoder og variable tilhører klassen. Ikke-static metoder og variable
tilhører den konkrete instans af en klasse. En static variabel er altså
fælles blandt alle instanser af en klasse, mens en ikke-static variabel er
unik for den aktuelle instans. En static metode kan kaldes uden at du har en
instans af klassen, og en static metode kan derfor kun tilgå andre static
metoder og variable. En static metode kan også kaldes på en konkret instans
af en klasse, men det er generelt dårlig skik, for det kan få en til at tro
at det er en instans-metode og ikke en static metode.
En static klasse giver så vidt jeg ved kun mening i forbindelse med en indre
klasse. En ikke-static indre klasse tilhører en konkret instans af den ydre
klasse.
Jeg håber det giver mening.
/Anders
| |
Dcasso (13-09-2003)
| Kommentar Fra : Dcasso |
Dato : 13-09-03 21:39 |
|
>> En der på god gammeldags dansk kan forklare mig, præcist hvad formålet
>> med static er, både i relation til metoder og klasser.
>
>Specifikationen giver selvfølgelig den præcise definition, men jeg vil da
>også godt prøve mig med en forklaring.
>
>Tænk på forskellen mellem en klasse og en instans af klassen.
>
>Static metoder og variable tilhører klassen. Ikke-static metoder og variable
>tilhører den konkrete instans af en klasse. En static variabel er altså
>fælles blandt alle instanser af en klasse, mens en ikke-static variabel er
>unik for den aktuelle instans. En static metode kan kaldes uden at du har en
>instans af klassen, og en static metode kan derfor kun tilgå andre static
>metoder og variable. En static metode kan også kaldes på en konkret instans
>af en klasse, men det er generelt dårlig skik, for det kan få en til at tro
>at det er en instans-metode og ikke en static metode.
>
>En static klasse giver så vidt jeg ved kun mening i forbindelse med en indre
>klasse. En ikke-static indre klasse tilhører en konkret instans af den ydre
>klasse.
>
>Jeg håber det giver mening.
Ja, giver mening. Jeg har bare indtil videre generelt erklæret dem som
static i mine små nybegynder programmer og det er vel så ikke
nødvendigt.
Men hvad med main, den skal vel være static.
Og i det øjeblik man bruger
MinKlasse variabelNavn = new MinKlasse()
Så vil man som regel tale om ikke-static klasser/metoder.
Eller er det forkert forstået
mvh
Dennis
| |
Robert Larsen (13-09-2003)
| Kommentar Fra : Robert Larsen |
Dato : 13-09-03 23:53 |
|
Dcasso wrote:
> Ja, giver mening. Jeg har bare indtil videre generelt erklæret dem som
> static i mine små nybegynder programmer og det er vel så ikke
> nødvendigt.
Ikke nødvendigvis. Nogle metoder giver mening at erklære static og andre
gør ikke. Det kommer an på hvad metoden gør. Hvis der skal tilgåes
instans variable i en metode så går det ikke at det er en statisk
metode, ellers kan man roligt erklære metoden statisk.
>
> Men hvad med main, den skal vel være static.
Nemlig. Når programmet startes har man jo ikke en instans af en klasse
og java fortolkeren vil derfor kalde den statiske metode kaldet main som
ikke kræver en instans af en klasse.
>
> Og i det øjeblik man bruger
> MinKlasse variabelNavn = new MinKlasse()
>
> Så vil man som regel tale om ikke-static klasser/metoder.
Ja og nej....det kommer igen an på hvad metoden gør. Der findes f.eks.
en del design patterns (Læs "Design Patterns" ISBN: 0201633612...den er
alle pengene værd) som benytter sig af statiske metoder f.eks. Factory
method og Singleton. Disse to patterns bliver også brugt flittigt i Java.
Mvh
Robert
| |
Stefan L. Jensen (14-09-2003)
| Kommentar Fra : Stefan L. Jensen |
Dato : 14-09-03 22:32 |
| | |
Jesper Matthiesen (15-09-2003)
| Kommentar Fra : Jesper Matthiesen |
Dato : 15-09-03 07:51 |
|
Jeg har en gang læst en definition:
Instansvariable og -metoder er afhængige af objektets tilstand. Er de
ufhængige af objektets tilstand skal man bruge statiske.
Mvh Jesper
"Stefan L. Jensen" <dmu2207@mail.ikasths.dk> wrote in message
news:3f64de0a$0$246$bc7fd3c@news.sonofon.dk...
> > En der på god gammeldags dansk kan forklare mig, præcist hvad formålet
> > med static er, både i relation til metoder og klasser.
>
> Tag et kig på
> http://www.docjava.dk/java_specielt/klasse_objekt/klasse_objekt.htm
>
> Siden er lavet af en af mine undervisere og er på dansk.
>
> // Stefan L. Jensen
>
>
| |
|
|