"DenverDino" <writetong@plz.com> wrote in message news:x82U7.502$aS.78233@news010.worldonline.dk...
> public class Test {
>
> public static void main(String[] args) {
> int kroner;
> System.out.println(kroner);
> kroner = 50;
> kroner = (int)(kroner * getDollarKurs());
> System.out.println(kroner*getDollarKurs());
> }
>
> public double getDollarKurs() {
> return 8.39;
> }
> }
>
> Når linien kroner = (int)(kroner * getDollarKurs()); skal køres kommer min
> compiler og siger...
>
> 2) Cannot make a static reference to the instance method named getDollarKurs
> for class kap2.Test with arguments ()
>
> Det er selvfølgelig fordi den ikke kan "Se" metoden getDollarKurs() - det er
> altså det med Static jeg ikke fatter - jeg ved at hvis jeg gør selve metoden
> getDollarKurs() til static - så vil det virke - men hvorfor virker det ikke
> som det er nu? og hvis en samtidig gider at forklare static attributter..
Statiske metoder og attributter, tilhører klassen - og ikke objektet.
I ovenstående eksempel kan du ikke kalde getDollarKurs, da denne metode
er en del af objektet (af typen Test) - du skal instantiere denne for
at kunne bruge dens metode. Modsat er statiske metoder og attributter
tilknyttet klassen, og du kan derfor kalde den på klassen direkte.
se iøvrigt:
http://java.sun.com/docs/books/tutorial/java/javaOO/classvars.html
/Brian Matzon