Che vuol dire "di un altro metodo"?
Invece che:
TNRicalcolo.STAMPA_ricalcolo.setText("CIAO");
nessuno ti vieta di passare una variabile:
TNRicalcolo.STAMPA_ricalcolo.setText(varStr);
Ma è chiaro che varStr deve essere una variabile che esiste da qualche parte e che è visibile/accessibile dal punto in cui la usi.
Se non lo è .... è chiaro che non la puoi usare.
Che la tua classe non ha controllo su chi/dove/come usa la variabile di istanza public e non puoi quindi imporre dei controlli sui valori, quelli che si definiscono in generale "invarianti".
Immagina una classe Range (di interi) con due variabili di istanza min e max. Noi vogliano che max sia sempre maggiore/uguale a min, mai inferiore. Se i campi fossero pubblici, l'accesso a queste variabile sarebbe sparpagliato in chissà quanti punti e la tua classe Range NON ne avrebbe il controllo.
Se invece li tieni privati e metti dei metodi "accessori" (getter e setter), puoi fare:
codice:public class Range { private int min; private int max; public int getMin() { return min; } public void setMin(int min) { if (min > max) { throw new IllegalArgumentException("min non può essere superiore a max"); } this.min = min; } public int getMax() { return max; } public void setMax(int max) { if (max < min) { throw new IllegalArgumentException("max non può essere inferiore a min"); } this.max = max; } }
A parte truschini con la reflection di Java, non c'è modo di accedere direttamente ai campi min/max, bisogna sempre passare per i metodi setMin/setMax e questo ti permette di mantenere il controllo sull'invariante "max deve essere maggiore/uguale a min".
Chi usa normalmente la classe Range, quindi NON può violare questo invariante.