2013-07-04 34 views
7
private static int Fibonoci(int n) { 
static int first=0; 
static int second=1; 
static int sum; 
if(n>0) 

sto ottenendo un errore "Modifier illegale" e se tolgo parola chiave static non v'è alcun errore e ho bisogno di quelle variabili essere staticoPosso dichiarare una variabile statica all'interno della funzione membro statico in Java?

+0

avvolgerli in una classe. – BigMike

+4

'Ho bisogno che quelle variabili siano statiche', quindi le dichiaro come campi statici nella tua classe. – Pshemo

+0

perché hai bisogno che siano statici? –

risposta

12

Non è possibile dichiarare varibale come static all'interno di un metodo.
All'interno del metodo tutte le variabili sono variabili locali che non esistono al di fuori di questo metodo, ecco perché non possono essere statiche.

static int first=0; 
static int second=1; 
static int sum; 
private static int Fibonoci(int n) { 
    //do somthing 
} 

Si sta tentando di scrivere codice per la serie di Fibonacci e per questo non è necessario per le variabili statiche che proprio qui è alcuni link che descrive il sol per questo

http://crunchify.com/write-java-program-to-print-fibonacci-series-upto-n-number/

http://electrofriends.com/source-codes/software-programs/java/basic-programs/java-program-find-fibonacci-series-number/

+1

solo le variabili di classe (campi) e i metodi possono essere statici. – vikingsteve

0

Queste varibili denominate Variabili locali, si trovano all'interno dello scop o del metodo, non possono essere variabili di istanza o classe.

private static int COUNT;// Class Variable 
private static int Fibonoci(int n) { 
int a =3 ; // local variable 
} 

ho bisogno di quelle variabili di essere statica, okey, Perché avete bisogno di questo? poiché le variabili statiche utilizzate per scopi speciali, tuttavia, è possibile creare campi statici come ho fatto sopra il codice.

3

static s nell'ambito della funzione non sono consentiti in Java.

0

Local variables non può essere dichiarato statico. In altre parole, Static non si applica a local variables.

E non ho visto alcun utilizzo di li static lì.

Seguire JLs on static fields

un campo statico, a volte chiamato una variabile di classe, si incarna quando la classe viene inizializzata (§12.4).

1

Non si può dichiarare una variabile statica all'interno di un metodo, static significa che è una variabile/metodo di una classe, appartiene a tutta la classe, ma non ad uno dei suoi certi oggetti. Ciò significa che la parola chiave static può essere utilizzata solo in un "scope di classe", vale a dire che non ha alcun senso nei metodi.

Non so cosa si stia cercando di ottenere, ma se si desidera che queste variabili siano statiche, è possibile dichiararle come campi statici nella classe.

0

È necessario definire variabili statiche come membri in classe. Le variabili che sono definite all'interno del metodo sono variabili locali e il loro ciclo di vita termina alla fine del metodo. le variabili locali sono specifiche della chiamata, le variabili membro sono specifiche dell'oggetto e le variabili statiche sono variabili specifiche della classe.

0

è necessario dichiarare le variabili statiche al di fuori della funzione:

static int first=0; 
static int second=1; 
static int sum; 
private static int Fibonoci(int n) { 
    if(n>0) 
0

Non è possibile dichiarare varibale come static all'interno di un metodo.In altre parole, possiamo dire che, Le variabili locali non possono essere dichiarate statiche.

1

La causa principale: variabili statiche vengono allocate memoria classe time loading perché sono parte della classe e non il suo oggetto.

Ora, se la variabile statica si trova all'interno di un metodo, allora tale variabile rientra nell'ambito del metodo e JVM non sarà in grado di allocare memoria ad esso.

+1

Ma questo è esattamente ciò che le variabili locali statiche vengono utilizzate in linguaggi come C o C++: per usare la memoria statica invece dello stack, ma limitarne l'ambito all'interno di una funzione. La variabile statica nello scope di classe è una cosa diversa, perché è visibile a tutti gli altri metodi. – SasQ

Problemi correlati