import java.awt.*;
public class Function {
public static void main( String arg[] ) {
System.out.println("It's alive!");
myClass tal = new myClass();
tal.fem = 5;
tal.ti = 10;
tal.udregn();
}
class myClass{
int fem;
int ti;
void udregn(){
System.out.print(fem + ti);
}
}
}
Når jeg compilerer denne kode, så får jeg fejlemeddelsen:
"non-static variable this cannot be referenced from a static context, myClass tal = new myClass();"
Hvis jeg ændrer class myClass -> static class myClass, så er der ingen problemer, og koden compilerer uden problemer(og virker bagefter).
Altid når jeg ser eksempler på hvordan man definerer klasser, så bliver de altid erklæret som 'class name', og jeg har ikke set blive erklæret som 'static class name'.
Omvendt, hvis jeg sletter 'static' fra main class, så fungerer det også uden problemer, men jeg ser næsten altid i tutorials og eksempler at main classen bliver erklæret som 'static'
/*//////////////////
// 2 Spørgsmål //
////////////////////
----------------------------------------------------------
Hvorfor skal jeg erklære min klasse som static for at den fungerer, og jeg kan kalde dens metoder i min main class?
Er der nogen der måske kunne uddybe dette emne omkring static og 'ikke static' for mig?
-----------------------------------------------------------
Indlæg senest redigeret d. 21.02.2007 16:29 af Bruger #10925