Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19
  1. #1
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446

    Difficoltà nel passaggio variabile tra classe public main e private "secondclass"

    Salve a tutti ho urgentemente bisogno di aiuto,ho difficoltà a passare il valore di una variabile dalla classe main

    public static void main(String a[]) throws Exception
    {
    int a=2;
    int b= a;

    alla classe

    private void process (String s)
    {
    //operazioni riguardanti a....
    ....
    ....
    ....

    come faccio ad assegnare a b il valore inizializzato nel main con a?
    grazie a tutti!

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,315
    Non si capisce nulla di quello che vuoi fare.
    Poi direi che tu non hai nemmeno ben chiara la differenza fra una classe ed un suo metodo.
    E nemmeno il significato delle dichiarazioni dei tipi di variabile...


    Ciao.
    "Perchè spendere anche solo 5 dollari per un S.O., quando posso averne uno gratis e spendere quei 5 dollari per 5 bottiglie di birra?" [Jon "maddog" Hall]
    Fatti non foste a viver come bruti, ma per seguir virtute e canoscenza

  3. #3
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    grazie per la risposta(anche se non mi ha aiutato affatto ),quello che mi serve detto in 2 parole è rendere usabile una variabile dichiarata e inizializzata dentro il metodo main anche in uno private chiamato process,è più chiaro così?

  4. #4
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    Può andare così?
    codice:
    public class TestMain {
    
    	
    	public static void main(String[] args) {
    		int a=2;
    		int b=a;
    		System.out.println("Valore prima di process:"+b);
    		b=process(b);
    		System.out.println("Valore dopo di process:"+b);
    	}
    	
    	private static int process(int varDaProcessare){
    		varDaProcessare=5;
    		return varDaProcessare;
    	}
    }
    Ricorda , non puoi processare una variabile dichiarata in un metodo static (main) con un metodo non static , per ciò ho dovuto cambiare la firma del tuo metodo process.

    Ciao.

  5. #5
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ciao david il problema è che dentro il metodo process ci sono delle variabili che non possono essere definite come static,(è un esempio)io dovrei far leggere al metodo main il valore di una variabile chiamata a, poi dovrei far leggere al metodo private la stessa variabile(quindi lo stesso valore),se provo a modificare come hai consigliato tu mi vien fuori un errore che mi dice appunto che delle variabili non statiche non possono esser dichiarate all'interno di un contesto statico.Grazie

  6. #6
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ho provato a dichiare questa variabile così protected final String in modo tale che sia protetta da modifiche e che sia valida per tutte le classi,ma non posso utilizzare questa dichiarazione perchè la variabile viene presa da un file di testo in questo modo:

    public static void main(String a[]) throws Exception
    {

    Settings mySettings = new Settings("settings.cfg");
    la classe Settings legge i valori della variabile e li rimanda quando viene richiamata con

    mySettings.blabla etc etc();

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    Allora , se non ho capito male (è un pò farraginoso il concetto espresso , prova a spedire un pò più di codice...), il metodo process deve NON essere statico , beh allora bisogna cambiare strada in quanto non puoi accedere ad una variabile dichiarata in un metodo statico con un metodo non statico.

    Inoltre nel main , è meglio evitare di inserire codice che effettua già operazioni ... chiamiamole "vive" .. il main solitamente serve a chiamare altre classi nelle quali poi gli fai fare tutto ciò che vuoi.

    Eseguendo questa tecnica puoi creare una classe apposita e non dichiarare statico il main e quindi neanche process:

    codice:
    public class TestMain {
    	
    	public static void main(String[] args) {
    		AltraClasse altra=new AltraClasse();
    		altra.main();
    	}
    }
    
    class AltraClasse{
    	public void main(){
    		int a=2;
    		int b=a;
    		System.out.println("Valore prima di process:"+b);
    		b=process(b);
    		System.out.println("Valore dopo di process:"+b);
    	}
    	private int process(int varDaProcessare){
    		varDaProcessare=5;
    		return varDaProcessare;
    	}
    }
    Ora in process ed in main puoi fare ciò che vuoi.

  8. #8
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    ciao ancora david!ho provato a far quel che hai scritto ma ho ancora dei problemini,io dovrei inviare il valore di una variabile dichiarato in main ad un metodo private,ma non devo restituire il valore al main

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2002
    Messaggi
    72
    Posta un pò di codice.

  10. #10
    Utente di HTML.it L'avatar di energie
    Registrato dal
    Apr 2003
    Messaggi
    446
    dovrei sistemarlo perchè sono più di 600 righe,piccola domanda,posso creare un oggetto e assegnarlo in modo tale che sia utilizzabile sia dai metodi public che da quelli private?esempio:

    Class myClass= new Class();

    in modo tale che sia i metodi public che quelli private possano richiamare i suoi metodi?

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.