Pagina 1 di 4 1 2 3 ... ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 31
  1. #1
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543

    Passare un array in una classe

    Salve a tutti,
    vorrei passare un array in una classe.
    Inizialmente creo una classe di tipo
    codice:
    private static String Funzione1(String frase)
    {
    // qui inizializzo un array che fa alcune cose ecc....
    return frase;
    }
    Nel mail richiamo Funzione1(frase);

    E fin qui tutto ok.
    Ora però,vorrei creare una nuova classe simile alla precedente, però in questa classe devo poter analizzare - tramite ciclo for - l'array precedentemente creato nella classe "private static String Funzione1(String frase)" ma ovviamente mi da errore perchè non riconosce l'array.

    Mi chiedevo se ci fosse un modo per passare l'array tipo una stringa e quindi scorrerlo, oppure se c'è qualche altra strategia.

    Grazie.
    "To iterate is human, to recurse, divine." (R.(Heller))

  2. #2
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Scusa, solo per capirlo meglio, parli di metodi e non classi, no?

    Comunque, non ho capito bene cosa vuoi fare esattamente. Se hai bisogno di un altro metodo che supporta un array, non vedo il problema crearlo. Potresti postare il tipo di code a cui pensi oppure dove ti viene un errore?

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  3. #3
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802

    Re: Passare un array in una classe

    Originariamente inviato da the-bit
    Ora però,vorrei creare una nuova classe simile alla precedente, però in questa classe devo poter analizzare - tramite ciclo for - l'array precedentemente creato nella classe "private static String Funzione1(String frase)" ma ovviamente mi da errore perchè non riconosce l'array.
    Credo tu abbia un po' di confusione... "private static String Funzione1(String frase)" è la firma di un metodo, non una classe! Una classe è qualcosa del tipo

    codice:
    public class MyClass extends SuperClass {
      private Type value;
    
      ...
    
      public void setValue(Type t) {
        value = t;
      }
    
      public Type getValue() {
        return value;
      }
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

  4. #4
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Rispondo ad entrambi: la confusione c'è perchè contemporaneamente sono costretto a studiare C, C++ e Java...un bel minestrone.

    Tornando al codice, vi posto un esempio di ciò che vorrei fare:
    codice:
    public class MiaClasse
    {
        /* perchè non può essere public invece di private? */
        private static String MemoArray(String frase) 
        {
            int lunghezza = frase.length();
            String [] arr = new String[lunghezza];
            int i;
            for(i=1; i<=frase; i++)
            { 
                   arr[i] = frase.substring(i,i+1);
            }
     
            return frase;
         }
    
    /* bene: ora ho memorizzato la frase passata in un array, suddividendo tale frase in tanti indici quante sono le lettere che la compongono */
    
    /* creo un altro metodo (o classe) */
       private static String ........
    ed ora come lo dichiaro?
    In pratica, in questo metodo, deve essere passato l'intero array memorizzato nel precedente metodo in modo che io posso scorrere l'array e fare nuove operazioni.

    Ovviamente, nel mai avrò qualcosa del genere (giusto per essere chiaro):
    codice:
    public static void main(String[] args)
    {
        String frase;
        System.out.println("Inserisci frase: ");
        frase = leggiStringa(); // classe creata in precedenza e fin qui tutto ok.
    
        MemoArray(frase);
        // tutto funziona perfettamente
    
       /* ora qui ho bisogno di passare l'array appea creato, in un altro metodo, in modo: */
       PassaArray(arr[i]);  // e svolgo altre azioni.
    .

    Spero di essere stato più chiaro ora.
    "To iterate is human, to recurse, divine." (R.(Heller))

  5. #5
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    codice:
    private static String[] MemoArray(String frase) 
    {
        int lunghezza = frase.length();
        String [] arr = new String[lunghezza];
        int i;
        for(i=1; i<=frase; i++)
        { 
            arr[i] = frase.substring(i,i+1);
        }
     
        return arr;
    }
    
    
    String[] arr=MemoArray(frase);
    PassaArray(arr);

    Ma nel tuo caso sarebbe meglio usare getBytes() - attenzione, encoding! - o toCharArray() di String.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  6. #6
    codice:
      MemoArray(frase);
        // tutto funziona perfettamente
    codice:
    
    
    c'è un errore.... innanzitutto correggi il primo metodo come suggerito da neroux.
    poi devi istanziarti una variabile array dentro al main o una variabile array globale altrimenti come fai a sapere cosa è arr?
    codice:
       /* ora qui ho bisogno di passare l'array appea creato, in un altro metodo, in modo: */
       PassaArray(arr[i]);  // e svolgo altre azioni.
    .
    inoltre se vuoi passare un array ad un metodo non è la dicitura corretta quella.
    riguardo alla tua domanda sul public e private dipende dall'uso che devi fare del tuo metodo.

  7. #7
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Ok, ho corretto l'errore, dichiarando:
    codice:
    private static String[] NomeClasse(String frase)
    {
    ....
    }
    e nel main:

    codice:
    ....
    String[] arr = NomeClasse(frase);
    ....
    .

    Ora mi rimane il dubbio su come passare l'array memorizzato ad un'altra private static (metodo ?) per poter svolgere altre funzioni.
    Cosa mi dite?
    "To iterate is human, to recurse, divine." (R.(Heller))

  8. #8
    Utente di HTML.it L'avatar di neroux
    Registrato dal
    Aug 2009
    Messaggi
    1,973
    Lo passi come parametro del metodo.

    www.sitemeer.com » Quando un sito pare irraggiungibile

    Se ti piace ci puoi trovare anche su Facebook

  9. #9
    Utente di HTML.it L'avatar di the-bit
    Registrato dal
    Feb 2005
    Messaggi
    543
    Si, ma l'utente darksoullight88 diceva che è sbagliato passarlo nel modo
    codice:
    PassaArr(arr[i]);
    quindi come lo passo?
    Un esempio pratico?
    "To iterate is human, to recurse, divine." (R.(Heller))

  10. #10
    Utente di HTML.it L'avatar di Alex'87
    Registrato dal
    Aug 2001
    residenza
    Verona
    Messaggi
    5,802
    Per passare un array ad un metodo (metodo, non classe ) devi definire il metodo in modo che possa accettare un array!

    codice:
    private static String[] nomeMetodo(String[] myArray) {
       ...
       return un_array_di_string;
    }
    E cerca di imparare le convenzioni del linguaggio per quel che riguarda i nomi:

    I nomi di metodi e variabili tutti in minuscolo ad eccezione delle iniziali della parole successiva la prima. Ad esempio nomeMetodo e non NomeMetodo, stampaDati e non StampaDati ecc.
    L'iniziale maiuscola va solo per i nomi delle classi.
    SpringSource Certified Spring Professional | Pivotal Certified Enterprise Integration Specialist
    Di questo libro e degli altri (blog personale di recensioni libri) | ​NO M.P. TECNICI

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.