2013-04-26 19 views
5

So perché il metodo principale è statico. Se è statico, non c'è bisogno di istanziare quella classe con JVM. Senza oggetto possiamo chiamarlo. Ma perché l'oggetto non è necessario per chiamare il metodo statico?Perché non è necessario creare oggetti per il metodo statico?

Qualcuno può spiegare per favore?

+1

Perché ... questo è il significato della parola chiave 'static'?Perché etichettare un metodo 'static' afferma esplicitamente che non vuoi che sia collegato a un oggetto specifico? –

+1

Perché abbiamo un oggetto di classe. – StarPinkER

risposta

0

L'oggetto è necessario per le variabili membro ei metodi, ma statico è la variabile dell'applicazione o la funzione è uno dei motivi per cui l'oggetto non è necessario per la statica.

0

Perché la JVM può chiamare il metodo per voi (comunque meglio crede). Altrimenti, dove finirà la tana del coniglio? Avrebbero potuto fare esattamente quello che stai suggerendo creando un noto interface, con un metodo main. Ad esempio:

interface ApplicationStarter 
{ 
    void start(String []args); 
} 

Ma poi ci sono preoccupazioni relative al costruttore. Esistono numerosi framework che si imbattono in problemi simili, come SPI, che richiede un costruttore predefinito (no-arg) per ragioni simili. Tali strutture falliscono quando i loro requisiti predefiniti (ad es. Costruttore no-arg o forse non Serializeable per altri framework), ei principianti lo trovano difficile. Rendere la parte più basilare di un'applicazione "complicata" non è un buon modo per ottenere l'adozione.

Per un punto di inizio/entrata dell'applicazione, è molto più semplice dipendere da un punto di ingresso noto (main) analogo a praticamente ogni altra lingua: nessuna preoccupazione per l'oggetto che non costruisce, o sovrascrive.

0

Il metodo main() è statico perché può essere richiamato dal motore di runtime senza dover istanziare un'istanza della classe padre.

Static metodi, che hanno il modificatore static nelle loro dichiarazioni, devono essere eseguiti con il nome della classe, senza la necessità di creare un'istanza della classe

4

Considerate questo esempio, c'è una famiglia che contiene una madre e tre bambini. La mamma porta tre coni gelato a ciascuno dei bambini, ma porta solo una PSP per tutti e tre i bambini. Tutti i bambini usano la stessa PSP ma hanno i loro gelati.

Qui il gelato è una cosa non statica (metodo/variabile), PSP è la cosa statica, la madre è la classe, i bambini sono oggetti.

È piuttosto semplice. Statico appartiene a una classe, è comune a tutti gli oggetti di una classe. Le cose non statiche sono specifiche dell'oggetto.

0

Sì, è corretto che non è necessario un oggetto istanza per chiamare il metodo statico di una classe, perché i metodi statici appartengono a una classe e non all'istanza di tale classe. Inoltre, non è possibile utilizzare le variabili di istanza all'interno del metodo statico perché le variabili di istanza appartengono all'istanza.

0

Quando eseguiamo un file java, un compilatore java carica ed esegue automaticamente il membro statico.

Sono nuovo di java quindi per favore perdonami se la mia risposta è sbagliata.

Problemi correlati