Java: Miért nem működik így a static block?
Eddig C++-t tanultam, most ismerkednék a JAVA nyelvvel. Egy statikus blokkot szeretnék létrehozni, tehát a main függvényben lévő kód egy része statikus lenne, a maradék pedig nem. A JAVA futtató azt mondja hogy illegal character #, és nem értem mi a hiba.
#define unstatic !static
package pkgstatic.block;
public class StaticBlock {
public void main(String[] args) {
static:
int a = 3;
int b = 5;
unstatic:
for(a<b; a++){
System.out.println(a);
}
}
static class block{
public static void main(String[] args){
System.out.println("This is a static block");
}
}
}
Köszönöm a segítséget!










Ez nem úgy működik, mint ahogy te elképzeled. A static kulcsszóval az osztályok tagjait (változókat, metódusokat stb.) jelölhetsz el. Például:
class Valami {
private static int Valtozo = 5;
public static void CsinaljValamit() {
Valami.Valtozo = 10;
}
Létrehozhatsz static tagot az osztályban így:
class Valami {
static {
System.out.println("Lefutott");
}
}
Ez arra jó, hogy az osztály betöltődésekor (pontosabban inicializálásakor - nem példányosításkor) végrehajtódik, mintha egy statikus konstruktor lenne.
Nagyon szépen köszönöm a válaszokat, sikerült.
package pkgstatic.block;
public class StaticBlock {
static int a;
int b;
static{
a=5;
}
{
b=3;
System.out.println("sout");
}
public static void main(String[] args) {
System.out.println(a);
StaticBlock sb = new StaticBlock();
System.out.println(sb.b);
}
}
Kapcsolódó kérdések:
Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!