Passaggio variabili

di il
2 risposte

Passaggio variabili

Buongiorno a tutti,
sono un neofita programmatore java e volevo chiedere un aiuto per quanto riguarda il passaggio delle variabili.

public class extends activity {

	boolean B;
	boolean B1;
	Contatore C;

	B = true;

	C = new Contatore (B, B1);
	System.out.println(B);

}

public class Contatore {
	public Contatore (B, B1) {
		if (B1 == true) {
			B=!B;
		} else {
			B=B;
		}
	}

}
Volevo chiedere: perchè il valore di B rimane quello fissato all'inizio e non cambia? Immagino sia una problema di passaggio di variabili ma non riesco a capire come risolvere il problema!

Grazie mille

2 Risposte

  • Re: Passaggio variabili

    Esatto, il Java le variabili vengono passate esclusivamente per copia/valore e non per indirizzo/reference. E' questo uno dei motivi per cui per ogni tipo primitivo esiste la corrispondente classe: nel tuo caso oltre a "boolean" (tipo primitivo) esiste la classe "Boolean" (oggetto).

    Noto, comunque, diversi errori:
    • nella prima classe: non le hai dato un nome.
    • alla variabile B non hai assegnato un valore: non si tratta di un errore in realtà perché in automatico le viene assegnato un valore false, però è sempre meglio inizializzarle.
    Inoltre le convenzioni per Java consigliano di chiamare le variabili con nomi che iniziano con lettere minuscole (solo le costanti vanno tutte maiuscole) e le classi devono iniziare con una maiuscola.
  • Re: Passaggio variabili

    Grazie mille dei consigli e delle correzioni!
Devi accedere o registrarti per scrivere nel forum
2 risposte