Java passa l'array in riferimento a un metodo?

Java passa l'array in riferimento a un metodo?
Java passa l'array in riferimento a un metodo? Sì, e questo è l'unico modo per passare un array a una funzione in Java. In Java, una funzione è chiamata metodo ed è un membro di una classe. Altre buone notizie! Un metodo in Java può restituire un array, e questo è per riferimento. L'identificatore dell'array è un riferimento.

Ricordiamo: un tipico file di programma Java ha una classe principale con il metodo principale (). Il nome del metodo principale è principale. Tuttavia, il nome della classe principale non è il principale. È il nome scelto dal programmatore. È anche il nome del file. Questa classe principale può avere altri membri (proprietà e funzioni). Altre classi al di fuori della classe principale possono avere le loro proprietà e metodi. In questo articolo, il metodo principale non riguarda il passaggio e il restituzione dell'array. In Java, una proprietà è chiamata campo.

Questo articolo illustra come passare un array a un metodo e restituire un array da un metodo per riferimento. La classe Array non deve essere importata per questo programma.

Metodo in una classe separata

Passando per riferimento

In questa sezione dell'articolo, il metodo per ricevere l'array è in una classe separata, non nella classe principale. Un esempio di tale classe è:

classe aclass
char func (char [] chs)
restituire chs [2];

Il nome di questa classe extra è aclass. Ha un solo membro, il che è un metodo. Il nome del metodo è func. Ha un solo parametro, che è una dichiarazione di array. Restituisce un carattere. Il personaggio restituito è alla terza posizione dell'array ricevuto (indice 2).

Nel metodo principale (), è possibile utilizzare il seguente segmento di codice:

char [] arr = 'a', 'b', 'c', 'd';
Aclass obj = new aclass ();
char ret = obj.func (arr);
Sistema.fuori.println (ret);

La prima istruzione in questo segmento di codice definisce l'array. La seconda affermazione dichiara l'oggetto, OBJ dalla classe, aclass. L'istruzione successiva chiama il metodo dell'oggetto, con il nome dell'array (riferimento) come argomento. L'ultima istruzione stampa il terzo carattere (indice 2) dell'array ricevuto dal metodo chiamato. L'output sarebbe C.

Questi due segmenti di codice mostrano come un array viene passato a un metodo in riferimento.

Ritorno per riferimento

La classe sopra viene modificata per il metodo per restituire un array per riferimento, come segue:

classe aclass
char [] func (char [] chs)
restituire chs;

L'espressione di ritorno nella firma del metodo è char [] e non più, solo, char. L'espressione di restituzione dell'istruzione di ritorno è ora il nome dell'array nel parametro e non è più un elemento array.

Il segmento di codice corrispondente nel metodo principale () è modificato per essere:

char [] arr = 'a', 'b', 'c', 'd';
Aclass obj = new aclass ();
char [] ret = obj.func (arr);
Sistema.fuori.println (ret [2]);

Il tipo di ritorno della chiamata del metodo è un array e non solo Char. L'array è ancora superato come argomento allo stesso modo di prima. L'ultima istruzione qui stampa un valore dell'elemento dell'array di restituzione.

I due programmi sopra mostrano come un array può essere superato per riferimento e come un array può essere restituito per riferimento.

Metodo nella classe principale

Passando per riferimento

In questa sezione dell'articolo, il metodo di ricezione dell'array è nella classe principale, non in una classe separata. Un esempio di tale metodo è:

static char func (char [] chs)
restituire chs [2];

Si noti che il metodo di interesse ora è statico perché sarà chiamato dal metodo principale che è anche statico ed è anche nella classe principale. Il nome del metodo è func. Ha un solo parametro, che è una dichiarazione di array. Restituisce un carattere. Il personaggio restituito è alla terza posizione dell'array ricevuto (indice 2).

Nel metodo principale (), che è statico, è possibile utilizzare il seguente segmento di codice:

char [] arr = 'a', 'b', 'c', 'd';
char ret = func (arr);
Sistema.fuori.println (ret);

L'output sarebbe C. La prima istruzione in questo segmento di codice definisce l'array. Nessun oggetto viene dichiarato qui, in quanto non esiste una classe separata. L'istruzione successiva chiama lo stesso metodo di classe, la classe principale, con il nome dell'array (riferimento) come argomento. L'ultima istruzione stampa il terzo carattere (indice 2) dell'array ricevuto dal metodo chiamato.

Questi due segmenti di codice mostrano come un array viene passato a un metodo in riferimento.

Ritorno per riferimento

Il metodo sopra viene modificato, per restituire un array per riferimento, come segue:

static char [] func (char [] chs)
restituire chs;

L'espressione di restituzione nella firma del metodo è "statica char []" e non più "char statico". L'espressione di restituzione dell'istruzione di ritorno è ora il nome dell'array nel parametro e non è più un elemento array.

Il segmento di codice corrispondente nel metodo principale () è modificato per essere:

char [] arr = 'a', 'b', 'c', 'd';
char [] ret = func (arr);
Sistema.fuori.println (ret [2]);

La prima affermazione qui è la dichiarazione dell'array. Il tipo di ritorno della chiamata del metodo è un array e non solo Char. L'array è ancora superato come argomento allo stesso modo di prima. L'ultima istruzione stampa un valore dell'elemento dell'array di restituzione.

Questi due programmi mostrano come un array può essere approvato per riferimento e come un array può essere restituito per riferimento.

Conclusione

Sì, e questo è l'unico modo per passare un array a un metodo in Java: dichiarare il parametro come array e utilizzare il nome dell'array nel metodo chiamata. In Java, una funzione è chiamata metodo ed è un membro di una classe. Altre buone notizie! Un metodo (in Java) può restituire un array, che è anche per riferimento. L'identificatore (nome) dell'array è un riferimento. Lascia che la definizione del metodo (implementazione) abbia il tipo di array, come parametro, nella firma del metodo per ottenere questi. L'espressione per l'istruzione di ritorno nella definizione del metodo è solo il nome dell'array. L'espressione di ritorno per la firma del metodo è il tipo di array. L'espressione di ricezione dovrebbe essere del tipo di array nell'istruzione chiamata metodo.