/
Forside
/
Teknologi
/
Udvikling
/
Java
/
Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn
*
Kodeord
*
Husk mig
Brugerservice
Kom godt i gang
Bliv medlem
Seneste indlæg
Find en bruger
Stil et spørgsmål
Skriv et tip
Fortæl en ven
Pointsystemet
Kontakt Kandu.dk
Emnevisning
Kategorier
Alfabetisk
Karriere
Interesser
Teknologi
Reklame
Top 10 brugere
Java
#
Navn
Point
1
molokyle
3688
2
Klaudi
855
3
strarup
740
4
Forvirret
660
5
gøgeungen
500
6
Teil
373
7
Stouenberg
360
8
vnc
360
9
pmbruun
341
10
mccracken
320
at kalde ikke statiske funktioner fra stat~
Fra :
Martin Schultz
Dato :
24-07-02 17:40
Hvis jeg har en funktion der fx. hedder public void etEllerAndet kan
jeg ikke kalde den fra fx public static void main med fx.
etEllerAndet();
Den klager over at jeg forsøger at kalde en ikke statisk funktion fra
en statisk. Er der ikke en måde man kan gøre det på?
Martin Møller Bæk (
24-07-2002
)
Kommentar
Fra :
Martin Møller Bæk
Dato :
24-07-02 18:58
Martin Schultz wrote:
> Hvis jeg har en funktion der fx. hedder public void etEllerAndet kan
> jeg ikke kalde den fra fx public static void main med fx.
> etEllerAndet();
>
> Den klager over at jeg forsøger at kalde en ikke statisk funktion fra
> en statisk. Er der ikke en måde man kan gøre det på?
Det skyldes formentligt, at du ikke kalder den
på et object (A), men blot kalder den direkte (B).
Mvh.
Martin MB
ex. A - rigtig måde
class X
{
public static void main(..)
{
X t = new X();
t.foo();
}
public void foo()
{
...
}
}
B - forkert måde
class X
{
public static void main(..)
{
foo();
}
public void foo()
{
...
}
}
Martin Schultz (
24-07-2002
)
Kommentar
Fra :
Martin Schultz
Dato :
24-07-02 19:28
On Wed, 24 Jul 2002 19:58:24 +0200, Martin
=?ISO-8859-1?Q?M=F8ller=20B=E6k?= <martin@nospam.aflame.dk> wrote:
>
>
>Martin Schultz wrote:
>
>> Hvis jeg har en funktion der fx. hedder public void etEllerAndet kan
>> jeg ikke kalde den fra fx public static void main med fx.
>> etEllerAndet();
>>
>> Den klager over at jeg forsøger at kalde en ikke statisk funktion fra
>> en statisk. Er der ikke en måde man kan gøre det på?
>
>
>Det skyldes formentligt, at du ikke kalder den
>på et object (A), men blot kalder den direkte (B).
Ah tak.
Martin
Michael Berg (
01-08-2002
)
Kommentar
Fra :
Michael Berg
Dato :
01-08-02 20:41
Hej Martin!
"Martin Schultz" <mbox@linuxfreemail.com> wrote in message
news:3d3ed551.5805307@news.cybercity.dk...
> Hvis jeg har en funktion der fx. hedder public void etEllerAndet kan
> jeg ikke kalde den fra fx public static void main med fx.
> etEllerAndet();
>
> Den klager over at jeg forsøger at kalde en ikke statisk funktion fra
> en statisk. Er der ikke en måde man kan gøre det på?
Det må man ikke fordi ikke-statiske metoder kræver et objekt at arbejde på.
Når du er i en statisk metode har du ingen objekt - det gælder fx. i main().
Du kan gøre følgende:
public class MinKlasse {
public int adder(int a, int b) {
return(a+b);
}
public static void main(String args[]) {
int c = new MinKlasse().adder(1,2); // I stedet for at kalde den
direkte
Eksemplet er selvfølgelig lidt søgt - i denne situation ville det
selvfølgelig være klart det nemmeste blot at gøre adder funktionen statisk
også.
Mvh
/Michael
Søg
Alle emner
Teknologi
Udvikling
Java
Indstillinger
Spørgsmål
Tips
Usenet
Reklame
Statistik
Spørgsmål :
177559
Tips :
31968
Nyheder :
719565
Indlæg :
6408937
Brugere :
218888
Månedens bedste
Årets bedste
Sidste års bedste
Copyright © 2000-2024 kandu.dk. Alle rettigheder forbeholdes.