Migliore risposta
- Se sto facendo unaddizione, il tipo restituito sarebbe int .
- Se voglio restituire il nome dellutente, il tipo restituito sarebbe Stringa .
- Se desidero restituire un elenco di array contenente alcuni dati, sarebbe Array List .
- Se lo desidero restituire se una connessione ha avuto successo o meno, allora Booleano .
Esempio 1:
// Tipo restituito int
funzione pubblica int doSomething () {
int a = 5;
int b = 4;
int c = a * b;
return c; // type int //
}
Esempio 2:
// Tipo restituito String
funzione pubblica String doSomething () {
String a = “First NAme”;
String b = “LAST NAme”;
String c = a + b; // concatenazione
return c; // digita Stringa // O / P => Nome Cognome
}
Esempio 3:
// Tipo restituito ArrayList
funzione pubblica ArrayList
ArrayList
String a = “First NAme”;
String b = “LAST NAme”;
list.add (a);
list.add (b);
elenco di ritorno; // type ArrayList // O / P => [First Name Last Name]
}
tipo di ritorno può essere di qualsiasi tipo, anche un oggetto classe definito dallutente. es. return objStudent; (dove il tipo restituito è una classe Student e objStudent è un oggetto di quella classe.
Risposta
Gli altri che hanno risposto sono più esperti di me, ma proverò per rispondere alla domanda.
Java ha due tipi di variabili e metodi: tipi primitivi e tipi di riferimento . Un metodo, tuttavia, deve avere un tipo restituito primitivo, di riferimento, o void . Se non includi uno di questi, il tuo codice non verrà compilato.
[Nota: non sto parlando di costruttori qui. Personalmente non preferisco chiamare i costruttori “metodi speciali”. Alcuni programmatori usano il termine metodo per include i costruttori. Se non sbaglio, ricordo i documenti Oracle Java che si riferiscono ai costruttori come “metodi speciali”.]
TIPI PRIMITIVI
Ecco gli otto tipi primitivi con distinzione tra maiuscole e minuscole: byte, short, int, long, float, double, char e boolean. [String non è un tipo primitivo; è “un tipo di riferimento.] Un metodo può restituire uno di questi o nessuno di questi (void) come nel seguente codice snipit.
balance = getAccountBalance();
/* Method getAccountBalance() below is going to subtract a fee of 1.50 before returning our balance. */
double getAccountBalance()
{
balance = balance - 1.50;
return balance;
}
/* The variable balance must have a type that matches double because the return type of method getAccountBalance() is double. Otherwise, we get a compile error. */
I nostri metodi non devono restituire alcun valore. Quei metodi che non restituiscono alcun tipo devono avere un tipo chiamato void. Java non si aspetta che venga restituito nulla se includiamo void come tipo di ritorno del metodo. Includere un ritorno (EDIT: 27 maggio) type porterà a un errore di compilare. Alcuni programmatori inseriranno unistruzione return “ return; ” quando il tipo di ritorno del metodo è void. Questo codice è conforme.
Qui ” s un esempio di un metodo con tipo restituito void. (A proposito, parole come public, private e protected sono chiamate modificatori di accesso. Sto omettendo intenzionalmente questi modificatori di accesso per semplificazione.)
double balance = 275.00;
makeDeposit( 65.00 );
void makeDeposit( double deposit )
{
balance = balance + deposit;
}
/* Notice we have no return type included in the method. */
Il seguente codice non viene compilato perché ha unistruzione return con un tipo di ritorno void per il metodo.
double balance = 275.00;
makeDeposit( 200.00 );
void makeDeposit( double deposit )
{
balance = balance + deposit;
return balance;
}
/* The last line "return balance" causes the code to fail to compile because the program doesn"t know what to do with the return statement. Java is expecting a return type of void, nothing. The code is returning balance, a double type. */
TIPI DI RIFERIMENTO
I tipi di riferimento sono ogni altro tipo bes ides void e gli otto tipi primitivi. Questi tipi sono oggetti: array, Integer, BigInteger, String, ArrayList, List, Map
Restituiamo un tipo di riferimento in il codice qui sotto.I tipi di riferimento (non i tipi primitivi) possono avere valore di ritorno null.
int[] values = { -4, 16, -36, 0 };
values = sortArray( values );
int[] sortArray( int[] inputArray )
{
/* code to sort values */
return inputArray;
}
/* The program returns the sorted array. */
Nel codice sopra, abbiamo restituito un int [] chiamato inputArray. Il tipo di inputArray corrisponde al tipo di riferimento del metodo sortArray ().
Nel codice seguente, abbiamo scelto di restituire null per il nostro tipo di riferimento anche se il nostro metodo prevedeva il tipo String. Ricorda che String è una classe e un tipo di riferimento, non un tipo primitivo come int, double o boolean.
/* We want to return the name only if it is short, 3 characters or fewer to be exact. */
String firstName = "Ahmad";
String shortName = getShortNames( firstName );
System.out.println("Short Name = " + shortName );
String getShortNames( String name )
{
if ( name.length() > 3 )
{
return null;
}
else
{
return name;
}
}
/* Output: null */
Nel codice precedente, se il nome ha lunghezza 3, il metodo getShortNames () restituirà il valore del nome. Tuttavia, nel nostro caso, il nome è lungo 5 caratteri, quindi viene restituito il valore null. La riga 5 mostra null.
Come accennato in precedenza, possiamo restituire anche tipi dalle nostre classi definite dallutente. Non ci limitiamo alle classi definite nelle librerie Java come String, Integer, BigDecimal, Map
Punti principali da ricordare:
- Tre tipi di ritorno per i metodi; deve usarne uno: tipo primitivo, tipo di riferimento o void
- Quando si utilizzano tipi restituiti primitivi e di riferimento per i metodi, unistruzione return deve essere inclusa nel blocco di codice del metodo: le parentesi graffe {}. Altrimenti, aspettati un errore di compilazione.
- Quando usi void come tipo di ritorno del metodo, unistruzione return non può essere inclusa nel blocco di codice del metodo . In caso contrario, il codice non verrà compilato.
- Un metodo con un tipo di ritorno di riferimento deve includere unistruzione di ritorno che restituisce una variabile con il tipo di riferimento esatto o restituisce null . Null non può essere utilizzato come tipo restituito se è richiesto un tipo restituito primitivo. Ovviamente, null non può essere utilizzato come tipo restituito di un metodo con tipo restituito void.