Qual è la differenza tra una variabile locale, un campo istanza, un parametro di input e un campo di class?

Qual è la differenza tra una variabile locale, un campo istanza, un parametro di input e un campo di class rispetto a un semplice programma Java?

Una variabile locale è definita nell’ambito di un blocco. Non può essere usato al di fuori di quel blocco.

Esempio:

if(x > 10) { String local = "Local value"; } 

Non posso usare local al di fuori di quel blocco if .

Un campo o campo di istanze è una variabile associata all’object stesso. Posso usarlo nell’object senza la necessità di usare gli accessor e qualsiasi metodo contenuto nell’object può usarlo.

Se volessi usarlo al di fuori dell’object, e non fosse public , dovrei usare getter e / o setter.

Esempio:

 public class Point { private int xValue; // xValue is a field public void showX() { System.out.println("X is: " + xValue); } } 

Un parametro di input , o parametro o argomento pari , è qualcosa che passiamo in un metodo o costruttore. Ha portata rispetto al metodo o costruttore in cui lo passiamo.

Esempio:

 public class Point { private int xValue; public Point(int x) { xValue = x; } public void setX(int x) { xValue = x; } } 

Entrambi i parametri x sono associati a diversi ambiti.

Un campo di class , o campo statico , è simile a un campo, ma la differenza è che non è necessario avere un’istanza dell’object contenitore per usarlo.

Esempio:

 System.out.println(Integer.MAX_VALUE); 

Non ho bisogno di un’istanza di Integer per recuperare il valore massimo noto a livello globale di tutti i valori.

Non proprio.

Un campo di class è ciò che si pensa sia una variabile locale ma è generalmente un campo statico e quindi è lo stesso in tutte le istanze.

Un campo di istanza è uguale a un campo di class, ma non è statico e può essere diverso per ogni istanza dell’object.

http://docs.oracle.com/javase/tutorial/java/javaOO/classvars.html

E una variabile locale è una variabile all’interno di un metodo o di un blocco, che può essere utilizzata solo da quel metodo o blocco.

Oh e la definizione del parametro di input è corretta, un parametro di input è un campo che viene passato a un metodo come parametro.

Un campo class è spesso chiamato una variabile di class, e qui puoi trovare le informazioni

Inizia con una lettura di classi e oggetti

So che la variabile locale è una variabile disponibile per la class in cui si trova, corretta?

No, generalmente una variabile locale si riferisce a una variabile che ha solo il contesto all’interno dell’area che è stata dichiarata. Questo di solito si riferisce a variabili dichiarate all’interno dei metodi e {...} blocchi (come if dichiarazioni)

Un campo istanza è un object creato nel costruttore …?

Non proprio, un campo di istanza è qualsiasi campo, dichiarato a livello di class che non è statico, quindi il suo valore ha significato solo per una singola istanza della class

Un parametro di input è ciò che viene passato in un metodo.

Ma non ho idea di un campo di class!

Un campo class e un campo istanza sono (generalmente) la stessa cosa. L’unica differenza sarebbe se il campo è dichiarato static , quindi non può essere un campo di istanza …

Una variabile locale è locale a un metodo.

Un campo istanza è il campo di un’istanza di una class, ovvero un object.

Un parametro è passato a un metodo

Un campo class, presumo, è un campo statico associato alla class. Ad esempio, se si utilizzano più caricatori di classi, è ansible avere più classi con lo stesso nome e i propri campi statici.

Una variabile locale è una variabile in un metodo. Lo scopo è limitato all’ambito delle due parentesi che lo circondano. {}

Esempio:

 public void someMethod () { int localVariable1 = 5; if (...) { int localVariable2 = 7; } } 

Con un campo istanza , penso che tu intenda un membro di un’istanza di class. Se prendi ad esempio la Dimension della class, questa sarebbe height o width . . Un parametro di input è un parametro in un metodo, come hai indovinato.

Un campo di class è un campo in un metodo statico.