2013-08-11 9 views
5
public class Test { 

/** 
* @param args 
*/ 

// 1st way 
public static void main(String[] args) { 
    // TODO Auto-generated method stub 
    System.out.println("Test....!!!!!"); 
} 

// 2nd way 
static{ 
System.out.println("Test....!!!!!"); 
System.exit(1); 
} 

// 3rd way 
private static int i = m1(); 
public static int m1(){ 
    System.out.println("Test...!!!!"); 
    System.exit(0); 
    return 0; 
} 

Oltre a ciò, è possibile stampare il messaggio in un altro modo.Possiamo stampare un messaggio java sulla console senza utilizzare il metodo principale, la variabile statica e il metodo statico?

+0

penso da Java 7 in poi il tuo secondo approccio non verrà stampato (e noi chiamalo blocco statico, non metodo) – kosa

+2

@Nambari cosa te lo fa dire ?! –

+2

La domanda non è chiara. Intendi senza * mai * usando 'main()'? # 2 e # 3 non funzionano a meno che * non sia mai stato chiamato un metodo * 'main()' che ha caricato una classe contenente tali dichiarazioni. –

risposta

7

Ovviamente è possibile, da un costruttore class, un metodo o un blocco di istanze, ad esempio.

Tuttavia, se si sta parlando di avviare un semplice programma con la riga di comando (ad esempio java -jar myProgram), sarà comunque necessario creare un'istanza della classe in cui risiede il codice di istanza in console, in un metodo main.

Ad esempio, con data classFoo:

public class Foo { 
    // Initializer block Starts 
    { 
     System.out.println("Foo instance statement"); 
    } 
    // Initializer block Ends 

    public Foo() { 
     System.out.println("Foo ctor"); 
    } 
    public void doSomething() { 
     System.out.println("something done from this Foo"); 
    } 
} 

... ora dal metodo della classe Mainmain:

public static void main(String[] args) { 
    new Foo().doSomething(); 
} 

uscita:

Foo instance statement 
Foo ctor 
something done from this Foo 
+0

Potete per favore gettare un po 'di luce su come System.out.println ("istruzione di istanza di Foo"); sta funzionando. Sarà eseguito ogni volta che creiamo oggetti di questa classe? – Algorithmist

+0

@Algorithmist esacly. Ogni nuova istanza di 'Foo', l'istruzione di istanza viene eseguita. – Mena

+0

Ma come funziona, non fa parte né di un costruttore né di altro, è solo un semplice blocco. – Algorithmist