Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 12
  1. #1
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327

    Per Favore Aiuto! Dubbi Enormi Su "banalita' " Java!

    Salve ragazzi, è un po' che non scrivo...
    Mi trovo in seria difficoltà.. Ho due grandi dubbi:
    Ecco il primo...

    Supponiamo che io abbia una classe con dei metodi statici, ad es.
    codice:
    public class Classe{
        public static void metodo1(){
                                           int a=......
                                          }
        public static void metodo2(){
                           Come faccio qui ad utilizzare la variabile a del metodo sopra?
                            return a;
                                                 }
    Il problema è appunto come fare far vedere a metodo2 le variabili di metodo1.

    Ecco invece il secondo dubbio:
    Come faccio a far tornare da un metodo un vettore?
    Un vettore di stringhe, un vettore multidimesionale, o un vettore di StringBuffer che sia?


    Grazie in anticipo a chiunque mi voglia aiuatare..

  2. #2
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328

    Moderazione

    Credo che tu ti debba rileggere un pochino il regolamento: i tuoi titoli non sono affatto conformi.
    Il titolo di una discussione è una cosa importante: serve per far capire a colpo d'occhio alla gente che legge il forum di cosa parla la discussione.

    Un titolo così privo di significato non aiuta chi legge.

    Questo lo modifico io.


    Seconda cosa: a ciascuna discussione il suo argomento.
    Mescolare argomenti su una sola discussione fa perdere al forum la sua utilità.

    Ad ogni modo: il problema delle variabili locali non è risolvibile in nessun linguaggio! Lo scope delle variabili è una delle regole fondamentali per la programmazione: le variabili sono sempre locali al metodo in cui vengono dichiarate e non possono, ovviamente, essere viste all'esterno.


    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
    Moderatore di Programmazione L'avatar di LeleFT
    Registrato dal
    Jun 2003
    Messaggi
    17,328
    Per il secondo problema:
    codice:
    public String[] ritornaVettore() {
       String[] vettore = ...;
       ...
    
       return vettore;
    }
    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

  4. #4
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284

    Re: Per Favore Aiuto! Dubbi Enormi Su "banalita' " Java!

    Originariamente inviato da playbasfa
    Come faccio a far tornare da un metodo un vettore?
    Un vettore di stringhe, un vettore multidimesionale, o un vettore di StringBuffer che sia?
    Innanzitutto il tipo di ritorno lo devi dichiarare appunto come array, es.

    public String[] unMetodo ()

    Poi chiaramente dipende da come crei o ottieni l'array all'interno del metodo, cioè se lo istanzi tu o lo ottieni da altri oggetti.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  5. #5
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    ok grazie,cercherò di usare titoli più conformi al regolamento..

  6. #6
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    Stavo pensando una cosa....
    Ma allora una classa che contiene solo metodi statici è priva di costruttori....no?
    non essendoci bisogno di istanziare oggetti di quella classe......sbaglio in questo?

  7. #7
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    Poi chiaramente dipende da come crei o ottieni l'array all'interno del metodo, cioè se lo istanzi tu o lo ottieni da altri oggetti.
    in che senso dipende?
    cioè cosa cambia se lo istanzio io oppure se lo ottengo da altri oggetti?

  8. #8
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da playbasfa
    Ma allora una classa che contiene solo metodi statici è priva di costruttori....no?
    non essendoci bisogno di istanziare oggetti di quella classe......sbaglio in questo?
    No, una classe almeno 1 costruttore ce l'ha sempre. Poi se intendi realizzare ad esempio una classe che ha solo metodi statici (es. di utilità varie) allora puoi pensare di mettere un unico costruttore privato, in modo che la classe non sia istanziabile.
    java.lang.Math è proprio così. Ha tutti metodi statici, non avrebbe senso fare new Math(). E infatti ha un unico costruttore privato, così non è istanziabile.

    Dalla documentazione non lo vedi ma se guardi il sorgente vedi:
    codice:
        /**
         * Don't let anyone instantiate this class.
         */
        private Math() {}
    Originariamente inviato da playbasfa
    in che senso dipende?
    cioè cosa cambia se lo istanzio io oppure se lo ottengo da altri oggetti?
    Se lo istanzi tu dovrai fare: new Tipo[dimensione] (o altra sintassi se hai una inizializzazione fissa), altrimenti se lo prendi da un altro oggetto, beh, è un'altra cosa ... invocherai un metodo o leggerai un campo. Tutto qua.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  9. #9
    Utente di HTML.it
    Registrato dal
    Nov 2007
    Messaggi
    327
    ok grazie però non ho ancora chiara una cosa..

    ad es. dichiaro un metodo statico e lo chiamo dal mio main,gli fornisco dei dati e voglio che questo mi ritorni qualcosa..xo ho bisogno ad es di due cose ritornate,un vettore e un intero che mi servirà successivamente...il problema è questo,il metodo può ritornare solo una cosa (ad es. il vettore),quindi come faccio ad utilizzare l'intero di cui ho bisogno?avevo pensato di creare un altro metodo che si occupasse di questo,ma essendo statico non "vede" ciò che c'è dentro l'altro metodo static (come mi hai spiegato...).
    Quindi?come faccio ad utilizzare sia il vettore sia l'intero? Facendo si che il costruttore della classe sia privato e magari l'intero e il vettore li dichiaro li?

  10. #10
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da playbasfa
    ad es. dichiaro un metodo statico e lo chiamo dal mio main,gli fornisco dei dati e voglio che questo mi ritorni qualcosa..xo ho bisogno ad es di due cose ritornate,un vettore e un intero che mi servirà successivamente...
    Da un metodo puoi restituire solo 1 valore, che sia un tipo primitivo o un reference a un oggetto/array. Ma nulla ti vieta di creare una tua classe che "incapsula" i dati e quindi restituisci una istanza di questa tua classe. Ma se la classe la fai in modo che abbia uno stato "mutabile" puoi anche passare l'oggetto al metodo che quindi semplicemente cambierà lo stato dell'oggetto.

    Insomma ... è più una questione di "design", bisogna vedere se i dati sono correlati tra di loro, se ha senso creare un oggetto che incapsula i dati, se davvero il metodo deve essere statico invece che magari di istanza in modo che possa cambiare lo stato dell'oggetto, ecc....
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

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.